配置SAML SSO
前提条件
- 本章节以当前系统的配置为例进行操作说明,其他系统上也需要配置,全部系统都配置完成后SAML SSO才能配置成功。
- 如果IdP或SP地址为域名格式,需要配置可用的域名解析服务器,设置方法请参见《管理员指南》中的“配置域名解析服务器”章节。
- 与IdP系统对接前,请先获取IdP的元数据文件,再配置SP。与SP系统对接前,先获取SP的元数据文件,再配置IdP。
- 保证安全服务所在节点可以对端系统网络连通。
- 若需要与第三方IdP对接,请先配置第三方IdP并获取IdP的元数据文件,具体步骤参考示例:配置第三方IdP建立SSO对接。
- 已向证书颁发机构申请并获取证书,以及证书密码,并且证书需要使用RSA(建议使用3072位及以上)或ECDSA(建议使用256位及以上)算法生成,证书要求如表1所示。
表1 证书信息 服务名称
证书类型
证书及相关文件
证书用途
UniSSOWebsite
身份证书
SP身份证书:- 公钥:PEM格式(后缀为.pem/.der/.cer/.crt)
- 私钥:PEM格式(后缀为.pem),配套密码一起使用。
第三方SAML SSO服务器(IdP)作为服务端认证当前系统(SP)(当第三方SAML SSO服务器开启双向认证时)。
信任证书
第三方SAML SSO服务器提供的信任证书:
- PKCS12格式(后缀为.p12),配套密码一起使用。
- JKS格式(后缀为.jks),配套密码一起使用。
- PEM格式(后缀为.pem/.der/.cer/.crt)
- DER格式(后缀为.der/.cer/.crt)
当前系统作为客户端(SP)认证第三方SAML SSO服务器(IdP)。
吊销列表
所有信任的CA颁发的吊销列表:CRL格式(后缀为.crl)
用于对不受信任的证书进行管理,防止通信对端使用已失效的身份来访问iMasterCloud带来安全风险。
UniSSOWebsite_SAML_IdP
身份证书
IdP身份证书:- 公钥:PEM格式(后缀为.pem/.der/.cer/.crt)
- 私钥:PEM格式(后缀为.pem),配套密码一起使用。
第三方SAML SSO服务器(SP)作为客户端认证当前系统(IdP)。
信任证书
第三方SAML SSO服务器提供的信任证书:
- PKCS12格式(后缀为.p12),配套密码一起使用。
- JKS格式(后缀为.jks),配套密码一起使用。
- PEM格式(后缀为.pem/.der/.cer/.crt)
- DER格式(后缀为.der/.cer/.crt)
当前系统 (IdP)作为服务端认证第三方SAML SSO服务器(SP)。
吊销列表
所有信任的CA颁发的吊销列表:CRL格式(后缀为.crl)
用于对不受信任的证书进行管理,防止通信对端使用已失效的身份来访问iMasterCloud带来安全风险。
背景信息
- SSO配置成功后,以下情况,IdP系统用户不能登录运维面:
- IdP系统用户与SP系统中默认租户管理员用户同名,登录后为SP默认租户管理员用户。
- IdP系统用户在SP系统登录后的“用户名(SAML)”不符合“用户名”的命名规则。
- 当SP系统配置了两个IdP系统并且都选择“使用远端用户组绑定关系”,如果这两个IdP系统上有同名用户,该用户登录时会同步远端用户组绑定关系,且绑定关系基于认证的IdP系统。
操作步骤
- 当前系统作为IdP,需要按照以下步骤配置对接的服务提供商。
- 在控制台主菜单中选择。
- 在左侧导航树中选择“SSO配置 > SAML SSO配置”。
- 在“服务提供商配置”页签,单击“创建”,配置服务提供商的相关信息。
- 配置服务提供商的基本信息。
- 配置元数据,单击文件夹图标。
- 选择SP元数据文件,单击“上传”。
- 根据对接的SP系统要求,配置“属性映射规则”,具体参数见表2。
- 单击“确定”。
- 在“服务提供商配置”页面,单击“导出元数据”,导出IdP系统的元数据文件用于配置SP系统。
导出元数据之前,需要在证书管理上传SAML SSO的IdP证书。
- 在admin主菜单中选择。
- 在左侧导航树中选择“服务证书管理”。
- 在“服务列表”页面,选择“UniSSOWebsite_SAML_IdP”服务卡片。
- 选择页签,导入对应证书。
- 当前系统作为SP,需要按照以下步骤配置对接的身份提供商。
- 在控制台主菜单中选择。
- 在左侧导航树中选择“SSO配置 > SAML SSO配置”。
- 在“身份提供商配置”页签,单击“创建”,配置身份提供商的相关信息。
身份提供商的名称不能重复,并且会展示在登录界面,为了保证用户数据的安全性,禁止在该字段设置用户敏感数据。
- 配置身份提供商的基本信息。
- 根据需要配置“高级设置”,参数说明见表3。
表3 “高级设置”参数说明 参数
说明
同名用户策略
如果IdP系统的用户与SP系统的本地用户或三方系统接入用户同名,支持三种同名策略:
- 创建远端用户:IdP系统的用户允许登录SP系统,首次登录后,SP系统自动创建远端用户,用户名格式为:用户名(SAML)。
- 禁止登录:IdP系统的用户禁止登录SP系统。
- 允许登录:IdP系统中与本地用户同名的用户允许登录SP系统,登录后,映射为同名的本地用户。
是否启用系统级认证
(仅适用多租场景)
如果身份提供商(IdP)的用户和当前系统非默认租户下的远端用户同名,此参数可以控制该用户能否登录当前系统。默认不启用,开启后,该同名用户可以登录当前系统,并且默认租户下不会自动创建同名用户。
禁止本地不存在的远端用户登录
该配置用以控制远端用户在服务提供商不存在时,用户是否可以登录服务提供商。默认不启用,远端用户可以登录;启用后,远端用户禁止登录。
允许未绑定用户组的用户登录
当选择“使用远端用户组绑定关系”时,关闭“允许未绑定用户组的用户登录”开关,未绑定用户组的远端用户不能登录,默认开启“允许未绑定用户组的用户登录”,未绑定用户组的远端用户可以登录。
是否跳转系统
(仅适用单租场景)
设置用户访问服务提供商登录页面时是否会直接跳转到当前配置的身份提供商登录页面。默认关闭,开启后,如需访问服务提供商登录页面,可以使用“https://SP的IP地址:31943/unisso/login.action”。
- 配置元数据,单击文件夹图标。
- 选择IdP元数据文件,单击“上传”。
- 根据需要配置“身份转换规则”,参数说明见表4。
表4 “身份转换规则”参数说明 参数
说明
样例
用户名属性名称
对应IdP服务器中用户名的属性名称。该参数区分大小写,在Response消息中标识用户名称。
name
用户全名属性名称
对应IdP服务器中用户的全名属性名称。在Response消息中标识用户全名。
fullName
用户描述属性名称
对应IdP服务器中用户的描述属性名称。在Response消息中标识用户的描述信息。
description
用户手机号码属性名称
对应IdP服务器中用户的手机号码属性名称。在Response消息中标识用户手机号码。
如果需要传递用户的手机号码,请先配置使用RSA(建议使用3072位及以上)算法生成证书文件,并重新导出元数据文件更新到IdP系统。
cellphone
用户邮箱属性名称
对应IdP服务器中用户的邮箱属性名称。在Response消息中标识用户邮箱。
如果需要传递用户的邮箱,请先配置使用RSA(建议使用3072位及以上)算法生成证书文件,并重新导出元数据文件更新到IdP系统。
email
用户组属性名称
对应IdP服务器中用户组的属性名称。该参数区分大小写,在Response消息中标识用户组名称。
group
使用本地用户组绑定关系
IdP用户登录运维面时,使用本地的用户和角色绑定关系,所属角色是在本地绑定的角色。
-
使用远端用户组绑定关系
IdP用户登录运维面时,所属角色是在IdP服务器中绑定的用户组。
- 如果IdP用户组存在同名的本地角色,且未配置该IdP用户组和本地角色的映射关系,IdP用户会自动绑定同名的本地角色。
- 如果IdP用户组不存在同名的本地角色,需要配置IdP用户组和本地角色的映射关系,配置后,IdP用户会绑定该IdP用户组映射的本地角色;如果不配置,IdP用户会失去该用户组的授权。
-
下面是IdP系统的Response消息截取示例,如果需要获取IdP用户的手机号码或邮箱信息,IdP系统的Response消息会全部进行加密处理,需要解密后才能查看,如有问题可以咨询华为技术支持工程师。
<saml:AttributeStatement> <saml:Attribute Name="name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">用户名</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="fullName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">用户全名</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="description" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">描述信息</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="group" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">users</saml:AttributeValue> <saml:AttributeValue xsi:type="xs:string">examplerole1</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> - 单击“确定”。
配置完成后,在登录界面会出现已配置的身份提供商信息。
- 在“身份提供商配置”页面,单击“导出元数据”,导出SP系统的元数据文件用于配置IdP系统。
导出元数据之前,需要在证书管理上传SAML SSO的SP证书。
- 在admin主菜单中选择。
- 在左侧导航树中选择“服务证书管理”。
- 在“服务列表”页面,选择“UniSSOWebsite”服务卡片。
- 选择页签,导入对应证书。
- 如果设置自定义的跳转地址,SAML认证过程中的跳转地址将采用自定义地址,可以根据需要设置。
- 在控制台主菜单中选择。
- 在左侧导航树中选择“SSO配置 > SAML SSO配置”。
- 在“元数据管理”页签,配置自定义的跳转地址,不设置跳转地址默认为当前登录地址。
配置的自定义跳转地址需要支持SAML 2.0协议,可以正常解析元数据文件中的信息。
- 单击“确定”。
- 多租场景,所有系统都配置完成后,可以验证SAML SSO配置是否成功,具体方法如下。
- 在控制台主菜单中选择。
- 在左侧导航树中选择“SSO配置 > SAML SSO配置”。
- 在身份提供商列表中,单击目标身份提供商名称。
- 单击“登录链接”右侧的“复制”。
- 在浏览器地址栏输入“登录链接”,单击“Enter”。
- 在身份提供商系统的登录界面,输入“用户名”和“密码”,单击“登录”。
- 跳转到服务提供商系统,显示当前登录用户为“用户名(SAML)”。
- 单租场景,所有系统都配置完成后,可以验证SAML SSO配置是否成功,具体方法如下。
- 在服务提供商系统登录界面,单击“使用其他方式登录”。
如果开启“是否跳转系统”,访问服务提供商时会自动跳转到身份提供商。
- 在已配置好的身份提供商中,单击目标身份提供商名称。
- 在身份提供商系统的登录界面,输入“用户名”和“密码”,单击“登录”。
- 跳转到服务提供商系统,显示当前登录用户为“用户名(SAML)”。
相关任务
- 关闭身份提供商:
- 删除身份提供商:
在“身份提供商配置”页签,单击目标身份提供商“操作”列的“删除”,或选择需要删除的身份提供商,单击“删除”。
如果配置IdP时开启了“是否跳转系统”,当需要删除SP系统的IdP配置时,SP的安全管理员可访问“https://SP的IP地址:31943/unisso/login.action”直接登录SP系统操作。
- 修改身份提供商:
在“身份提供商配置”页签,单击目标身份提供商的名称,修改身份提供商的配置信息。
如果配置IdP时开启了“是否跳转系统”,当需要修改SP系统的IdP配置时,SP的安全管理员可访问“https://SP的IP地址:31943/unisso/login.action”直接登录SP系统操作。
- 关闭服务提供商:
- 删除服务提供商:
- 修改服务提供商:
