Skip to content

Latest commit

 

History

History
511 lines (461 loc) · 43.1 KB

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

File metadata and controls

511 lines (461 loc) · 43.1 KB

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

功能介绍

该接口用于获取自定义身份代理登录票据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。

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

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

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

服务不可用。

错误码