ページ

2010年9月14日火曜日

OAuth認証の仕組みについて

近年、マッシュアップと呼ばれる仕組みが流行しており、
既存のWebサービスが次々とつながり、新たなWebサービスが登場している。
しかし、メールアドレスなど重要な個人情報が意図せずに「つながれてしまう」可能性もある。
そこで登場したのがアクセス権の「委譲」を目的としたプロトコル、OAuthです。

■ OAuth認証(オーオース)
~ 自分のアカウントへのアクセスを、ID・パスワードを渡さずに
第三者のサービスから利用できるようにする仕組み。





【事前準備】
・Consumer登録
1.事前にProviderにConsumer登録をしておく。
2.登録すると、Consumer KeyとConsumer Secretが発行される。
3.Consumer KeyとConsumer Secretは、以降のOAuth認証で使用する。


【OAuth認証の流れ】
・ユーザは、ConsumerにOAuth認証を行うように指示する。
1.通常は、Consumerのページにあるログインボタンなどをクリック。

・Consumerは、Providerからリクエストトークンを取得する。
1.Consumerは、ProviderへHttp通信でリクエストトークンを要求する。
(その際に、事前に発行されているConsumer Keyと、Consumer Secret
の値をパラメータとして付与します。)
2.ProviderはHttpのレスポンスとしてリクエストトークンを返す。

・認証用URLへのリダイレクト・ユーザ承認
1.Consumerは、発行されたリクエストトークンをURLに付与して、
Providerの認証用URLへリダイレクトを行う。
2.リダイレクト先で、Providerがユーザに対して、
Consumerが要求しているOAuth認証によるAPI利用を許可するか選択します。
3.承認した場合は、Providerは(通常は)Consumer登録時に設定した
コールバックURLへリダイクレトする。

・アクセストークンの取得
1.コールバックURLへのリダイレクトで、Consumerはリクエストトークンを
もとにアクセストークン取得をHttp通信でProviderへ要求する。
2.アクセストークン取得要求は、Consumer Keyとリクエストトークンなどを
パラメータに付与して呼び出す。(通常はAuthorizationヘッダに設定)
3.アクセストークン取得要求のパラメータも、Consumer Secretで署名した
値を付与する。
4.Providerは、レスポンスとしてアクセストークンを返す。

・OAuthでのAPI呼び出し
1.実際のAPI呼び出しは、取得したアクセストークンをパラメータに
付与して呼び出す。
2.アクセストークンとConsumer Key、およびパラメータをConsumer Secretで
署名した値を、Authorizationヘッダに設定に設定してAPIを呼び出すことで、
OAuth認証を利用したAPI呼び出しができる。


0 件のコメント:

コメントを投稿