1 联合认证简介
当企业已有自己的身份认证系统(如华为云应用身份管理服务OneAccess),希望使用自己的身份认证系统登录华为云,而不需要在华为云中重新创建对应的IAM用户时,可以使用IAM提供的身份提供商(IdP)功能。通过该功能,企业用户不需要在华为云中重新创建用户,只需使用企业已有的用户名密码即可登录并使用华为云资源。利用身份提供商(IdP)机制,您可以向企业中的用户授予使用您账户中华为云资源的权限。关于身份提供商功能的详细说明,请参见联邦身份认证。
本文以企业IdP系统为华为云应用身份管理服务(以下简称OneAccess)为例,说明配置联邦用户访问华为云系统的方法。其中我们使用OneAccess做为用户管理和访问软件。
1.1 OneAccess与华为云联合认证流程
下图为OneAccess与华为云的联合认证流程。
从图中可知,联合认证的步骤为:
- 用户在浏览器中打开从华为云上获取到的登录链接,浏览器向华为云发起单点登录请求。
- 华为云根据登录链接中携带的信息,查找对应的Metadata文件,构建SAML Request,发送给浏览器。
- 浏览器响应后,转发SAML Request给OneAccess实例。
- 用户在浏览器中输入OneAccess中创建的用户名和密码,OneAccess对用户提供的身份信息进行验证,并构建携带用户信息的SAML断言,向浏览器发送SAML Response。
- 浏览器响应后转发SAML Response给华为云。
- 华为云从SAML Response中取出断言,并根据已配置的身份转换规则映射到具体的IAM用户组,颁发Token。
- 用户完成单点登录,根据权限访问华为云。
2 环境要求及运行结果
2.1 环境要求
2.2 运行结果
通过本文操作,使用默认身份转换规则映射到华为云帐号中的guest用户组。
在完成本文所有操作后,您可以通过IAM中创建的身份提供商所提供的链接,使用guest用户成功登录华为云。其中由于IAM配置默认身份转换规则,guest用户将会以“FederationUser”的虚拟用户身份登录华为云。给虚拟用户配置IAM权限及身份转换规则的其他高阶功能,请参考身份转换规则详细说明。
3 IdP侧联邦对接配置
在本文中,华为云OneAccess服务作为IdP(身份提供商)完成与华为云IAM的对接。
3.1 前提条件
请确保已购买OneAccess服务实例(公测期间,则确定已申请公测)。
3.2 操作步骤
-
获取并保存华为云系统的元数据文件(metadata文件)。
访问网址:https://auth.huaweicloud.com/authui/saml/metadata.xml。下载华为云元数据文件,并设置文件名称,例如“SP-metadata.xml”。
-
在OneAccess中创建应用,操作请参见:用户单点登录SAML协议应用。
其中“上传元数据”需要上传1获取到的IAM SP元数据“SP-metadata.xml”。
-
在OneAccess中创建用户并为其授予2创建的应用访问权限,操作请参见:添加用户、为用户授予应用使用权限。
4 SP侧联邦对接配置
在本文中,华为云IAM服务作为SP(服务提供商)完成与OneAccess的对接。
4.1 前提条件
请确保已开通华为云IAM账号。
4.2 操作步骤
-
获取OneAccess的元数据文件,获取方法请参考:IdP配置。
获取并保存元数据文件“IdP-metadata.xml”。
-
在华为云创建基于SAML协议的身份提供商,操作请参见:在华为云上创建身份提供商。
其中“在华为云上配置元数据文件”需要上传1获取到的OneAccess IdP元数据“IdP-metadata.xml”。
5 在IAM配置身份提供商身份转换规则
完成联邦对接后,还需要在IAM的身份提供商中,配置OneAccess与华为云用户组间的映射关系,以实现OneAccess用户完成与华为云间的联合认证及权限范围限定。
身份转换规则的详细说明和示例请参见:身份转换规则详细说明。
操作步骤
1. 管理员登录华为云,在IAM“修改身份提供商”页面, 创建身份转换规则。详情请参考:配置身份转换规则。
- 用户名:联邦登录用户使用的用户名称,如“guest”。
- 用户组:联邦登录用户具有的用户组权限,如“guest”。
- 本规则生效条件:联邦用户拥有所选用户组权限的生效条件。
说明:
本规则生效条件中的属性应与IdP侧OneAccess映射配置添加的用户属性名一致。
2. 在“创建规则”页面,单击“确定”。
3. 在“修改身份提供商”页面,单击“确定”,使配置生效。
配置成功后,OneAccess用户发起联邦登录,将以guest用户名登录华为云,此用户具有IAM guest用户组对应权限。
6 SP端发起登录
1. 在“修改身份提供商”页面,复制登录链接,并在浏览器中输入如下链接。
2. 浏览器弹出如下页面中,填写OneAccess应用授权的用户名和密码,单击“登录”。
3. 登录至华为云控制台,企业管理系统OneAccess到华为云的联合认证成功。
- 用户登录后出现如下页面,说明使用OneAccess用户(企业联邦用户)登录华为云成功。
-
用户登录后出现如下页面,说明当前登录华为云的企业联邦用户没有相应操作的权限,参考1.5章节,配置身份提供商身份转换规则完成权限配置。
7 (可选)配置OneAccess的华为应用映射关系
7.1 前提条件
在IAM配置的身份转化规则中,需要获取IdP的断言中的属性信息来填充身份转换规则中的缺省值。
7.2 操作步骤
1. 在OneAccess映射配置,以domain_id为例:
- 应用系统属性名: domain_id
- 映射类型:固定属性值
- 固定属性值:{华为云创建身份提供商的租户Domain ID}
- 其他:自定义
2. 映射配置生效。
在SAML Response中携带domain_id信息:
8 (可选)IdP端发起登录
当前华为云IAM身份提供商支持单租户、多租户模式,如果您通过IdP端发起登录,请参考本节进行操作。
说明:
如果您同时配置单租户、多租户模式,系统将自动设置为单租户有效。
8.1 单租户模式
1. 在华为云IAM的“修改身份提供商”页面,查看对应的domain_id,idp。
2. 在OneAccess增加domain_id对应的映射配置。
- 应用系统属性名:IAM_SAML_Attributes_domain_id
- 映射类型:固定属性值
- 固定属性值:{华为云创建身份提供商的租户Domain ID}
- 其他:自定义
3. 在OneAccess增加IdP对应的映射配置。
- 应用系统属性名:IAM_SAML_Attributes_idp_id
- 映射类型:固定属性值
- 固定属性值:{华为云创建身份提供商的租户IdP ID}
- 其他:自定义
4. 登录OneAccess企业中心,进入创建的华为云应用详情,获取网站应用的挂载URL。
5. 浏览器中输入挂载URL,输入帐号、密码,登录并跳转至华为云控制台,表示OneAccess用户到华为云的联合认证成功。
8.2 多租户模式
8.2.1多租户模式场景说明
- 多租户模式下配置单租户场景
IDP端发起登录后,将触发多租户模式下的单租户场景,预期以idp_id_1身份登录domain_id_1。
参数 |
格式 |
值 |
传出声明类型 |
IAM_SAML_Attributes_identityProviders |
iam::{domain_id_1}:identityProvider:{idp_id_1} |
- 多租户模式下配置多租户场景
IDP端发起登录后,将触发多租户模式下的多租户场景,如下图所示。将跳转至多租户联邦登录页,用户选择身份提供商后,完成登录。
参数 |
格式 |
值 |
传出声明类型 |
IAM_SAML_Attributes_identityProviders |
iam::{domain_id_1}:identityProvider:{idp_id_1};iam::{domain_id_1}:identityProvider:{idp_id_2};iam::{domain_id_2}:identityProvider:{idp_id_3} |
说明:
多个传出声明类型值由分号“;”分割,且传参不能含有空格。
8.2.2 多租户模式登录步骤
-
在“修改身份提供商”页面,查看对应的domain_id,idp,确认身份提供商信息(多租户场景需要根据不同的登录链接确认信息)。
IDP
domain_id
Idp_id
IDP1
{domain_id_1}
{idp_id_1}
IDP2
{domain_id_1}
{idp_id_2}
IDP3
{domain_id_2}
{idp_id_3}
-
参考单租户登录-步骤2,在ADFS上添加多租户配置参数idps对应的规则。
其中传出声明类型必须为IAM_SAML_Attributes_identityProviders,传出声明值为固定格式的多租配置信息,具体参数说明如下:
参数
格式
说明
传出声明类型
IAM_SAML_Attributes_identityProviders
固定值,不能与其他IAM_SAML配置同时配置
传出声明值
iam::{domain_id}:identityProvider:{idp_id}
支持多值拼接,拼接符为英文分号(;)
-
登录OneAccess企业中心,进入创建的华为云应用详情,获取网站应用的挂载URL。
-
浏览器中输入挂载URL,输入帐号、密码,登录并跳转至华为云控制台,表示OneAccess用户到华为云的联合认证成功。
-
在华为云console选择要访问的身份提供商。
-
出现如下页面,说明使用OneAccess用户登录华为云成功。