Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 如何在SAML 2.0 Web浏览器SSO的AuthnRequest中识别主体_Authentication_Single Sign On_Saml 2.0 - Fatal编程技术网

Authentication 如何在SAML 2.0 Web浏览器SSO的AuthnRequest中识别主体

Authentication 如何在SAML 2.0 Web浏览器SSO的AuthnRequest中识别主体,authentication,single-sign-on,saml-2.0,Authentication,Single Sign On,Saml 2.0,我是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="id

我是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>

https://sp.example.com/SAML2

身份验证请求到达浏览器后是否添加了标识主体的信息(可能来自cookie?),或者标识特定用户的信息是否根本没有发送到身份验证提供者?

规范在身份验证请求中说明了以下内容(SAML配置文件,第4.1.4.1节):

请注意,服务提供商可以在 请求指定其希望访问的实际身份 接收断言

但是,这种方法很少使用,也没有在不同的供应商/堆栈中广泛实施,因此您的里程可能会有所不同。事实上,有一些部署配置文件明确禁止使用
,例如,第8.2节规定:

消息不能包含
元素


通常的交互是服务提供者确定身份提供者,而不是用户。后者留给身份提供者,包括身份验证和身份验证。这是一个更清晰的界面,避免了两个关于标识符和帐户的潜在冲突。

因此IDP需要确定用户是谁,如果IDP中不存在该用户的现有会话,则可能要求用户手动提供凭据?没错,dda。通常,如果用户没有当前会话,IdP会向用户显示一个登录页面。