我是 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?),或者标识特定用户的信息根本不会发送到身份提供商?
该规范对身份验证请求(SAML 配置文件、http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf,第 4.1.4.1 节):
请注意,服务提供商可能包括<Subject>
中的元素
请求指定其希望的实际身份
收到断言。
然而,这种方法很少使用,也没有在不同的提供商/堆栈中广泛实施,因此您的情况可能会有所不同。事实上,有一些部署配置文件明确禁止使用<Subject>
, e.g. http://saml2int.org/profile/current/ http://saml2int.org/profile/current/第 8.2 节说:
The <saml2p:AuthnRequest>
消息不得包含<saml2:Subject>
元素。
通常的交互是服务提供商确定身份提供商而不是用户。后者留给身份提供者,包括识别和认证。这是一个更干净的界面,可以避免两者之间关于标识符和帐户的潜在冲突。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)