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.
Central de ajuda/ Identity and Access Management/ Referência de API/ API/ Gerenciamento de autenticação de identidade federada/ Token/ Obtenção de um token sem escopo com um token de ID do OpenID Connect
Atualizado em 2024-08-31 GMT+08:00

Obtenção de um token sem escopo com um token de ID do OpenID Connect

Função

Essa API é usada para obter um token sem escopo usando um token do ID do OpenID Connect.

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/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth

Tabela 1 Parâmetros de URI

Parâmetro

Obrigatório

Tipo

Descrição

idp_id

Sim

String

Nome do provedor de identidade.

protocol_id

Sim

String

ID do protocolo.

Parâmetros de solicitação

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

Parâmetro

Obrigatório

Tipo

Descrição

Authorization

Sim

String

Token de ID do provedor de identidade. O formato é Bearer {ID Token}.

Parâmetros de resposta

Código de status: 201

Tabela 3 Parâmetros no cabeçalho da resposta

Parâmetro

Tipo

Descrição

X-Subject-Token

String

Token assinado.

Tabela 4 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

token

object

Detalhes sobre o token obtido.

Tabela 5 UnscopedTokenInfo

Parâmetro

Tipo

Descrição

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.

methods

Array of strings

Método de obtenção de token. O valor padrão para autenticação federada é mapped.

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.

user

object

Detalhes do usuário.

roles

Array of objects

Detalhes da função ou política.

catalog

Array of objects

Detalhes do catálogo.

Tabela 6 FederationUserBody

Parâmetro

Tipo

Descrição

OS-FEDERATION

object

Detalhes do usuário federado.

domain

object

Detalhes da conta.

id

String

ID do usuário.

name

String

Nome de usuário.

Tabela 7 OSFederationInfo

Parâmetro

Tipo

Descrição

identity_provider

object

Detalhes do provedor de identidade.

protocol

object

Detalhes do protocolo.

groups

Array of objects

Detalhes do grupo de usuários.

Tabela 8 IdpIdInfo

Parâmetro

Tipo

Descrição

id

String

ID do provedor de identidade.

Tabela 9 ProtocolIdInfo

Parâmetro

Tipo

Descrição

id

String

ID do protocolo.

Tabela 10 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 11 DomainInfo

Parâmetro

Tipo

Descrição

id

String

ID da conta.

name

String

Nome da conta.

Tabela 12 token.roles

Parâmetro

Tipo

Descrição

id

String

ID de permissão.

name

String

Nome de permissão.

Tabela 13 token.catalog

Parâmetro

Tipo

Descrição

id

String

ID do ponto de extremidade.

interface

String

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

region

String

Região à qual o ponto de extremidade pertence.

region_id

String

ID da região.

url

String

URL do ponto de extremidade.

Exemplo de solicitação

Solicitação para obter um token sem escopo com um token de ID do OpenID Connect

POST https://{address}/v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth

Exemplo de resposta

Código de status: 201

O token é obtido com sucesso.

{ 
  "token" : { 
    "expires_at" : "2018-03-13T03:00:01.168000Z", 
    "methods" : [ "mapped" ], 
    "issued_at" : "2018-03-12T03:00:01.168000Z", 
    "user" : { 
      "OS-FEDERATION" : { 
        "identity_provider" : { 
          "id" : "idptest" 
        }, 
        "protocol" : { 
          "id" : "oidc" 
        }, 
        "groups" : [ { 
          "name" : "admin", 
          "id" : "45a8c8f..." 
        } ] 
      }, 
      "domain" : { 
        "id" : "063bb260a480...", 
        "name" : "IAMDomain" 
      }, 
      "name" : "FederationUser", 
      "id" : "suvmgvUZc4PaCOEc..." 
    } 
  } 
}

Código de status: 400

Parâmetros inválidos.

{ 
  "error" : { 
    "code" : 400, 
    "message" : "Request parameter 'idp id' is invalid.", 
    "title" : "Bad Request" 
  } 
}

Código de status: 401

Falha na autenticação.

{ 
  "error" : { 
    "code" : 401, 
    "message" : "The request you have made requires authentication.", 
    "title" : "Unauthorized" 
  } 
}

Código de status: 403

Acesso negado.

{ 
  "error" : { 
    "code" : 403, 
    "message" : "You are not authorized to perform the requested action.", 
    "title" : "Forbidden" 
  } 
}

Código de status: 404

O servidor não conseguiu encontrar a página solicitada.

{ 
  "error" : { 
    "code" : 404, 
    "message" : "Could not find %(target)s: %(target_id)s.", 
    "title" : "Not Found" 
  } 
}

Código de status: 500

Erro do sistema interno.

{ 
  "error" : { 
    "code" : 500, 
    "message" : "An unexpected error prevented the server from fulfilling your request.", 
    "title" : "Internal Server Error" 
  } 
}

Códigos de status

Código de status

Descrição

201

O token é obtido com sucesso.

400

Parâmetros inválidos.

401

Falha na autenticação.

403

Acesso negado.

404

O servidor não conseguiu encontrar a página solicitada.

500

Erro do sistema interno.

Códigos de erro

Para obter detalhes, consulte Códigos de erro.