-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AuthenticationContext
- 戻る(SAMLの仕様を読む。、OpenID Connect - Authentication Context Class Reference(
MS_OIDCAuthenticationContextClassReference.md))- Authentication Context
- SAML
- OpenID / OAuth / OpenID Connect
OpenID Connectでも SAML でも、
使われている認証コンテキスト・クラス。
OpenID Connectでも SAML でも、
リクエストに指定して、IdP 側の認証方法を制御できる。
補足(何のためにあるか): 認証コンテキストは
「IdP がどうやって本人確認したか」を RP に伝えるための語彙である。RP から見ると、ID トークンやアサーションを受け取っても
それだけでは「パスワード 1 つで入ったのか、
FIDO の認証器で入ったのか」が分からない。
高リスクな操作の前に「もっと強い認証をやり直させたい」ときに、
この語彙で要求・確認を行う。認証保証レベル(LoA)が「強度の指標」だとすれば、
認証コンテキストは「実際に使われた手段の表明」にあたる。
| SAML | OpenID Connect | |
|---|---|---|
| 要求 |
<RequestedAuthnContext> に AuthnContextClassRef を列挙 |
認可リクエストの acr_values(スペース区切り) |
| 結果 | アサーションの <AuthnStatement> / <AuthnContext>
|
ID トークンの acr クレーム |
| 手段の内訳 | (クラス値に含まれる) |
amr クレーム(pwd, otp, mfa, hwk など。RFC 8176) |
| やり直し | ForceAuthn="true" |
prompt=login / max_age=0
|
補足(実装上の注意):
acr_valuesは要求であって命令ではない。
IdP が満たせない場合でも、多くの実装は
「満たさないまま」トークンを返す。したがって RP は、返ってきた
acr/amrを必ず検証する必要がある。
要求しただけで安心してはならない。また、
acrの値は IdP ごとに異なることが多い
(下記の OASIS 標準 URI を使う IdP もあれば、
独自の文字列やポリシー名を返す IdP もある)。
値は IdP ごとに設定可能にしておくのが実務上安全である。
プリンシパルが保護されない HTTP セッションでパスワードを提示する
ことによって認証機関に対して認証するときに適用できます。
プリンシパルが保護された HTTPS セッションでパスワードを提示する
ことによって認証機関に対して認証するときに適用できます。
- 完全な URI は次の形をとる。
| クラス | URI |
|---|---|
| Password | urn:oasis:names:tc:SAML:2.0:ac:classes:Password |
| PasswordProtectedTransport | urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport |
| X.509 | urn:oasis:names:tc:SAML:2.0:ac:classes:X509 |
| Smartcard PKI | urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI |
| Kerberos | urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos |
補足(最新化): この語彙は 2005 年の SAML 2.0 策定時のもので、
FIDO / パスキーのような現代の認証手段に対応するクラスが無い。実務では次のいずれかで補われている。
amrクレーム(RFC 8176) — 手段を列挙する
(pwd,otp,sms,mfa,hwk,face,fpt,swkなど)- IdP 独自の
acr値 — 例えば Microsoft Entra ID の
条件付きアクセスでは認証強度(Authentication Strength)を
ポリシーとして定義し、acrではなく
条件付きアクセス側で強制する設計をとる。- NIST SP 800-63-3 の AAL(
urn:...:aal2など)を acr 値として使う流儀
https://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf
1 Introduction
1.1 Authentication Context Concepts
1.2 Notation and Terminology
2 Authentication Context Declaration
2.1 Data Model
2.2 Extensibility
2.3 Processing Rules
2.4 Schema
3 Authentication Context Classes
3.1 Advantages of Authentication Context Classes
3.2 Processing Rules
3.3 Extensibility
3.4 Schemas
3.4.1 Internet Protocol
3.4.2 InternetProtocolPassword
3.4.3 Kerberos
3.4.4 MobileOneFactorUnregistered
3.4.5 MobileTwoFactorUnregistered
3.4.6 MobileOneFactorContract
3.4.7 MobileTwoFactorContract
3.4.8 Password
3.4.9 PasswordProtectedTransport
3.4.10 PreviousSession
3.4.11 Public Key – X.509
3.4.12 Public Key – PGP
3.4.13 Public Key – SPKI
3.4.14 Public Key - XML Digital Signature
3.4.15 Smartcard
3.4.16 SmartcardPKI
3.4.17 SoftwarePKI
3.4.18 Telephony
3.4.19 Telephony ("Nomadic")
3.4.20 Telephony (Personalized)
3.4.21 Telephony (Authenticated)
3.4.22 Secure Remote Password
3.4.23 SSL/TLS Certificate-Based Client Authentication
3.4.24 TimeSyncToken
3.4.25 Unspecified
4 References
Appendix A. Acknowledgments
- RFC 8176 - Authentication Method Reference Values(
amr)
https://datatracker.ietf.org/doc/html/rfc8176
Tags: 移行, IT国際標準, 認証基盤, クレームベース認証, OAuth, SAML
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。