# 获取自定义身份代理登录票据 - CreateLoginToken
#### 功能介绍
该接口用于获取自定义身份代理登录票据logintoken。logintoken是系统颁发给自定义身份代理用户的登录票据，承载用户的身份、session等信息。调用自定义身份代理URL登录云服务控制台时，可以使用本接口获取的logintoken进行认证。
该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见：[地区和终端节点](https://developer.huaweicloud.com/endpoint?IAM)。
![](https://support.huaweicloud.com/api-iam/public_sys-resources/note_3.0-zh-cn.png)
自定义身份代理登录票据logintoken默认有效期为10分钟，可设置范围为10分钟\~12小时。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=CreateLoginToken)中调试该接口。
#### 授权信息
当前API调用无需策略权限。
#### URI
POST /v3.0/OS-AUTH/securitytoken/logintokens
#### 请求参数
表1请求Header参数 
| 参数         | 是否必选 | 参数类型  | 描述                                     |
|:---|:---|:---|:---|
| Content-Type | 是   | String | 该字段内容填为"application/json;charset=utf8"。 |
   
表2请求Body参数 
| 参数                                                            | 是否必选 | 参数类型  | 描述    |
|:---|:---|:---|:---|
| [auth] | 是    | Object | 认证信息。 |
   
 表3auth 
| 参数                                                                                   | 是否必选 | 参数类型   | 描述  |
|:---|:---|:---|:---|
| [securitytoken] | 是    | Object | 认证参数。 |
   
 表4auth.securitytoken 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| access | 是    | String  | AK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| secret | 是    | String | SK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| id    | 是   | String   | 即临时安全凭证securitytoken。 支持使用自定义身份代理用户或普通用户获取的securitytoken换取logintoken，详情请参见：[通过token获取临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0002.html)。 支持委托的方式，但获取securitytoken时，请求体中必须填写session_user.name参数，详情请参见：[通过委托获取临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0101.html)。                                                                                                                                                                                                                                                                       |
| duration_seconds              | 否                           | Integer                       | 自定义身份代理登录票据logintoken的有效时间，时间单位为秒。默认10分钟，即600秒，取值范围10分钟\~12小时。 说明： - 如果传入的值不在取值范围（10分钟\~12小时）内，则取默认值10分钟。  - logintoken有效时间为临时安全凭证securitytoken剩余有效时间与duration_seconds传参的最小值。 - 为避免duration_seconds传参无效，建议设置临时安全凭证securitytoken具有较长的有效期（15分钟\~24小时），且duration_seconds传参小于临时安全凭证securitytoken剩余有效时间。  - 当临时安全凭证securitytoken剩余有效时间小于10分钟时，logintoken的有效时间将取默认值10分钟。     |
   
#### 响应参数
表5响应Header参数 
| 参数                | 参数类型   | 描述              |
|:---|:---|:---|
| X-Subject-LoginToken | String | 签名后的logintoken。 |
   
表6响应Body参数 
| 参数                                                                           | 参数类型   | 描述             |
|:---|:---|:---|
| [logintoken] | Object | 自定义身份代理登录票据信息。 |
   
 表7logintoken 
| 参数                                                                                  | 参数类型    | 描述                                                                                                                                                                                                    |
|:---|:---|:---|
| domain_id                                                                            | String | 账号ID。                                                                                                                                                                                                 |
| expires_at                                                                          | String     | logintoken的过期时间。                                                                                                                                                                                       |
| method                                                                              | String   | 认证方法。当认证用户为华为云用户时，该字段内容为"token"，当认证用户为自定义身份代理用户时，该字段内容为"federation_proxy"。                                                                                                                            |
| user_id                                                                             | String  | 用户ID。                                                                                                                                                                                                 |
| user_name                                                                            | String   | 用户名。                                                                                                                                                                                                |
| session_id                                                                            | String  | 会话ID。                                                                                                                                                                                                 |
| session_user_id                                                                                            | String                          | 自定义身份代理用户ID。 说明： 通过[委托获取临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0101.html)且请求体中填写session_user.name参数时，会返回该字段。该字段的值即为session_user.name所填写的值。                       |
| session_name                                                                          | String  | 自定义身份代理用户名。 说明： 通过[委托获取临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0101.html)且请求体中填写session_user.name参数时，会返回该字段。该字段的值即为session_user.name所填写的值。 |
| [assumed_by] | Object  | 被委托方用户信息。 说明： 通过[委托获取临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0101.html)且请求体中填写session_user.name参数时，会返回该字段。                                |
   
 表8logintoken.assumed_by 
| 参数                                                                               | 参数类型     | 描述       |
|:---|:---|:---|
| [user] | Object | 被委托方用户信息。 |
   
 表9logintoken.assumed_by.user 
| 参数                                                                                          | 参数类型  | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| [domain] | Object | 被委托方用户所属账号信息。                                                                                                                                                                                      |
| name                                                                                      | String   | 被委托方用户名。                                                                                                                                                                                           |
| password_expires_at                                                                        | String  | 被委托方用户的密码过期时间。 说明： UTC时间，格式为YYYY-MM-DDTHH:mm:ss.ssssssZ，日期和时间戳格式参照[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html)，如：2023-06-28T08:56:33.710000Z。 |
| id                                                                                          | String  | 被委托方用户ID。                                                                                                                                                                                          |
   
 表10logintoken.assumed_by.user.domain 
| 参数    | 参数类型      | 描述             |
|:---|:---|:---|
| name | String | 被委托方用户所属账号名称。   |
| id | String   | 被委托方用户所属账号ID。 |
   
#### 请求示例
获取自定义身份代理登录票据。
```
POST https://iam.myhuaweicloud.com/v3.0/OS-AUTH/securitytoken/logintokens
```
```
{
    "auth": {
        "securitytoken": {
            "access": "LUJHNN4WB569PGAP...",
            "secret": "7qtrm2cku0XubixiVkBOcvMfpnu7H2mLN...",
            "id": "gQpjbi1ub3J0a...",
            "duration_seconds":600
        }
    }
}
```
#### 响应示例
**状态码为 201 时:**
创建成功。
示例1：通过token获取临时访问密钥和securitytoken。
示例2：通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数。
- 示例 1
  ```
  响应Header参数：
  X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
  ```
  ```
  响应Body参数：
  {
      "logintoken": {
          "domain_id": "05262121fb00d5c30fbec013bc1...",
          "expires_at": "2020-01-20T08:18:36.447000Z",
          "method": "token",
          "user_id": "0526213b8a80d38a1f31c013ed...",
          "user_name": "IAMUser",
          "session_user_id": "093f75808b8089ba1f6dc000c7cac...",
          "session_id": "40b328b6683a41b9bf8e7185e..."
      }
  }
  ```
  
- 示例 2
  ```
  响应Header参数：
  X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
  ```
  ```
  响应Body参数：
  {
      "logintoken": {
          "domain_id": "05262121fb00d5c30fbec01...",
          "expires_at": "2020-01-23T03:27:26.728000Z",
          "method": "federation_proxy",
          "user_id": "07826f367b80d2474ff9c013a...",
          "user_name": "IAMDomainA/IAMAgency",
          "session_id": "0012c8e6adda4ce787e90585d...",
          "session_user_id": "093f75808b8089ba1f6dc000c7cac...",
          "session_name": "SessionUserName",
          "assumed_by": {
              "user": {
                  "domain": {
                      "name": "IAMDomainB",
                      "id": "0659ef9c9c80d4560f14c009ac..."
                  },
                  "name": "IAMUserB",
                  "password_expires_at": "2020-02-16T02:44:57.000000Z",
                  "id": "0659ef9d4d00d3b81f26c009fe..."
              }
          }
      }
  }
  ```
  
 
#### 返回值
| 返回值 | 描述       |
|:---|:---|
| 201  | 创建成功。  |
| 400  | 参数无效。     |
| 401 | 认证失败。     |
| 403  | 没有操作权限。  |
| 405 | 不允许的方法。  |
| 413 | 请求体过大。  |
| 500  | 内部服务错误。  |
| 503   | 服务不可用。 |
   
#### 错误码
无
