Skip to content

Latest commit

 

History

History
966 lines (896 loc) · 81.8 KB

获取联邦认证scoped-token.md

File metadata and controls

966 lines (896 loc) · 81.8 KB

获取联邦认证scoped token

功能介绍

该接口可以用于通过联邦认证方式获取scoped token。

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

调试

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

URI

POST /v3/auth/tokens

请求参数

表 1 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

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

表 2 请求Body参数

参数

是否必选

参数类型

描述

auth

Object

认证信息。

表 3 auth

参数

是否必选

参数类型

描述

identity

Object

认证参数。

scope

Object

token的使用范围,取值为project或domain,二选一即可。

表 4 auth.identity

参数

是否必选

参数类型

描述

methods

Array of strings

认证方法,该字段内容为“token”。

token

Object

联邦unscoped token的信息。

表 5 auth.identity.token

参数

是否必选

参数类型

描述

id

String

联邦unscoped token的ID。

表 6 auth.scope

参数

是否必选

参数类型

描述

domain

Object

取值为domain时,表示获取的token可以跨区域使用,domain支持id和name,二选一即可。

project

Object

取值为project时,表示获取的token仅能访问指定project下的资源,project支持id和name,二选一即可。

表 7 auth.scope.domain

参数

是否必选

参数类型

描述

id

String

帐号ID,id与name二选一即可。

name

String

帐号名,id与name二选一即可。

表 8 auth.scope.project

参数

是否必选

参数类型

描述

domain

Object

项目所属帐号,使用name时必填。

id

String

项目ID,id与name二选一即可。

name

String

项目名,id与name二选一即可。

表 9 auth.scope.project.domain

参数

是否必选

参数类型

描述

id

string

帐号ID,id与name二选一即可。

name

string

帐号名,id与name二选一即可。

响应参数

表 10 响应Header参数

参数

参数类型

描述

X-Subject-Token

string

签名后的scoped token。

表 11 响应Body参数

参数

参数类型

描述

token

Object

联邦认证的scoped token信息。

表 12 token

参数

参数类型

描述

methods

Array of strings

获取token的方式。

expires_at

String

token过期时间。

catalog

Array of objects

服务目录信息。

domain

Object

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

project

Object

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

roles

Array of objects

token的权限信息。

user

Object

获取token的用户信息。

issued_at

String

token下发时间。

表 13 token.catalog

参数

参数类型

描述

type

String

该接口所属服务。

id

String

服务ID。

name

String

服务名称。

endpoints

Array of objects

终端节点。

表 14 token.catalog.endpoints

参数

参数类型

描述

url

String

终端节点的URL。

region

String

终端节点所属区域。

region_id

String

终端节点所属区域ID。

interface

String

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

id

String

终端节点ID。

表 15 token.domain

参数

参数类型

描述

name

String

帐号名。

id

String

帐号ID。

表 16 token.project

参数

参数类型

描述

name

String

项目名。

id

String

项目ID。

domain

Object

项目所属帐号信息。

表 17 token.project.domain

参数

参数类型

描述

name

String

帐号名。

id

String

帐号ID。

表 18 token.roles

参数

参数类型

描述

name

String

权限名称。

id

String

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

表 19 token.user

参数

参数类型

描述

domain

Object

用户所属帐号信息。

OS-FEDERATION

Object

联邦身份认证信息。

id

String

用户ID。

name

String

用户名。

password_expires_at

String

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

表 20 token.user.domain

参数

参数类型

描述

name

String

用户所属帐号名称。

id

String

用户所属帐号ID。

表 21 token.user.OS-FEDERATION

参数

参数类型

描述

groups

Array of objects

用户组信息列表。

identity_provider

Object

身份提供商信息。

protocol

Object

协议信息。

表 22 token.user.OS-FEDERATION.groups

参数

参数类型

描述

id

String

用户组ID。

name

String

用户组名称。

表 23 token.user.OS-FEDERATION.identity_provider

参数

参数类型

描述

id

String

身份提供商ID。

表 24 token.user.OS-FEDERATION.protocol

参数

参数类型

描述

id

String

协议ID。

请求示例

POST https://iam.myhuaweicloud.com/v3/auth/tokens
{
    "auth": {
        "identity": {
            "methods": [
                "token"
            ],
            "token": {
                "id": "MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB..."
            }
        },
        "scope": {
            "domain": {
                "id": "063bb260a480cecc0f36c0086bb6c..."
            }
        }
    }
}

响应示例

状态码为 201 时:

创建成功。

响应Header参数:
X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
响应Body参数:
{
    "token": {
        "expires_at": "2020-02-13T14:21:34.042000Z",
        "methods": [
            "token"
        ],
        "catalog": [
            {
                "endpoints": [
                    {
                        "id": "d2983f677ce14f1e81cbb6a9345a107a",
                        "interface": "public",
                        "region": "*",
                        "region_id": "*",
                        "url": "https://iam.cn-north-1.myhuaweicloud.com/v3"
                    }
                ],
                "id": "fd631b3426cb40f0919091d5861d8fea",
                "name": "keystone",
                "type": "identity"
            }
        ],
        "domain": {
            "id": "06aa2260a480cecc0f36c0086bb6cfe0",
            "name": "IAMDomain"
        },
        "roles": [
            {
                "id": "0",
                "name": "te_admin"
            },
            {
                "id": "0",
                "name": "secu_admin"
            }
        ],
        "issued_at": "2020-02-12T14:21:34.042000Z",
        "user": {
            "OS-FEDERATION": {
                "groups": [
                    {
                        "id": "06aa2260bb00cecc3f3ac0084a74038f",
                        "name": "admin"
                    }
                ],
                "identity_provider": {
                    "id": "ACME"
                },
                "protocol": {
                    "id": "saml"
                }
            },
            "domain": {
                "id": "06aa2260a480cecc0f36c0086bb6cfe0",
                "name": "IAMDomain"
            },
            "id": "LdQTDSC7zmJVIic3yaCbLBXDxPAdDxLg",
            "name": "FederationUser",
            "password_expires_at": ""
        }
    }
}

返回值

返回值

描述

201

创建成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

404

未找到相应的资源。

500

内部服务错误。

503

服务不可用。

错误码