文档首页/ 统一身份认证服务 IAM/ API参考/ API/ 自定义身份代理/ 获取自定义身份代理登录票据 - CreateLoginToken
更新时间:2026-09-23 GMT+08:00
分享

获取自定义身份代理登录票据 - CreateLoginToken

功能介绍

该接口用于获取自定义身份代理登录票据logintoken。logintoken是系统颁发给自定义身份代理用户的登录票据,承载用户的身份、session等信息。调用自定义身份代理URL登录云服务控制台时,可以使用本接口获取的logintoken进行认证。

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。

自定义身份代理登录票据logintoken默认有效期为10分钟,可设置范围为10分钟~12小时。

调试

您可以在API Explorer中调试该接口。

授权信息

当前API调用无需策略权限。

URI

POST /v3.0/OS-AUTH/securitytoken/logintokens

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

是

String

该字段内容填为“application/json;charset=utf8”。

表2 请求Body参数

参数

是否必选

参数类型

描述

auth

是

Object

认证信息。

表3 auth

参数

是否必选

参数类型

描述

securitytoken

是

Object

认证参数。

表4 auth.securitytoken

参数

是否必选

参数类型

描述

access

是

String

AK。

secret

是

String

SK。

id

是

String

即临时安全凭证securitytoken。

支持使用自定义身份代理用户或普通用户获取的securitytoken换取logintoken,详情请参见:通过token获取临时访问密钥和securitytoken。

支持委托的方式,但获取securitytoken时,请求体中必须填写session_user.name参数,详情请参见:通过委托获取临时访问密钥和securitytoken。

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

自定义身份代理登录票据信息。

表7 logintoken

参数

参数类型

描述

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且请求体中填写session_user.name参数时,会返回该字段。该字段的值即为session_user.name所填写的值。

session_name

String

自定义身份代理用户名。

说明:

通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数时,会返回该字段。该字段的值即为session_user.name所填写的值。

assumed_by

Object

被委托方用户信息。

说明:

通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数时,会返回该字段。

表8 logintoken.assumed_by

参数

参数类型

描述

user

Object

被委托方用户信息。

表9 logintoken.assumed_by.user

参数

参数类型

描述

domain

Object

被委托方用户所属账号信息。

name

String

被委托方用户名。

password_expires_at

String

被委托方用户的密码过期时间。

说明:

UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。

id

String

被委托方用户ID。

表10 logintoken.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

服务不可用。

错误码

无

相关文档