Skip to main content
POST
Troque uma chave de acesso por um token de portador
Requer nenhuma ação do IAM. O acesso é decidido pelas próprias regras do endpoint, e não por uma política — consulte a descrição acima.

Corpo

Uma solicitação de token OAuth 2.0. O codificado em formulário é o que a RFC 6749 especifica e o que as bibliotecas cliente enviam; JSON também é aceito.

As credenciais do cliente podem ser enviadas como HTTP Basic (Authorization: Basic base64(key_id:secret), que é o que a maioria das bibliotecas faz por padrão) ou como campos client_id e client_secret. Basic ganha se ambos estiverem presentes.

grant_type
enum<string>
obrigatório

client_credentials é o que se usa para uma conta de serviço: ele troca um par de chaves de acesso por um token, e não precisa de mais nada.

authorization_code e refresh_token pertencem ao login interativo que uma pessoa executa (basaltic login), onde o token nomeia um USER ao invés de uma conta de serviço. Eles são conduzidos pela CLI, não escritos à mão. Verifique o documento de metadados do servidor de autorização antes de ramificar neles — eles são anunciados somente onde um endpoint de autorização está configurado.

Opções disponíveis:
client_credentials,
authorization_code,
refresh_token
Exemplo:

"client_credentials"

client_id
string

O id da chave de acesso. Omita ao usar HTTP Basic.

Exemplo:

"BYCLD1a2b3c4d5e6f7"

client_secret
string<password>

A chave de acesso secreta. Omita ao usar HTTP Basic.

duration_seconds
integer

Tempo de vida do token solicitado. Uma extensão Basaltic, não um parâmetro OAuth — omita-o e você obtém o padrão. Valores fora do intervalo são fixados nele em vez de serem recusados, então pedir um dia produz o token mais longo permitido.

Intervalo obrigatório: 900 <= x <= 43200
Exemplo:

3600

code
string

O código de autorização do redirecionamento de consentimento. Uso único, e válido por cinco minutos. authorization_code concede apenas.

code_verifier
string

O verificador PKCE cujo SHA-256 foi enviado como code_challenge quando o fluxo começou (RFC 7636). Requerido com authorization_code: é o que prova que este é o cliente que iniciou o fluxo, uma vez que uma CLI não mantém nenhum segredo de cliente.

redirect_uri
string

O mesmo redirect_uri para o qual o código foi emitido — para a CLI, urn:ietf:wg:oauth:2.0:oob. Re-checado aqui, para que um código não possa ser resgatado sob um diferente (RFC 6749 4.1.3).

Exemplo:

"urn:ietf:wg:oauth:2.0:oob"

refresh_token
string

refresh_token concede apenas. Renova uma sessão de usuário sem outra viagem através do navegador. Rotação a cada uso — guarde o novo.

Resposta

Um token de portador

Resposta de token RFC 6749.

access_token
string
obrigatório

Enviar como Authorization: Bearer <token>. Opacos para os clientes: não analisem e não digitem nada na string de token.

Exemplo:

"eyJhbGciOiJFUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6Ii4uLiJ9..."

token_type
enum<string>
obrigatório
Opções disponíveis:
Bearer
Exemplo:

"Bearer"

expires_in
integer
obrigatório

Segundos até que o token expire.

Exemplo:

3600

refresh_token
string

Retornado apenas pelas concessões do usuário (authorization_code e refresh_token). Apresente-o ao refresh_token para renovar sem outra viagem de ida e volta do navegador; ele é ROTATADO em cada uso, então substitua a cópia armazenada toda vez.

Uma conta de serviço não recebe nenhuma. Ele já possui uma chave de acesso de longa duração e pode simplesmente executar client_credentials novamente, então um token de atualização seria uma segunda credencial para armazenar sem ganho.