全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

用户SSO配置步骤

最近更新时间:2023-11-16 19:10:42

基于SAML 2.0的用户SSO,配置对应元数据来建立金山云对企业身份提供商(IdP)的信任,实现企业IdP通过用户SSO登录金山云。

第一步:金山云SP的SAML配置

  1. 金山云主账号登录访问控制控制台

  2. 选择左侧菜单SSO管理

  3. 用户SSO标签页,可查看当前SSO登录设置相关信息
    image.png

  4. 点击 ✎ 可进行SSO登录设置,包括设置SSO功能状态、上传IdP元数据文档、设置企业域名

    • SSO功能状态:可以设置开启或关闭
        该功能只对金山云账号下的所有子用户生效,不影响主账号登录
    
    • 此功能状态默认为关闭,此时子用户可以使用密码登录,SSO登录设置不生效
    • 选择开启该功能后,子用户不可以使用密码登录,只能SSO登录,统一跳转到企业IdP登录进行身份验证。再次选择关闭后,子用户可以使用密码登录。
    • 元数据文档:点击上传文件,上传企业IdP提供的元数据文档
       元数据文档一般为XML格式,包括IdP的登录服务地址和X.509公钥证书(用户验证IdP所颁发的SAML断言的有效性)
    
    • 企业域名:SAML断言中的NameID元素只能使用该企业域名作为后缀

第二步:创建与企业IdP相匹配的子用户:

1.方式一:登录访问控制控制台手动创建与企业IdP匹配的子用户,详情参见创建子用户
2.方式二: 使用金山云 OpenAPI创建子用户,详情参见新建子用户

说明 请确保子用户的登录账号与企业邮箱的用户名前缀保持一致

第三步:企业IdP的SAML配置

在企业身份提供商(IdP)中配置金山云为可信SAML服务提供商(SP)
1.从金山云控制台获取SAML服务提供商元数据URL。

  • 金山云主账号登录访问控制控制台
  • 选择左侧菜单SSO管理
  • SSO管理页面,单击用户SSO页签。
  • SSO登录设置区域,查看当前金山云账号的SAML服务提供商元数据URL
    image.png
  1. 在企业IdP中创建一个SAML SP,并根据实际情况选择下面任意一种方式配置金山云为信赖方
  • 直接使用第一步所述的金山云元数据URL进行配置。
  • 如果您的IdP不支持URL配置,您可以通过第一步所述URL下载元数据文件并上传至您的IdP。
  • 如果您的IdP不支持元数据文件上传,则需要手动配置以下参数:
    • Entity ID:元数据XML中,EntityDescriptor元素的entityID属性值。
    • ACS URL:元数据XML中,AssertionConsumerService元素的Location属性值。
    • RelayState:只支持配置跳转到金山云云控制台首页,可不填写

第四步:在企业IdP中配置SAML断言属性

在基于SAML 2.0的SSO流程中,当企业用户在IdP登录后,IdP将根据SAML 2.0 HTTP-POST绑定的要求生成包含SAML断言的认证响应,并由浏览器(或程序)自动转发给金山云。这个SAML断言会被用来确认用户登录状态并从中解析出登录的主体。因此,断言中必须包含金山云要求的元素,否则登录用户的身份将无法被确认,导致SSO失败。

SAML响应
请确保您的IdP向金山云发出符合如下要求的SAML响应,每一个元素都必须要有,否则SSO将会失败。

<saml2p:Response>
   <saml2:Issuer>...</saml2:Issuer>
   <saml2p:Status>
       ...
   </saml2p:Status>
   <saml2:Assertion>
       <saml2:Issuer>...</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>

SAML断言中的元素说明

  • SAML 2.0协议的通用元素
Issuer:    Issuer的值必须与您在金山云用户SSO设置中上传的元数据文件中的EntityID匹配

Signature: 金山云要求SAML断言必须被签名以确保没有篡改,Signature及其包含的元素必须包含签名值、签名算法等信息

Subject:   Subject必须包含以下元素:
           1).有且仅有一个NameID元素,是金山云主账号下的某个子用户的身份标识。
           2).有且仅有一个SubjectConfirmation元素,其中包含一个SubjectConfirmationData元素。SubjectConfirmationData必须有以下两个属性:
             NotOnOrAfter:规定SAML断言的有效期。
             Recipient:金山云通过检查该元素的值来确保金山云是该断言的目标接收方,其取值必须为https://signin.ksyun.com/saml/SSO

Conditions: 在Conditions元素中,必须包含一个AudienceRestriction元素,其中可包含一至多个Audience元素,但必须有一个Audience元素的取值为 https://signin.ksyun.com/${accountId}/saml/SSO,${accountId}为金山云主账号ID
  • NameID元素

金山云需要通过UPN(User Principal Name)来定位一个子用户,所以要求企业IdP生成的SAML断言包含用户的UPN。金山云通过解析SAML断言中的NameID元素,来匹配子用户的UPN从而实现用户SSO。

因此,在配置IdP颁发的SAML断言时,需要将对应于子用户UPN的字段映射为SAML断言中的NameID元素。

NameID元素:使用企业域名作为NameID元素的后缀,即 username@domain_name。其中username为子用户的用户名,domain_name为企业域名。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈