はじめに
今回もLive ConnectによるWindows Liveサービスと統合したアプリ開発を紹介します。これまでJavaScript APIを利用してWebブラウザー上で動作するアプリ開発について紹介してきましたが,
Live Connectは,
OAuth 2. 0
OAuthは,
通常,
アプリがユーザーデータにアクセスするためには,
アクセストークンの有効期限は短いため,
続いて,
認可フロー
Live Connectでは,
Authorization Code Grant Flow
ひとつめは,
フローは,
OAuthでは,
また,
フローの手順は次の通りです。アプリ利用者がWebサイトにアクセスした後から始まります。
①認証・
認可画面 (Webページ) へ移動します。通常, Webページにサインイン ボタンなどを表示し, アプリ利用者のクリックで移動します。移動先のLive Connect認可サーバーのエンドポイントは, 以下のURLです。 - https://
oauth. live. com/ authorize?client_ id=CLIENT_ ID&scope=SCOPES&response_ type=code&redirect_ uri=REDIRECT_ URL
URLのクエリーには,
Client ID (クライアントID), スコープ, リダイレクト先のURLなどを指定します。 - https://
②リソースオーナーは,
Windows Liveサービスへのサインインと, アプリが要求する内容を許可します。 ③①で指定したリダイレクト先へ移動します。このとき,
認可サーバーは, URLのクエリーに認可コードを付けてリダイレクトします。 - http://
example. jp/ callback. php?code=[AuthorizationCode]
Webアプリは,
ユーザーエージェントを介して認可コードを受け取ります。 - http://
④クライアントは,
認可サーバーにアクセストークンを要求します。次のURLにアクセスします。 - https://
oauth. live. com/ token?client_ id=CLIENT_ ID&redirect_ uri=REDIRECT_ URL&client_ secret=CLIENT_ SECRET&code=AUTHORIZATION_ CODE&grant_ type=authorization_ code
URLのクエリーには,
クライアントID, リダイレクトURL, Client Secret (クライアントシークレット), 認可コードなどを指定します。 - https://
⑤認可サーバーは,
アクセストークンを発行します。
以上が,
⑥クライアントは,
リソースサーバーにリソースのアクセスを要求します。Live Connectでは, REST APIを利用します。
Implicit Grant Flow
もうひとつのアクセストークンを取得する方法は,
フローは,
この場合のクライアントは,
フローの手順は次の通りです。
①認証・
認可画面 (Webページ) へ移動します。 - https://
oauth. live. com/ authorize?client_ id=CLIENT_ ID&scope=SCOPES&response_ type=token&redirect_ uri=REDIRECT_ URL
- https://
②リソースオーナーは,
Windows Liveサービスへのサインインと, アプリが要求する内容を許可します。 ③①で指定したURLへリダイレクトします。このとき,
認可サーバーは, URLのフラグメントにアクセストークンを付けてリダイレクトします。 - http://
example. jp/ callback. html#access_ token=[AccessToken]
- http://
④ユーザーエージェントは,
Webサーバー上のクライアントリソースのURLへリダイレクトします。このとき, URLの#以降のフラグメント部分にあるアクセストークンは, Webサーバーには送信されません。 ⑤クライアントリソースは,
JavaScriptなどのスクリプトを含むHTML文書を返します。 ⑥ユーザーエージェントは,
スクリプトを実行し, URLのフラグメントからアクセストークンを抽出します。
以上が,
ひとつめの認可コードを使う場合と比べると,
以上が,