【问题标题】:How is the principal identified in the AuthnRequest for SAML 2.0 Web Browser SSOSAML 2.0 Web 浏览器 SSO 的 AuthnRequest 中如何识别主体
【发布时间】:2015-09-03 17:12:02
【问题描述】:

我是 SAML 的新手,完全理解完整的 SAML2 SSO 流程有点困难。

具体来说,当服务提供者使用元素响应资源请求时,元素中的哪条数据标识了身份提供者要验证的主体(即用户)?

例如,在以下 AuthnRequest 中似乎没有任何东西可以识别主体:

<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59"
AssertionConsumerServiceIndex="0">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
  AllowCreate="true"
  Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/></samlp:AuthnRequest>

是在 AuthnRequest 到达浏览器后添加识别主体的信息(可能来自 cookie?),还是根本没有将识别特定用户的信息发送给身份提供者?

【问题讨论】:

    标签: authentication single-sign-on saml-2.0


    【解决方案1】:

    规范在身份验证请求(SAML 配置文件,http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf,第 4.1.4.1 节)中说明了以下内容:

    请注意,服务提供者可以在 请求命名它希望的实际身份 收到一个断言。

    然而,这很少使用并且没有在不同的提供程序/堆栈中广泛实施,因此您的里程可能会有所不同。事实上,有些部署配置文件明确禁止使用&lt;Subject&gt;,例如http://saml2int.org/profile/current/ 第 8.2 节说:

    &lt;saml2p:AuthnRequest&gt; 消息不得包含 &lt;saml2:Subject&gt; 元素。

    通常的交互是服务提供者决定身份提供者而不是用户。后者留给身份提供者,包括身份识别和身份验证。这是一个更简洁的界面,可以避免两者之间关于标识符和帐户的潜在冲突。

    【讨论】:

    • 所以 IDP 需要弄清楚用户是谁,如果 IDP 不存在该用户的现有会话,则可能需要用户手动提供凭据?
    • 没错,达。通常,如果用户没有当前会话,IdP 会向用户显示登录页面。
    猜你喜欢
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2014-11-04
    相关资源
    最近更新 更多