OAuth Core 1.0 Revision A (2)
d:id:ZIGOROu:20090811:1250008682 の続き。
パラメータ
5. Parameters の辺りの話。
Consumer のリクエストパラメータ
以下のいずれかで。
- Authorization ヘッダにぶち込む (OAuth HTTP Authorization Scheme)
- application/x-www-form-urlencoded 形式の POST
- QUERY_STRING
将来的な拡張を見越して Authorization ヘッダは使うべきじゃない。
SP のレスポンスパラメータ
こんな感じ。
oauth_token=ab3cd9j4ks73hf7g&oauth_token_secret=xyz4992k83j47x0b
OAuth HTTP Authorization Scheme
リクエストヘッダに Authorization ヘッダを用いて、レスポンスヘッダに WWW-Authenticate ヘッダを用いる事によって OAuth のパラメータのやりとりする方式。
リクエストに使う Authorization ヘッダはこんな感じになる。
Authorization: OAuth realm="http://sp.example.com/", oauth_consumer_key="0685bd9184jfhq22", oauth_token="ad180jjd733klru7", oauth_signature_method="HMAC-SHA1", oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D", oauth_timestamp="137131200", oauth_nonce="4572616e48616d6d65724c61686176", oauth_version="1.0"
でレスポンスの時はこんなのを SP が付けてくる。
WWW-Authenticate: OAuth realm="http://sp.example.com/"
OAuth を用いた認証
6. Authenticating with OAuth の辺りの話。
ユーザーの Credential を用いる事無く、Consumer がユーザーの代わりに SP の Protected Resources にアクセスする為に二つの Token を用いると。
- Request Token
- ユーザーに Protected Resources へのアクセス認可を求める為に Consumer によって用いられる値で、その認可が得られたら Access Token へと交換する為に用いられる。適切な有効期間を設定した方がいい。
- Access Token
- ユーザーの代わりに SP の Protected Resources にアクセスするために Consumer によって用いられる値。Access Token はアクセス可能な Protected Resources に制限があるかもしれないし、有効期間にも制限があるかもしれない。ユーザーによって無効にされる場合もある。
で、OAuth の Authentication メカニズムはざっくり言えば3つのステップ。
- Consumer がユーザーから未認可の状態の Request Token を SP から得る
- User が Request Token を認可する
- Consumer は SP とユーザーによって認可された Request Token を Access Token に交換する
って感じ。