
# 通过OneAccess免密登录多个华为云账号（SAML-IAM用户SSO）
本文以SAML协议为例介绍如何实现使用OneAccess免密登录华多个华为云账号。如需了解华为云身份提供商详情，请参考[身份提供商概述](https://support.huaweicloud.com/usermanual-iam/iam_08_0001.html)。
#### 在华为云上创建身份提供商
在华为云控制台创建身份提供商，配置身份提供商的元数据文件后，可以在华为云中建立对OneAccess的信任关系。
1. 登录OneAccess管理门户，下载OneAccess系统的元数据文件（metadata文件）。 
   1. 登录OneAccess管理门户。
   
   2. 在导航栏中，选择"设置 \> 服务配置"。
   
   3. 在"服务配置"页面，单击"IDP配置"。
   
   4. 在弹出的IDP配置页面，单击右上角的"下载IDP元数据"，数据会自动保存。
   
   
   
   
2. 参考[在华为云上创建身份提供商](https://support.huaweicloud.com/usermanual-iam/iam_08_0003.html#section2)创建身份提供商 ，其中"类型"选择"IAM用户SSO"。
   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   - 身份提供商名称不能重复，建议以域名唯一标识命名。
   
   - IAM用户SSO定义可参考[虚拟用户SSO与IAM用户SSO的适用场景](https://support.huaweicloud.com/usermanual-iam/iam_08_0251.html)。
   
   - 一个华为云账号只能存在"IAM用户SSO"和"虚拟用户SSO"中的一种类型的身份提供商。
    
   
   
3. 获取华为云登录链接、domain_id和idp的值。
   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000002106815754.png)
   
   
4. 参考[在华为云上配置元数据文件](https://support.huaweicloud.com/usermanual-iam/iam_08_0003.html#section3)把OneAccess IdP的Metadata文件配置到华为云。
5. 参考[配置外部身份ID](https://support.huaweicloud.com/usermanual-iam/iam_08_0257.html)在华为云上配置IAM用户的外部身份ID，建立OneAccess用户和IAM用户的对应关系。
6. 在其他华为云账号上面重复[2]\~[5]进行配置。
#### 建立OneAccess对华为云的信任关系
在OneAccess中配置华为云的元数据文件，以建立OneAccess对华为云的信任。
1. 在OneAccess上添加华为云应用。 
   1. 登录OneAccess管理门户，选择"资源 \> 应用"。
   
   2. 在应用页面，单击"新增预集成应用"。
   
   3. 在新增预集成应用页面，单击"华为云"应用。
   
   4. 在弹出的添加应用页面，确认通用信息，单击"下一步"。
   
   5. 在认证参数配置页面，选择"导入SP应用元数据 \> 选择文件"，选择获取的华为云元数据文件。系统会自动上传文件并提取元数据。
      ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
      - 预集成应用为OneAccess专业版用户功能，如果是OneAccess基础版用户，请参考[在OneAccess中添加企业应用](https://support.huaweicloud.com/bestpractice-oneaccess/oneaccess_05_0022.html#oneaccess_05_0022__section8919141211415)创建自定义应用后进行[1.e]操作。
      
      - 在<https://auth.huaweicloud.com/authui/saml/metadata.xml>下载华为云元数据文件，并设置文件名称，例如"SP-metadata.xml"。
      
      - OneAccess同时支持"选取文件"和"手动输入配置数据"方式配置元数据，了解详情请参考[在OneAccess中配置元数据文件](https://support.huaweicloud.com/bestpractice-oneaccess/oneaccess_05_0022.html#oneaccess_05_0022__section7213193111510)。
        
   
   6. 待"选取文件"变为"√"时，代表系统已提取元数据，单击"下一步"，成功添加华为云应用。
   
   7. 在认证集成页面，在"参数配置"页签，单击"编辑"，将"Single Logout URL"对应值中的"/saml/LogoutServiceHTTPRedirect"替换为"/logout"。
   
   
   
   
2. 配置OneAccess与华为云之间的映射关系。 
   1. 单击已添加的华为云应用，在应用信息页面，单击应用图标，进入应用详情页面。
   
   2. 选择"认证集成 \> 映射配置"，进入映射配置页面。
   
   3. 单击"添加映射"，添加应用属性名为"IAM_SAML_Attributes_xUserId"的映射，建立OneAccess与华为云之间的属性映射。映射对象可以是OneAccess中用户已有的属性，也可以是新增的自定义属性，必须和步骤[5]中添加的IAM用户的外部身份ID一致。
   
   4. 单击"添加映射"，添加应用属性名为"IAM_SAML_Attributes_identityProviders"的映射，映射类型为"固定属性值"，值为"iam::{domain_id}:identityProvider:{idp_id}"，其中"{domain_id}"为步骤[3]中获取的domain_id，"{idp_id}"为步骤[3]中获取的idp_id，支持多个华为云账号的拼接，使用";"进行分隔，实现跳转过程中选择某个华为云账号跳转，两个华为云账号时值举例如下：
      iam::657ba0e\*\*\*\*\*\*\*\*\*\*\*19fd684d8758c:identityProvider:SAML-IAM;iam::e35f949b3\*\*\*\*\*\*\*\*\*2b79ba14839c:identityProvider:SAML-OneAccess
      
   
   5. （可选）单击"添加映射"，添加应用属性名为"IAM_SAML_Attributes_redirect_url"的映射，映射类型为"固定属性值"，值为华为云Console中的特定业务页面（如果业务地址中带有"agencyId=\*\*\*\&"字段，需要将该字段删除），可以实现单点登录直接跳转至特定业务页面，如果不添加，默认跳转华为云主页面。
   
   
   
   
3. 在OneAccess给用户授予华为云访问权限。 
   在华为云应用详情页面，选择"授权管理 \> 应用账号"，单击"添加账号"，按需勾选账号，单击"保存"，所选用户即可在OneAccess中免密访问华为云。
   
   
 
#### OneAccess用户登录验证
在OneAccess中授予华为云应用访问权限的用户，登录OneAccess用户门户，单击华为云应用，选择需要访问的身份提供商，即可进入华为云控制台首页访问云服务。
