はじめに
今回から数回に渡って,Windows Live ID SDKとWindows LiveユーザーデータAPIについて紹介します。Windows Live ユーザーデータAPIを利用すると,Windows Liveサービスに格納されているWindows Liveユーザーの情報へのアクセスがWebアプリケーションから可能になります。このAPIを利用するにはWidows Live ID SDKのWindows Live ID DelegatedAuthenticationも利用する必要があります。本連載では最初に認証の仕組みを紹介し,次回以降の記事にてユーザーデータをアクセスする方法を紹介します。
Windows Live ID DelegatedAuthentication
Windows Live ID Delegated Authentication(委任認証)は,Windows Liveサービスのアカウント(Windows Live ID)を所有しているユーザーの,Windows Liveサービスに対応したデータに,Webアプリケーションからアクセスするための仕組みです。
委任認証を利用するとWindows Live IDによる認証が必要なデータにアクセスできます。そのためにはWebアプリケーション側は,ユーザーにアクセス許可を承認してもらいます。このときユーザーは,Windows Live IDサービスのWebページ上にて認証および承認を行います。WebアプリケーションへWindows Live IDアカウント情報が送信されることはありません。
委任認証を利用したWebアプリケーションの利点として,Windows Liveサービス上のユーザーデータにアクセスでき,ユーザー個人に対応したアプリケーションが提供できることが考えられます。また,データベースやストレージを用意する必要がありません(提供されていない情報を格納するためには必要です)。
Windows LiveサービスのユーザーデータとそのAPIは,今のところ次のものが用意されています。これらのAPI群をユーザーデータAPIと呼んでいます。いずれも正式バージョンではありませんが,今後アップデートや新たなAPIの追加が予想されます。
Windows Live Contacts API:
Windows Live HotmailやMessengerに使用するコンタクト情報にアクセスWindows Live Photo API:
Windows Liveスペース上の写真にアクセスWindows Live Application Based Storage API:
Webアプリケーション用のデータストレージ
承認の流れ
ユーザーデータへアクセスするため,実際的な委任認証を使用したときの承認プロセスを図1に示します。また,委任認証で使用する用語についても説明します。
ユーザーが委任認証を利用したWebサイトへアクセスします。Webアプリケーションを提供しているWebサイトのことをアプリケーションプロバイダと呼びます。
WebサイトはWindows Liveの承認要求ページへリダイレクトします。Webサイトは,ユーザーデータにアクセスするためにユーザーに承認を要求します。具体的には承認要求ページへのURLを示し,ユーザーがクリックすることで移動します。移動先のユーザーデータに対する承認・拒否するページを承認要求ページ(図2)と呼びます。また,この承認情報を管理するサービスをWindows Live ID承認サービスと呼びます。
ユーザーは表示された承認要求ページにて,アプリケーションプロバイダから要求されたユーザーデータへのアクセス許可に対して承認または拒否を行います。
対象となるユーザーデータのカテゴリをオファー,そのオファーに対して操作可能な機能(読み取りや書き込みなど)をアクションと呼びます。この組み合わせを「許可」と呼びます。
承認要求ページからWebサイトへ承認情報とともにリダイレクトされます。ユーザーが承認または拒否を行うと(ボタンをクリックすると),Webサイトが戻り先URLとして指定していたページへ移動します。このときPOSTデータに承認結果の情報が含まれています。ユーザーが承諾した場合「承認トークン」と呼ばれるユーザーデータのアクセスに必要な文字列が返ります。
承認トークンの内容を使用して,WebサイトはユーザーデータAPIを利用してユーザーデータにアクセスできます。このユーザーデータを提供しているWindows Liveサービスをリソースプロバイダと呼びます。
ここまでがユーザーデータにアクセスするまでの一連の流れになります。一度,承認トークンを受け取るとアクセス許可が有効な限りWebサイトは直接リソースプロバイダとやり取りが可能です(アクセスのたびにユーザーの承認は必要ありません)。また,ユーザーが再び承認要求ページへアクセスした場合,既に承認したオファーおよびアクションへの要求であり,その承認が有効な場合はすぐにWebサイトへリダイレクトされます。

