更新时间:2023-07-18 GMT+08:00

校验Token的有效性

功能介绍

该接口可以用于管理员校验本帐号中IAM用户token的有效性,或IAM用户校验自己token的有效性。管理员仅能校验本帐号中IAM用户token的有效性,不能校验其他帐号中IAM用户token的有效性。如果被校验的token有效,则返回该token的详细信息。

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

URI

GET /v3/auth/tokens

表1 Query参数

参数

是否必选

参数类型

描述

nocatalog

String

如果设置该参数,返回的响应体中将不显示catalog参数。任何非空字符串都将解释为true,并使该字段生效。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

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

X-Auth-Token

String

管理员校验本帐号中IAM用户的token的有效性:拥有Security Administrator权限的token。

IAM用户校验自己token的有效性:该IAM用户的token(无需特殊权限)。

X-Subject-Token

String

待校验的token。

请求示例

校验Token的有效性。

GET https://iam.myhuaweicloud.com/v3/auth/tokens

响应参数

表3 响应Header参数

参数

参数类型

描述

X-Subject-Token

string

已校验的token。

表4 响应Body参数

参数

参数类型

描述

token

Object

获取到的token信息。

表5 token

参数

参数类型

描述

catalog

Array of objects

服务目录信息。

domain

Object

被校验token的IAM用户所属的帐号信息。如果获取token时请求体中scope参数设置为domain,则返回该字段。

expires_at

String

token过期时间。

说明:

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

issued_at

String

token下发时间。

说明:

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

methods

Array of strings

获取token的方式。

project

Object

被校验token的IAM用户所属帐号的项目信息。如果获取token时请求体中scope参数设置为project,则返回该字段。

roles

Array of objects

token的权限信息。

user

Object

获取token的IAM用户信息。

表6 token.catalog

参数

参数类型

描述

endpoints

Array of objects

终端节点。

id

String

服务ID。

name

String

服务名称。

type

String

该接口所属服务。

表7 token.catalog.endpoints

参数

参数类型

描述

id

String

终端节点ID。

interface

String

接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。

region

String

终端节点所属区域。

region_id

String

终端节点所属区域ID。

url

String

终端节点的URL。

表8 token.domain

参数

参数类型

描述

name

String

帐号名称。

id

String

帐号ID。

表9 token.project

参数

参数类型

描述

domain

Object

项目所属帐号信息。

id

String

项目ID。

name

String

项目名称。

表10 token.project.domain

参数

参数类型

描述

id

String

帐号ID。

name

String

帐号名称。

表11 token.roles

参数

参数类型

描述

name

String

权限名称。

id

String

权限ID。默认显示为0,非真实权限ID。

表12 token.user

参数

参数类型

描述

name

String

IAM用户名。

id

String

IAM用户ID。

password_expires_at

String

密码过期时间,“”表示密码不过期。

说明:

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

domain

Object

IAM用户所属的帐号信息。

表13 token.user.domain

参数

参数类型

描述

name

String

IAM用户所属帐号名称。

id

String

IAM用户所属帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID

响应示例

状态码为 200 时:

请求成功。

响应Header参数:
X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
响应Body参数:
{
    "token": {
        "expires_at": "2020-01-04T09:08:49.965000Z",
        "methods": [
            "password"
        ],
        "catalog": [
            {
                "endpoints": [
                    {
                        "id": "33e1cbdd86d34e89a63cf8ad16a5f49f",
                        "interface": "public",
                        "region": "*",
                        "region_id": "*",
                        "url": "https://iam.myhuaweicloud.com/v3.0"
                    }
                ],
                "id": "100a6a3477f1495286579b819d399e36",
                "name": "iam",
                "type": "iam"
            },
            {
                "endpoints": [
                    {
                        "id": "29319cf2052d4e94bcf438b55d143832",
                        "interface": "public",
                        "region": "*",
                        "region_id": "*",
                        "url": "https://bss.sample.domain.com/v1.0"
                    }
                ],
                "id": "c6db69fabbd549908adcb861c7e47ca4",
                "name": "bssv1",
                "type": "bssv1"
            }
        ],
        "domain": {
            "id": "d78cbac186b744899480f25bd022f468",
            "name": "IAMDomain"
        },
        "roles": [
            {
                "id": "0",
                "name": "te_admin"
            },
            {
                "id": "0",
                "name": "secu_admin"
            },
            {
                "id": "0",
                "name": "te_agency"
            }
        ],
        "issued_at": "2020-01-03T09:08:49.965000Z",
        "user": {
            "domain": {
                "id": "d78cbac186b744899480f25bd022f468",
                "name": "IAMDomain"
            },
            "id": "7116d09f88fa41908676fdd4b039e95b",
            "name": "IAMUser",
            "password_expires_at": ""
        }
    }
}

状态码为 404 时:

未找到相应的资源。

{
    "error": {
        "code": 404,
        "message": "X-Subject-Token is invalid in the request",
        "title": "Not Found"
    }
}

返回值

返回值

描述

200

请求成功。

401

认证失败。

403

没有操作权限。

404

未找到相应的资源。

500

内部服务错误。

错误码