更新时间:2023-12-14 15:11:26
本文为您介绍SSO时SAML响应中必须包含的元素。
在基于SAML2.0的SSO流程中,当企业用户在IdP登录后,IdP将生成包含SAML断言的认证响应,并由浏览器自动转发给网宿。这个SAML断言会被用来确认用户登录状态并从中解析出登录的主体。因此,断言中必须包含网宿要求的元素,否则登录用户的身份将无法被确认,导致SSO失败。
<saml2p:Response>
<saml2:Issuer>${entityID}</saml2:Issuer>
<saml2p:Status>
...
</saml2p:Status>
<saml2:Assertion>
<saml2:Issuer>${entityID}</saml2:Issuer>
<ds:Signature>
...
</ds:Signature>
<saml2:Subject>
<saml2:NameID>${NameID}</saml2:NameID>
<saml2:SubjectConfirmation>
...
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions>
<saml2:AudienceRestriction>
<saml2:Audience>${Audience}</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement>
...
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>
元素
|
说明
|
---|---|
元素
|
说明
|
Issuer |
Issuer的${entityID}值必须与您在控制台用户SSO设置中上传的元数据文件中的entityID匹配。
|
Signature | 要求SAML断言必须被签名以确保没有篡改,Signature及其包含的元素必须包含签名值、签名算法等信息。 |
Subject |
Subject必须包含以下元素:
单点登录时,需要识别具体是哪个IAM用户,所以需要企业IdP生成的SAML断言中包含用户信息。通过解析SAML断言中的NameID元素,来配置IAM用户从而实现用户SSO。
NotOnOrAfter:规定SAML断言的有效期。 Recipient:网宿科技通过检查该元素的值来确保网宿科技是该断言的目标接收方,取值必须为:https://cas.wangsu.com/cas/login?client_name=${provider}。 以下是一个Subject元素的示例:
|
Conditions |
在Condition元素中,必须包含一个AudienceRestriction元素,其中可包含一至多个Audience元素,但必须有一个Audience元素的取值为 https://cas.wangsu.com。 以下是一个Conditions元素的示例:
|