Obtendo credenciais

A autenticação na plataforma Unico IDCloud utiliza o protocolo OAuth2, no modelo Two-Legged OAuth (2LO).

  • É feita por meio de uma conta de serviço, vinculada à aplicação (não a um usuário).

  • A aplicação chama as APIs da Unico em nome da conta de serviço.

  • Cenário ideal para interações server-to-server.

Solicitação da Conta de Serviço

Para criar a conta de serviço, envie ao gerente de projetos da sua empresa:

  • Nome da conta de serviço que será criada (até 12 caracteres);

  • Nome, e-mail e celular do responsável pela conta de serviço.

    • O celular deve ser Brasileiro, Americano ou Mexicano.

Após o envio dos dados a conta de serviço será criada e você receberá um e-mail para gerar a chave privada (.PEM). A conta de serviço inclui:

  • Nome único da conta.

  • Tenant ID (identificador da empresa).

  • O payload base para montar o JWT

  • Chave privada (.PEM) - o navegador fará o download automaticamente ao final da geração da conta de serviço, que ficará disponível na pasta downloads do seu computador.

💡Verifique sua caixa de SPAM caso não encontre o e-mail para geração da conta de serviço.

Fluxo de Autenticação

Sua aplicação deve seguir 4 etapas:

  1. Criar o JWT (cabeçalho + payload + assinatura).

  2. Requisitar o token de acesso (access-token) na plataforma de autenticação.

  3. Tratar a resposta (armazenar e usar o access-token nas chamadas de API).

  4. Validade do token de acesso.

1. Criando o JWT

1.1 Estrutura

Um JWT possui 3 partes concatenadas por .:

1.2 Cabeçalho

Base64url:

1.3 Payload

Campo
Descrição

iss

Identificador da conta de serviço (Service Account). O padrão é: nome da conta + @ + Tenant ID + iam.acesso.io. (ex: "service_account_name@tenant_id.iam.acesso.io").

scope

Permissões solicitadas. Use "*" para todas.

aud

Sempre https://identityhomolog.acesso.io (⚠️ sem barra no final e sempre com HTTPS).

iat

Momento da emissão do JWT, em segundos (no padrão Unix Timestamp).

exp

Expiração do token em segundos (máx. +3600s em relação ao iat). Este valor não pode ser fixo e tem um tempo máximo de 1 hora após o momento de emissão do JWT.

Exemplo de cálculo:

1.4 Assinatura

  • Algoritmo: RS256 (RSA + SHA-256).

  • Entrada: {Header Base64url}.{Payload Base64url}.

  • Assinatura feita com a chave privada (.key.pem).

  • Resultado final:

A seguir está um exemplo de token JWT antes da codificação em Base64url:

2. Solicitando o Token de Acesso

Enviar o JWT assinado para a plataforma:

Endpoint POST:

  • UAT: https://identityhomolog.acesso.io/oauth2/token;

  • PROD: https://identity.acesso.io/oauth2/token.

Headers:

Body:

Nome
Descrição

grant_type

Utilize o seguinte texto, URL-encoded se necessário: urn:ietf:params:oauth:grant-type:jwt-bearer.

assertion

O JWT, incluindo a assinatura.

Exemplo de requisição:

3. Tratando a Resposta

Exemplo de resposta da plataforma:

  • Use o access_token em todas as chamadas às APIs da Unico.

  • Caso retorne erro, valide:

    • JWT formado corretamente.

    • Tempo definido no iat e exp;

    • Conta de serviço com permissões necessárias.

4. Validade do Token de Acesso

  • O tempo é informado em expires_in (segundos).

  • Padrão: 3600s (1 hora).

  • Renove o token quando faltar 10 minutos para expirar.

Exemplos:

  • ¹ De acordo com o RFC 4648 de codificação BaseN, o formato Base64url é similar ao formato Base64, com exceção do caracter = que deve ser omitido, e dos caracteres + e / que devem ser substituídospor - e _, respectivamente.

  • ² JSON Web Signature: https://tools.ietf.org/html/rfc7515.

Atualizado

Isto foi útil?