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

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

功能介绍

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

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

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

调试

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

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

服务不可用。

错误码