MS_OIDCAuthenticationContextClassReference - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- 戻る(OpenID Connect)
- OpenID Connect - Authentication Context Class Reference
- OpenID Connect - IDトークン
- OpenID Connect - ユーザー属性クレーム関連
- Authentication Context
Final を参照して記述。
-
ACR: Authentication Context Class Reference
(「認証コンテキスト クラスの参照」的な意味)-
Authentication Context
Client が認証に対して要求できる情報。 -
Authentication Context Class
上記情報(Authentication Context)の集合。 -
Authentication Context Class Reference
上記(Authentication Context Class)の識別子。
-
-
クライアントアプリケーションは、ACR を使用して、認証時に
満たして欲しい(若しくは、満たすべき)認証方法を指定する。
補足(ACR が解く問題): OpenID Connect の
ID トークンは「誰が認証されたか」は伝えるが、
**「どの程度の強さで認証されたか」**は既定では伝わらない。
「送金画面だけは多要素認証を通っていてほしい」といった要求を
クライアントから出せるようにしたのが ACR である。
-
パスワードで認証される(た)ことを示す。
urn:oasis:names:tc:SAML:2.0:ac:classes:Password -
X.509 証明書で認証される(た)ことを示す。
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
※ Authentication Contextを参照。
補足(値は SAML から借りている): 上記のとおり、ACR の値には
SAML 2.0 の Authentication Context Class の URI がそのまま使われる。
OpenID Connect が独自に値を定義しているわけではないため、
「どの値を使うか」は事業者間の取り決め
(またはプロファイル)に依存する。
日本では LoA に対応する値を定めるケースが多い。
以下、ACR を使用して認証方法を要求し、
-
通常のリクエスト・パラメタ
-
client_id,redirect_uri,scopeなどと同じ、
acr_valuesリクエスト・パラメタとして ACR を指定する。 - http://openid.net/specs/openid-connect-core-1_0.html#AuthRequest
-
結果は、acr クレームで確認できる。
(OpenID Connect - IDトークンの acr クレーム)
-
Essential(必須) の場合、指定の ACR を
- 満たせる場合、
acrクレームを返す。 - 満たせない場合は、エラーを返す。
- 満たせる場合、
-
Voluntary(任意) の場合、指定の ACR を
- 満たせる場合、
acrクレームを返さなくていい。 - 満たせない場合は、
acrクレームに現在の認証コンテキストを設定し返すべき。
- 満たせる場合、
補足(essential でないと強制にならない):
acr_valuesは
Voluntary(任意)としての要求にしかならないため、
OP が要求を無視しても仕様上は違反にならない。
「この認証強度でなければ拒否してほしい」という要求は、
claimsパラメタで"essential": trueを指定する必要がある。
上の表の対比はこの点を述べている。
-
acr_valuesリクエスト・パラメタ- Voluntary クレームとしてリクエスト
- 配列の場合、
scopeと同じスペース区切り。
-
- Essential(必須) or Voluntary(任意) を選択してリクエスト
- JSON を base64url?
移行メモ(補足): 「JSON を base64url?」という疑問については、
claimsリクエスト・パラメタは
JSON をそのまま URL エンコードして渡すのが仕様である
(base64url は不要)。
ただし JAR(署名済みリクエスト オブジェクト)に含める場合は、
JWT の一部として base64url エンコードされることになる。
-
Final: OpenID Connect Core 1.0 incorporating errata set 1 > 5.5.1.1. Requesting the "acr" Claim
https://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html#acrSemantics -
OAuth & OpenID Connect 関連仕様まとめ - Qiita
- Authentication Context
- LoA(Level of Assurance)
- OpenID Connect - IDトークン
- OpenID Connect - ユーザー属性クレーム関連
- FAPI Part 2 (Read and Write API Security Profile)
Tags: IT国際標準, 認証基盤, クレームベース認証, OAuth