
# 创建SAML身份提供商的信任委托
您可以使用SAML 2.0联邦身份认证而不必在华为云账号中创建IAM用户。利用SAML身份提供商，您可以管理华为云外部的用户身份，并向这些外部用户身份授予访问您华为云账号中的资源的权限。有关联邦身份认证的更多信息，请参阅[身份提供商](https://support.huaweicloud.com/usermanual-iam5/iam_01_1305.html)。
#### 前提条件
1. 在创建用于SAML 2.0的信任委托之前，必须在IAM中创建SAML身份提供商。有关更多信息，请参阅[创建SAML身份提供商](https://support.huaweicloud.com/usermanual-iam5/iam_01_1310.html)。
2. 在SAML 2.0联邦身份认证场景中，需要为用户切换的身份提供商信任委托配置相应的策略。用于SAML联邦身份认证的信任委托包含两种策略, 一种是指定谁可以切换信任委托的信任策略，另一种是IAM身份策略，用于定义SAML联邦主体在华为云中允许执行的操作以及可访问的资源。
   在创建信任策略时，必须进行以下配置以确保只有您的应用程序可以切换该信任委托：
   - 对于Action元素，请使用sts:agencies:assumeWithSAML操作：
     ```
     "Action": [
         "sts:agencies:assumeWithSAML"
     ]
     ```
     
   
   - 对于Principal元素，请使用字符串{"Federated":providerUrn}。使用您在步骤1中创建的SAML身份提供商的[URN](https://support.huaweicloud.com/usermanual-iam5/iam_01_1275.html)，例如以下示例：
     ```
     "Principal": {
         "Federated": [
             "iam::{account-id}:samlProvider:{provider-name}"
         ]
     }
     ```
     
   
   - 对于Condition元素，使用StringEquals条件键校验SAML响应中的saml:aud属性是否与登录URL一致, 此登录URL对应SAML响应断言中的Recipient属性。根据您使用的身份提供商，创建一个类似于以下示例的条件元素：
     ```
     "Condition": {
         "StringEquals": {
             "saml:aud": [
                 "https://auth.huawei.com/saml/acs/{provider_id}"
             ]
         }
     }
     ```
     
     
3. 如果需要SAML加密，则登录URL必须包含华为云分配给您的SAML身份提供商的ID。您可以通过在IAM控制台中选择身份提供商并显示详细信息页面来查看身份提供商ID。启用SAML加密的登录URL示例如下：
   ```
   https://auth.huawei.com/saml/acs/{provider_id}
   ```
   用于SAML身份提供商的信任委托的信任策略示例如下：
   ```
   {
     "Version": "5.0",
     "Statement": [
       {
         "Action": [
           "sts:agencies:assumeWithSAML"
         ],
         "Effect": "Allow",
         "Condition": {
           "StringEquals": {
             "saml:aud": [
               "https://auth.huawei.com/saml/acs/{provider_id}"
             ]
           }
         },
         "Principal": {
           "Federated": [
             "iam::{account-id}:samlProvider:{provider_name}"
           ]
         }
       }
     ]
   }
   ```
   将主体Principal中的URN替换为您在IAM中创建的SAML身份提供商的实际URN。它会包含您的华为云账号ID和IAM SAML身份提供商名称。
   
 
#### 操作步骤
1. 登录[统一身份认证服务新版控制台](https://console.huaweicloud.com/iam5)。
2. 在统一身份认证服务左侧导航窗格中，选择"委托"，单击右上方的"创建信任委托"。
3. 设置"委托名称"。
   图1为SAML创建信任委托   
   ![](https://support.huaweicloud.com/usermanual-iam5/zh-cn_image_0000002543873472.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-iam5/public_sys-resources/note_3.0-zh-cn.png)
   创建成功后，信任委托的名称不支持修改。
   
4. "信任主体类型"选择"身份提供商"，"身份提供商类型"选择"SAML"。
5. 在"SAML身份提供商"下拉列表，为您的信任委托选择具体的SAML身份提供商。
6. 选择"最大会话持续时长"，即选择编程访问获取的临时访问凭证可持续的最大会话时长。
7. （可选）填写"描述"信息。
8. （可选）可根据需要配置一个或多个SAML属性及其取值，以限制仅允许断言中包含对应属性的用户切换信任委托，**其中受众（aud）为必选属性** 。
   图2添加条件   
   ![](https://support.huaweicloud.com/usermanual-iam5/zh-cn_image_0000002573426419.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-iam5/public_sys-resources/note_3.0-zh-cn.png)
   添加条件键的列表包括最常用的SAML属性。你可以打开[身份策略授权参考](https://support.huaweicloud.com/usermanual-permissions/iam_01_0003.html)，导航至STS服务的"条件（condition）"小节，查看所有SAML相关的条件键。
   
9. 创建完成后，点击"立即授权"可以为信任委托附加身份策略；如果未附加任何策略，信任委托默认不具备权限。
   图3立即授权   
   ![](https://support.huaweicloud.com/usermanual-iam5/zh-cn_image_0000002542628616.png) 
完成创建和授权后，可结合外部身份提供商中的SAML断言配置，使经过SAML联邦身份认证的用户能够切换该信任委托访获取临时凭证访问账号内的华为云资源。
