Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-08-31 GMT+08:00

Obtenção de um token com escopo

Função

Essa API é usada para obter um token com escopo por meio da autenticação de identidade federada.

A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade da região específica. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.

URI

POST /v3/auth/tokens

Parâmetros de solicitação

Tabela 1 Parâmetros no cabeçalho da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

Content-Type

Não

String

Preencha application/json;charset=utf8 nesse campo.

Tabela 2 Parâmetros no corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

auth

Sim

Object

Informações de autenticação.

Tabela 3 auth

Parâmetro

Obrigatório

Tipo

Descrição

identity

Sim

Object

Parâmetros de autenticação.

scope

Sim

Object

Escopo de aplicação do token. O valor pode ser project ou domain.

Tabela 4 auth.identity

Parâmetro

Obrigatório

Tipo

Descrição

methods

Sim

Array of strings

Método de autenticação. O valor deste campo é token.

token

Sim

Object

Informações de token sem escopo.

Tabela 5 auth.identity.token

Parâmetro

Obrigatório

Tipo

Descrição

id

Sim

String

ID de token sem escopo.

Tabela 6 auth.scope

Parâmetro

Obrigatório

Tipo

Descrição

domain

Não

Object

Se esse campo estiver definido como domain, o token poderá ser usado para acessar recursos em todos os projetos sob a conta de um ID ou nome especificado.

project

Não

Object

Se esse campo estiver definido como project, o token só poderá ser usado para acessar recursos no projeto de um ID ou nome especificado.

Tabela 7 auth.scope.domain

Parâmetro

Obrigatório

Tipo

Descrição

id

Não

String

ID da conta. O id ou o name deve ser especificado.

name

Não

String

Nome da conta. O id ou o name deve ser especificado.

Tabela 8 auth.scope.project

Parâmetro

Obrigatório

Tipo

Descrição

domain

Não

Object

Informações da conta. Este parâmetro é obrigatório se o parâmetro name for definido.

id

Não

String

ID do projeto. O id ou o name deve ser especificado.

name

Não

String

Nome do projeto. O id ou o name deve ser especificado.

Tabela 9 auth.scope.project.domain

Parâmetro

Obrigatório

Tipo

Descrição

id

Não

string

ID da conta. O id ou o name deve ser especificado.

name

Não

string

Nome da conta. O id ou o name deve ser especificado.

Parâmetros de resposta

Tabela 10 Parâmetros no cabeçalho da resposta

Parâmetro

Tipo

Descrição

X-Subject-Token

String

Token com escopo assinado.

Tabela 11 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

token

Object

Detalhes do token com escopo.

Tabela 12 token

Parâmetro

Tipo

Descrição

methods

Array of strings

Método para obter o token.

expires_at

String

Hora em que o token expirará.

NOTA:

O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601.

catalog

Array of objects

Informações do catálogo.

domain

Object

Informações da conta do usuário do IAM que solicita o token. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como domain.

project

Object

Informações do projeto do usuário do IAM. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como project.

roles

Array of objects

Informações de permissões do token.

user

Object

Informações sobre o usuário do IAM que solicita o token.

issued_at

String

Hora em que o token foi emitido.

NOTA:

O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601.

Tabela 13 token.catalog

Parâmetro

Tipo

Descrição

type

String

Tipo do serviço ao qual a API pertence.

id

String

ID do serviço.

name

String

Nome do serviço.

endpoints

Array of objects

Informações do ponto de extremidade.

Tabela 14 token.catalog.endpoints

Parâmetro

Tipo

Descrição

url

String

URL do ponto de extremidade.

region

String

Região à qual o ponto de extremidade pertence.

region_id

String

ID da região.

interface

String

Visibilidade da API. public indica que a API está disponível para acesso público.

id

String

ID do ponto de extremidade.

Tabela 15 token.domain

Parâmetro

Tipo

Descrição

name

String

Nome da conta.

id

String

ID da conta.

Tabela 16 token.project

Parâmetro

Tipo

Descrição

name

String

Nome do projeto.

id

String

ID do projeto.

domain

Object

Informações da conta do projeto.

Tabela 17 token.project.domain

Parâmetro

Tipo

Descrição

name

String

Nome da conta.

id

String

ID da conta.

Tabela 18 token.roles

Parâmetro

Tipo

Descrição

name

String

Nome de permissão.

id

String

ID de permissão. O valor padrão é 0, que não corresponde a nenhuma permissão.

Tabela 19 token.user

Parâmetro

Tipo

Descrição

domain

Object

Informações sobre a conta usada para criar o usuário do IAM.

OS-FEDERATION

Object

Informações de autenticação de identidade federada.

id

String

ID do usuário.

name

String

Nome de usuário.

password_expires_at

String

Tempo de expiração da senha. Se este parâmetro não for especificado, a senha nunca expirará.

NOTA:

O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601.

Tabela 20 token.user.domain

Parâmetro

Tipo

Descrição

name

String

Nome da conta.

id

String

ID da conta.

Tabela 21 token.user.OS-FEDERATION

Parâmetro

Tipo

Descrição

groups

Array of objects

Informações do grupo de usuários.

identity_provider

Object

Informações do provedor de identidade.

protocol

Object

Informações de protocolo.

Tabela 22 token.user.OS-FEDERATION.groups

Parâmetro

Tipo

Descrição

id

String

ID do grupo de usuários.

name

String

Nome do grupo de usuários.

Tabela 23 token.user.OS-FEDERATION.identity_provider

Parâmetro

Tipo

Descrição

id

String

ID do provedor de identidade.

Tabela 24 token.user.OS-FEDERATION.protocol

Parâmetro

Tipo

Descrição

id

String

ID do protocolo.

Exemplo de solicitação

Solicitação para obter um token com escopo

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

Exemplo de resposta

Código de status: 201

A solicitação foi bem-sucedida.

Parameters in the response header
X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
Parameters in the response body
{
    "token": {
        "expires_at": "2020-02-13T14:21:34.042000Z",
        "methods": [
            "token"
        ],
        "catalog": [
            {
                "endpoints": [
                    {
                        "id": "d2983f677ce14f1e81cbb6a9345a107a",
                        "interface": "public",
                        "region": "*",
                        "region_id": "*",
                        "url": "https://iam.ap-southeast-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": ""
        }
    }
}

Códigos de status

Código de status

Descrição

201

A solicitação foi bem-sucedida.

400

Parâmetros inválidos.

401

Falha na autenticação.

403

Acesso negado.

404

O recurso solicitado não pode ser encontrado.

500

Erro de servidor interno.

503

Serviço indisponível.

Códigos de erro

Nenhum