Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
- OpenID 2.0のプロトコルを引き継ぐことをせず、
OAuth 2.0を拡張して、OpenID 2.0を置き換えたもの。
- NIST SP 800-63-1で定義されている全ユーザ認証要件(LoA)への対応が可能。
金融システムや電子政府/行政システムにも利用できることを意味している。
設計思想 †
- 簡単なことは簡単に
- 難しいことも可能に
- モジュラーデザイン
モジュラーデザイン †
ユースケースに対応するため、
- 複数の仕様から成り立っており、
- それらをモジュール的に組み合わせることで
多様な環境をサポートできる。
仕様一覧 †
OAuth 2.0に認証結果とプロフィールの受渡し機能を追加 †
OAuth 2.0に認証結果とプロフィールの受渡し機能のみを追加した仕様
OpenID Connectのコアな機能(難しいことも可能に) †
リクエスト内の細かいクレーム指定や認証コンテキストの指定
関連仕様 †
OpenIDトークン(クレーム) †
- 以下の値を含むデータをエンコードして署名を付けたもの。
- 発行元のOP識別子
- 発行先のRP識別子(client_id)
- ユーザー識別子
- 発行日時
- クレームの扱いについて次のような機能を定義している。
- 外部クレームの提供
- 集約クレーム(Aggregated Claims)
- 分散クレーム(Distributed Claims)
- クレームの暗号化(Encrypted Claims)
外部クレーム †
OPは、扱うクレームの内容によって、
どちらを利用すべきかを判断する必要がある。
集約クレーム †
- RPからリクエストを受けたOPは、事前に取得していた、
もしくは動的に取得した別のOPのクレームをレスポンスに含む。
一定期間変更されないことが保証されており
キャッシュの効果があるものは集約クレーム。
分散クレーム †
クレームそのものではなく、問い合わせ先のURLを扱う。
- ユーザー認可が必要な場合
- エンドポイントのURL
- OAuth 2.0のアクセストークン
をレスポンスに含む。
頻繁に更新されるものは分散クレーム。
クレーム暗号化 †
クレーム(JSONデータ)の
の方法は、IETFのJOSE WGにて仕様が策定されている。
JSON Web Encryption(JWE) †
JSONデータで表現されたクレームを、
- OP:クレームを暗号化する。
- OP:RPにリダイレクトして渡す。
- RP:クレームを復号化する。
OpenID Connectのシーケンス †
STEP1 Authorization codeの取得 †
ID連携したいアプリケーションがIdpからAuthorization codeを取得。
モバイルアプリ †
Step 0:Discovery & Dynamic Client Registration †
OP探索と動的なRP登録