OAuthを体験してみる
smart. fmでGoogleのOAuthを使う
さて,
- smart.
fmのGmail友達紹介ページにアクセス - 「Googleへ」
と表示されているリンクをクリック
今あなたはGoogleのサイトにいて,
ここで与えた認可情報は,
何が行われていたのか?
上記のフローの裏では,
(User : あなた,
- 0.
ConsumerはService ProviderからあらかじめOAuth利用許可を得る - このステップは,
具体的にはService ProviderにConsumer登録を行い, Consumer KeyとConsumer Secretという値を取得することで行います。 - 1.
UserがConsumerに, Service Providerから認可が必要な情報へのアクセス権を取得するように指示する。 - 前述のGoogle OAuthの例では,
認可が必要な情報はGmailのアドレス帳, アクセス権取得の指示はユーザがsmart. fmの 「Googleへ」 というリンクをクリックすることに相当します。 - 2.
ConsumerはバックグラウンドでService Providerにアクセスし, 未認可のRequest Tokenを取得する - 第2,
3回目のConsumerの実装で詳しく扱います。 - 3.
ConsumerはUserをService Providerにリダイレクトさせる。この際Consumerは未認可のRequest TokenをURL Parameterに付加する - 第2,
3回目のConsumerの実装で詳しく扱います。 - 4.
UserはService Provider上でConsumerへのアクセス権委譲を許可する。この際Service Providerは未認可のRequest Tokenを認可済とする - Google上で
「Grant access」 をクリックすることに相当します。 - 5.
Service ProviderはUserをConsumerにリダイレクトさせる。この際Service Providerは認可済のRequest TokenをURLに含める - 最終回のService Providerの実装で詳しく扱います。
- 6.
ConsumerはバックグラウンドでService Providerと通信を行い, 認可済のRequest Tokenを実際のアクセス権を示すAccess Tokenと交換する - 第2,
3回目のConsumerの実装および最終回のService Providerの実装で詳しく扱います。 - 7.
Consumerは6)で得られたTokenを利用して, 特定の情報にアクセスする - 第2,
3回目のConsumerの実装で詳しく扱います。
0.は前もって行われているので,
このフローについてもっと詳しく知りたい方は,
まとめ
さて,
- OAuthを用いてsmart.
fmにGmailのアドレス帳へのアクセス権限を与えた - OAuth Service Provider,
OAuth Consumer, Userという登場人物 - Request TokenとAccess TokenというTokenベースの認可情報のやりとりと,
そのおおまかなフロー