如何在 SAML 2.0 Web 浏览器 SSO 的 AuthnRequest 中识别委托人
How is the principal identified in the AuthnRequest for SAML 2.0 Web Browser SSO
我是 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,第 4.1.4.1 节)中说明如下:
Note that the service provider MAY include a <Subject>
element in the
request that names the actual identity about which it wishes to
receive an assertion.
然而,这很少使用,也没有在不同 providers/stacks 中广泛实施,因此您的里程可能会有所不同。事实上,有些部署配置文件明确禁止使用 <Subject>
,例如http://saml2int.org/profile/current/ 第 8.2 节说:
The <saml2p:AuthnRequest>
message MUST NOT contain a <saml2:Subject>
element.
通常的交互是服务提供者确定身份提供者而不是用户。后者留给身份提供者,包括识别和认证。这是一个更清晰的界面,避免了两者之间关于标识符和帐户的潜在冲突。
我是 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,第 4.1.4.1 节)中说明如下:
Note that the service provider MAY include a
<Subject>
element in the request that names the actual identity about which it wishes to receive an assertion.
然而,这很少使用,也没有在不同 providers/stacks 中广泛实施,因此您的里程可能会有所不同。事实上,有些部署配置文件明确禁止使用 <Subject>
,例如http://saml2int.org/profile/current/ 第 8.2 节说:
The
<saml2p:AuthnRequest>
message MUST NOT contain a<saml2:Subject>
element.
通常的交互是服务提供者确定身份提供者而不是用户。后者留给身份提供者,包括识别和认证。这是一个更清晰的界面,避免了两者之间关于标识符和帐户的潜在冲突。