Obtenção de um token com um token OpenID Connect ID
Função
Essa API é usada para obter um token de autenticação de identidade federado usando um token OpenID Connect ID.
A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade específicos da região. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.
URI
POST /v3.0/OS-AUTH/id-token/tokens
Parâmetros de solicitação
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
X-Idp-Id |
Sim |
String |
ID do provedor de identidade. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
object |
Detalhes sobre o parâmetro de solicitação de solicitação auth. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
object |
Detalhes sobre um token de ID. |
|
Não |
object |
Escopo de permissão do token que você deseja obter. Um token unscoped será obtido se este parâmetro não for especificado. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
id |
Sim |
String |
Token de ID, construído pelo IdP corporativo para transportar as informações de identidade dos usuários federados. Para obter detalhes sobre como obter um token de ID, consulte a documentação do IdP corporativo. |
Parâmetros de resposta
Código de status: 201
Parâmetro |
Tipo |
Descrição |
---|---|---|
X-Subject-Token |
String |
Token assinado. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
object |
Detalhes sobre o token obtido. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
expires_at |
String |
Hora em que o token expirará. |
methods |
Array of strings |
Método para obter o token. Para usuários federados, o valor padrão deste parâmetro é mapped. |
issued_at |
String |
Hora em que o token foi emitido. |
object |
Detalhes do usuário. |
|
object |
Detalhes da conta. |
|
object |
Detalhes do projeto. |
|
Array of objects |
Detalhes da função ou política. |
|
Array of objects |
Detalhes do catálogo. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
object |
Detalhes do usuário federado. |
|
object |
Detalhes da conta. |
|
id |
String |
ID do usuário. |
name |
String |
Nome de usuário. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
object |
Detalhes do provedor de identidade. |
|
object |
Detalhes do protocolo. |
|
Array of objects |
Detalhes do grupo de usuários. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID do grupo de usuários. |
name |
String |
Nome do grupo de usuários. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID da conta. |
name |
String |
Nome da conta. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
object |
Detalhes da conta. |
|
id |
String |
ID do projeto. |
name |
String |
Nome do projeto. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID da conta. |
name |
String |
Nome da conta. |
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 com escopo para um projeto específico
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "project" : { "id" : "46419baef4324...", "name" : "ap-southeast-1" } } } }
- Solicitação para obter um token com escopo para um domínio específico
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "domain" : { "id" : "063bb260a480...", "name" : "IAMDomain" } } } }
- Pedido de obtenção de um token unscoped
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." } } }
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_msg" : "Request body is invalid.", "error_code" : "IAM.0011" }
Código de status: 401
Autenticação falhou.
{ "error_msg" : "The request you have made requires authentication.", "error_code" : "IAM.0001" }
Código de status: 403
Acesso negado.
{ "error_msg" : "Policy doesn't allow %(actions)s to be performed.", "error_code" : "IAM.0003" }
Código de status: 404
O recurso solicitado não pode ser encontrado.
{ "error_msg" : "Could not find %(target)s: %(target_id)s.", "error_code" : "IAM.0004" }
Código de status: 500
Erro interno do sistema.
{ "error_msg" : "An unexpected error prevented the server from fulfilling your request.", "error_code" : "IAM.0006" }
Códigos de status
Código de status |
Descrição |
---|---|
201 |
O token é obtido com sucesso. |
400 |
Parâmetros inválidos. |
401 |
Autenticação falhou. |
403 |
Acesso negado. |
404 |
O recurso solicitado não pode ser encontrado. |
500 |
Erro interno do sistema. |
Códigos de erro
Para obter detalhes, consulte Códigos de erro.