背景:
我的公司作为 IDP 客户的服务提供商。我们使用 OpenAM,但我们的客户使用 ADFS 或 Shibboleth。我们交换元数据文件来建立联盟,而不是 URL。一位客户问我们为什么需要 AuthnContext 类架构(特别是 PasswordProtectedTransport
),我们不仅不知道为什么,我们也不知道如何更改它或这意味着什么。
题:
对于 PasswordProtectedTransport
,使用“unspecified
”与“AuthnContextClassRef
”之间的功能区别是什么?在 SAML2 断言中?
我们目前使用 PasswordProtectedTransport
在我们所有的客户中,但我公司没有人可以告诉我为什么我们需要这个。如果我们删除它,联盟将停止工作,并在 SAML 跟踪中显示 500 错误和“NoAuthnContext
”。我们也不明白这一点,因为我从 SAML 文档中相信,拥有模式对于身份验证是可选的。即便如此,我也没有看到任何关于使用“unspecified
”的含义的解释。
我在任何地方都找不到关于这个话题的任何详尽的解释或讨论,希望有人能为我详细说明,因为我正在努力寻找这方面的线索。
最佳答案
RequestedAuthnContext
在请求中是 SP 要求 IDP 使用特定身份验证机制对用户进行身份验证的一种方式。
例如,如果您指定 PasswordProtectedTransport
在您的请求中,IDP 知道它必须通过受 SSL/TLS 保护的登录名/密码对用户进行身份验证。
IDP 在其响应中说明它使用哪种机制通过 AuthnContextClassRef
对用户进行身份验证.RequestedAuthnContext
在请求中是可选的,但 AuthnContextClassRef
根据 SAML 架构的规定,断言中是强制性的(因此遇到了 500 错误)。
基本上,unspecified
IDP 使用 URN 表示“我不想告诉您我是如何识别用户的”。
作为 SP,如果您想确保用户通过安全机制进行身份验证,您可以选择接受或拒绝该答案。
关于single-sign-on - SAML2 单点登录 : AuthnContext Class Schemas: "PasswordProtectedTransport" vs "unspecified",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812916/