Open棟梁Project - マイクロソフト系技術情報 Wiki
ユースケースに対応するため、
多様な環境をサポートできる。
OAuth 2.0に認証結果とプロフィールの受渡し機能のみを追加した仕様
OAuth 2.0 Authorization Code Grantを拡張
OAuth 2.0 Implicit Grantを拡張
リクエスト内の細かいクレーム指定や認証コンテキストの指定
OAuth 2.0に追加で必要となるメッセージの使用
Messagesの内容をHTTPに落とし込んだHTTPバインディング仕様
メールアドレスやURLからユーザが利用しているOPを特定する方法
動的なRP登録を行う方法
OP上でユーザーがログアウトしたときにRP側から検知する方法など、セッション管理の方法
OPは、扱うクレームの内容によって、
どちらを利用すべきかを判断する必要がある。
一定期間変更されないことが保証されており
キャッシュの効果があるものは集約クレーム。
クレームそのものではなく、問い合わせ先のURLを扱う。
をレスポンスに含む。
頻繁に更新されるものは分散クレーム。
クレーム(JSONデータ)の
の方法は、IETFのJOSE WGにて仕様が策定されている。
JSONデータで表現されたクレームを、
ID連携したいアプリケーションがIdpからAuthorization codeを取得。
https://xxxxxxx? ---> IdpのURL response_type=code+id_token &client_id={client_id} &redirect_uri=http://example.com &state=CSRF対策のランダム文字列 &scope=openid+profile &nonce=リプレイアタック対策のランダム文字列
パラメータ | 必須 | 説明 |
response_type | ○ | 「code」と「id_token」を指定 |
client_id | ○ | 事前に準備したclient_idの値を指定 |
redirect_uri | ○ | アプリケーションID登録時のコールバックURLに入力したURLを指定 |
state | CSRF対策のランダム文字列を指定 | |
scope | ○ | ・openid:ユーザー識別子を取得(必須) ・profile:姓名・生年・性別が取得 ・email:メールアドレスと確認済みフラグを取得 ・address:ユーザー登録住所情報が取得 |
nonce | id_tokenを取得する際は必須 | リプレイアタック対策のランダム文字列を指定 |
display | ユーザのUIを選択: ・page(PC用UI、デフォルト値) ・touch(スマートフォン用UI) ・wap(フィーチャーフォン用UI) ・inapp(ネイティブアプリ用UI)~ | |
その他、Idp独自パラメタ | - |
http://example.com/?code=xxxxxxxx&state=CSRF対策のランダム文字列
OP探索と動的なRP登録
「○○のIDでログイン」というリンクを選択する替わりに、
次の2種類の値をOP特定(Discovery)のためのヒントとして利用できる。