本文介绍基于SAML 2.0协议单点登录到云身份中心登录门户的配置方法。基本概念和基础介绍见:云身份中心登录门户的单点登录概述。
以SAML协议为例,一个SSO的流程图如下:
企业用户浏览器直接通过云身份中心门户登录界面或通过第三方IdP界面链接发起单点登录请求。如通过IdP
云身份中心SSO服务向企业用户浏览器发送SAML Request。
企业用户浏览器转发SAML Request。
IdP认证已登录用户并发送含有企业用户对应的IAM用户信息的SAML Response。
企业用户浏览器向云身份中心SSO服务转发SAMLResponse。
SSO服务解析SAML Response并通过SAML互信配置,验证SAML Response真伪。
SAML Response解析后通过其内部信息匹配对应的云身份中心用户。
云身份中心SSO服务向企业用户浏览器返回云身份中心登录门户URL。
企业用户浏览器重定向,企业用户使用对应云身份中心用户身份登录云身份中心用户门户。
为了实现用户SSO,需要分别在IdP和SP的系统中上传相关元数据文件,配置双方系统互信关系,并建立企业IdP用户与IAM用户的对应关系。
首先将企业IdP配置为云身份中心的可信身份提供商。
说明
上传成功后,您可在登录门户地址处看到可用的员工登录地址,可以根据需求自定义登录地址。
其次将云身份中心作为SP配置为企业IdP可信的服务提供商。
在企业IdP,基于上一步中已经获取的SP元数据,创建云身份中心服务提供商,建立企业IdP对云身份中心的信任。该过程基于不同IdP的情况可能的配置方式有:
Entity ID
:用于标识服务提供商,需要配置为元数据文件中EntityDescriptor元素中的entityID属性值,对应步骤一中的Entity ID。ACS URL
:用于声明SAML断言发送地址,需要配置为下载的元数据中,AssertionConsumerService元素的Location属性值,对应步骤一中的ACS URL。至此,配置成功。
在用户登录IdP后、请求登录云身份中心门户时,IdP会向云身份中心门户发送SAML Response。云身份中心登录门户通过验证SAML Response中的签名、解析SAML Response中传递的当前用户身份信息,为用户实现安全快捷的SAML SSO登录。
在配置完成后,调试登录流程时,SAML Response需要满足下述格式,请确保您的SAML Response与下方示例格式相同、无元素缺失。
<samlp:Response> <saml:Issuer>${Issuer}</saml:Issuer> <ds:Signature> ... </ds:Signature> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"></samlp:StatusCode> </samlp:Status> <saml:Assertion> <saml:Issuer>...</saml:Issuer> <ds:Signature> ... </ds:Signature> <saml:Subject> <saml:NameID>${NameID}</saml:NameID> <saml:SubjectConfirmation> ... </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions> <saml:AudienceRestriction> <saml:Audience>${Audience}</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement> ... </saml:AuthnStatement> </saml:Assertion> </samlp:Response>
元素 | 说明 |
---|---|
Issuer | Issuer的值必须与您在云身份中心控制台设置中上传的IdP SAML元数据文件中的EntityID元素取值相同,云身份中心登录门户需要验证该字段来保证请求登录的身份提供商为已经完成信任配置的身份提供商。 |
Signature | 基于协议规范,云身份中心登录门户要求SAML Response必须签名,并能够基于IdP元数据文件中的安全证书信息验签通过,以确保响应内容安全可信。请在Response示例的对应位置进行签名,Signature必须包含签名值、签名算法等信息。 |
Subject | Subject必须包含以下元素:
Subject元素示例:
|
Conditions | 在Conditions元素中,必须包含一个AudienceRestriction元素,其中需要有包含唯一有效的Audience元素,用于指定响应的受众。其必须包含一个固定的值,其取值必须为云身份中心控制台上提供的服务提供商EntityID,格式为https://signin.volcengine.com/cloud-identity/saml/sso/${CloudIdentity_Instance_Id}
|