Todos os produtos
Search
Central de documentação

Identity as a Service:GenerateToken

Última atualização: Jun 28, 2026

Gera um token de acesso para um aplicativo em uma instância IDaaS especificada com base nas informações de credenciais.

Descrição da operação

Os seguintes métodos são suportados: Authorization Code, Device Flow, Refresh Token, Client Credentials e Password.

1. Authorization Code

Cenário: Este é o fluxo de código de autorização padrão do OAuth 2.0, adequado para aplicativos web com interação de frontend. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code={authorization_code}
&redirect_uri={redirect_uri}
&client_id={client_id}
&client_secret={client_secret}

Parâmetros:

● code: O código de autorização obtido no endpoint de autorização.

● redirect_uri: Deve ser o mesmo redirect_uri usado para obter o código de autorização.

1.1 Authorization Code para clientes públicos

Cenário: Este cenário é adequado para aplicativos que não podem armazenar um segredo com segurança, como aplicativos de página única (SPAs) ou aplicativos nativos. Neste fluxo, um client_secret não é necessário, mas você deve usar o mecanismo Proof Key for Code Exchange (PKCE). Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code={authorization_code}
&redirect_uri={redirect_uri}
&client_id={client_id}
&code_verifier={code_verifier}

Parâmetros:

● code_verifier: O verificador de código para o mecanismo PKCE. O cliente o gera ao iniciar uma solicitação de autorização e o usa para derivar o code_challenge. Ao trocar por um token, você deve enviar este valor. Ele deve ser idêntico ao valor usado para gerar o code_challenge.

Exemplo em Java para gerar um code_verifier e code_challenge:

String codeVerifier = Base64.getUrlEncoder().withoutPadding().encodeToString(new SecureRandom().generateSeed(43));
String codeChallenge = Base64.getUrlEncoder().withoutPadding().encodeToString(java.security.MessageDigest.getInstance("SHA-256").digest(codeVerifier.getBytes()));

2. Device Flow

Cenário: Este cenário é adequado para dispositivos com entrada restrita, como TVs e dispositivos IoT. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:device_code
&device_code={device_code}
&client_id={client_id}
&client_secret={client_secret}

Para obter o código do dispositivo, primeiro chame /oauth2/device/code para recuperar o device_code e o user_code.

2.1 Device Flow para clientes públicos

Cenário: Este cenário é usado quando o logon interativo não é conveniente e o cliente é um cliente público. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:device_code
&device_code={device_code}
&client_id={client_id}

3. Refresh Token

Cenário: Este cenário usa um refresh_token para obter um novo access_token. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&refresh_token={refresh_token}
&client_id={client_id}
&client_secret={client_secret}

4. Client Credentials

Cenário: Este cenário é para autenticação de servidor para servidor sem o envolvimento do usuário. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id={client_id}
&client_secret={client_secret}
&scope={scope}

5. Password

Cenário: Este cenário usa a autenticação tradicional de nome de usuário e senha. Use este método com cautela. Exemplo de chamada:

POST /v2/{instanceId}/{applicationId}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
&username={username}
&password={password}
&client_id={client_id}
&scope={scope}

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

Nenhuma autorização necessária para esta operação. Se você encontrar problemas com esta operação, entre em contato com o suporte técnico.

Sintaxe da solicitação

POST /v2/{instanceId}/{applicationId}/oauth2/token HTTP/1.1

Parâmetros de caminho

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

instanceId

string

Sim

O ID da instância.

idaas_ue2jvisn35ea5lmthk267xxxxx

applicationId

string

Sim

O ID do aplicativo.

app_mkv7rgt4d7i4u7zqtzev2mxxxx

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

client_id

string

Não

O ID do cliente.

app_mkv7rgt4d7i4u7zqtzev2mxxxx

client_secret

string

Não

O segredo do cliente. Este parâmetro é obrigatório quando o grant_type é client_credentials e o método client_secret_post é usado.

CSEHDcHcrUKHw1CuxkJEHPveWRXBGqVqRsxxxx

grant_type

string

Sim

O tipo de concessão de autorização. Os seguintes tipos são suportados:

  • client_credentials: Concessão de credenciais do cliente. Requer client_id e client_secret.

  • refresh_token: Concessão de token de atualização.

  • authorization_code: Concessão de código de autorização.

  • urn:ietf:params:oauth:grant-type:device_code: Fluxo de dispositivo.

  • password: Concessão de senha.

client_credentials

code

string

Não

O código de autorização. Este parâmetro é obrigatório quando o grant_type é authorization_code.

xxxx

username

string

Não

O nome de usuário. Este parâmetro é obrigatório para o tipo de concessão de senha.

uesrname_001

password

string

Não

A senha. Este parâmetro é obrigatório para o modo de senha.

xxxxxx

device_code

string

Não

O código do dispositivo. Este parâmetro é obrigatório quando o grant_type é urn:ietf:params:oauth:grant-type:device_code (fluxo de dispositivo).

xxxx

redirect_uri

string

Não

O URI de redirecionamento. Este parâmetro é obrigatório para o tipo de concessão de código de autorização. Ele deve corresponder ao URI de redirecionamento na solicitação para obter o código de autorização.

xxx

refresh_token

string

Não

O token de atualização. Este parâmetro é obrigatório quando o grant_type é refresh_token (concessão de token de atualização).

ATxxx

code_verifier

string

Não

O verificador de código. Este parâmetro é usado no tipo de concessão de código de autorização quando o PKCE está ativado.

xxx

exclusive_tag

string

Não

A tag obsoleta.

ATxxx

scope

string

Não

O escopo. Este parâmetro é opcional. Vários valores são suportados. Separe vários valores com espaços. Valores válidos:

  • openid

  • email

  • phone

  • profile

xxxx

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

A resposta.

token_type

string

O tipo de token. Valores válidos: Basic - Tipo básico. Bearer - Tipo portador.

Valores válidos:

  • Basic :

    Basic.

  • Bearer :

    Bearer.

Bearer

access_token

string

O token de acesso.

ATxxx

refresh_token

string

O token de atualização.

RTxxx

expires_in

integer

O período de validade do token em segundos.

1200

expires_at

integer

O tempo de expiração. O valor é um timestamp UNIX em segundos.

1653288641

id_token

string

O token de ID.

xxxxx

Exemplos

Resposta de sucesso

JSON formato

{
  "token_type": "Bearer",
  "access_token": "ATxxx",
  "refresh_token": "RTxxx",
  "expires_in": 1200,
  "expires_at": 1653288641,
  "id_token": "xxxxx"
}

Códigos de erro

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.