# 从STS凭证提供商获取STS凭证
#### 功能介绍
从指定的STS凭证提供商获取临时STS凭证。
#### URI
POST /v1/sts/token
#### 请求参数
表1请求Body参数 
| 参数                                | 是否必选 | 参数类型                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| resource_credential_provider_name | 是    | String                                                          | **参数解释**： 要获取STS凭证的STS凭证提供商名称。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~128个字符。 **默认取值**： 不涉及。           |
| workload_access_token             | 否    | String                                                          | **参数解释**： 请求STS令牌的工作负载身份令牌。 **约束限制**： 不涉及。 **取值范围**： 长度为1\~131072个字符。 **默认取值**： 不涉及。                                |
| agency_session_name               | 是    | String                                                          | **参数解释**： 被代理委托会话的标识符。 **约束限制**： 不涉及。 **取值范围**： 只能由字母、数字及"+", "=", ",", ".", "@", "-"组成，长度为2\~64个字符。 **默认取值**： 不涉及。 |
| duration_seconds                  | 否    | Integer                                                         | **参数解释**： 委托会话的持续时间，单位为秒。 **约束限制**： 不涉及。 **取值范围**： 900\~43200。 **默认取值**： 3600                                       |
| policy                            | 否    | String                                                          | **参数解释**： 要用作内联会话策略的JSON格式IAM策略。 **约束限制**： 不涉及。 **取值范围**： 长度为2\~2048个字符。 **默认取值**： 不涉及。                             |
| source_identity                   | 否    | String                                                          | **参数解释**： 调用操作的主体的源身份。 **约束限制**： 不涉及。 **取值范围**： 只能由字母、数字及"+", "=", ",", ".", "@", "-"组成，长度为2\~64个字符。 **默认取值**： 不涉及。 |
| tags                              | 否    | Array of [StsTag] objects | **参数解释**： 标签列表。 **约束限制**： 不涉及。 **取值范围**： 数组长度范围\[0,20\]。 **默认取值**： 不涉及。                                             |
| transitive_tag_keys               | 否    | Array of strings                                                | **参数解释**： 要设置为可传递的会话标签键列表。 **约束限制**： 不涉及。 **取值范围**： 数组长度范围\[0,20\]，每个值不能以"_sys_"开头，长度为1\~128个字符。 **默认取值**： 不涉及。     |
   
 表2StsTag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释**： 标签的键标识符或名称。 **约束限制**： 不能以"_sys_"开头。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"符号的任意组合，长度为1\~128个字符。 **默认取值**： 不涉及。 |
| value | 是    | String | **参数解释**： 与标签键关联的字符串值。 **约束限制**： 不涉及。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"、"\&"符号的任意组合，长度为0\~255个字符。 **默认取值**： 不涉及。    |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数              | 参数类型                                                                   | 描述                                                                                                                                                                                                         |
|:---|:---|:---|
| source_identity | String                                                                 | **参数解释**： 调用操作的主体的源身份。 **取值范围**： 只能由字母、数字及"+", "=", ",", ".", "@", "-"组成，长度为2\~64个字符。 |
| assumed_agency  | [assumed_agency] object | **参数解释**： 包含被代理委托的信息。包含urn和id两个子参数。 **取值范围**： 不涉及。                                    |
| credentials     | [credentials] object       | **参数解释**： 用于API认证的凭证。 **取值范围**： 不涉及。                                                  |
   
 表4assumed_agency 
| 参数  | 参数类型   | 描述                                                                                                                                                                                                                      |
|:---|:---|:---|
| urn | String | **参数解释**： 被代理委托的URN。 **取值范围**： 长度最大为1500个字符。                                                       |
| id  | String | **参数解释**： 包含委托ID和委托会话名称的唯一标识符。 **取值范围**： 只能由字母、数字及"+", "=", ",", ".", ":", "@", "-"组成，长度最大为256个字符。 |
   
 表5credentials 
| 参数                | 参数类型   | 描述                                                                                                                                                                                          |
|:---|:---|:---|
| access_key_id     | String | **参数解释**： 标识临时安全凭证的访问密钥ID。 **取值范围**： 长度为20个字符。                         |
| expiration        | String | **参数解释**： 当前凭证过期的日期和时间。 **取值范围**： 使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ssZ。 |
| secret_access_key | String | **参数解释**： 可用于签署请求的秘密访问密钥。 **取值范围**： 长度为40个字符。                          |
| security_token    | String | **参数解释**： 用户必须传递给服务API以使用临时凭证的令牌。 **取值范围**： 不涉及。                       |
   
**状态码：400**
表6响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：401**
表7响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：403**
表8响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：404**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：429**
表10响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：500**
表11响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
#### 请求示例
从STS凭证提供商获取STS凭证。
```
POST https://{endpoint}/v1/sts/token
{
  "resource_credential_provider_name" : "my-sts-provider",
  "agency_session_name" : "my-session",
  "workload_access_token" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}
```
#### 响应示例
**状态码：200**
```
{
  "assumed_agency" : {
    "urn" : "urn:iam::12345678901234567890:agency:my-agency",
    "id" : "agency-id-session-name"
  },
  "credentials" : {
    "access_key_id" : "AKIAIOSFODNN7EXAMPLE",
    "secret_access_key" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
    "security_token" : "FwoGZXIvYXdzEBYaDH...",
    "expiration" : "2025-12-31T23:59:59Z"
  }
}
```
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 请求成功。     |
| 400 | 请求体异常。    |
| 401 | 认证失败。     |
| 403 | 没有操作权限。   |
| 404 | 未找到相应的资源。 |
| 429 | 请求过于频繁。   |
| 500 | 服务端异常。    |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-agentidentity/ErrorCode.html)。
