Modelo de integração OAuth2 com a Digibee
Entenda como implementar um modelo de integração baseado em OAuth2 para autenticar e autorizar conexões de forma segura e eficiente.
Este documento apresenta um modelo de implementação de fluxo OAuth2 para autenticação e autorização em integrações realizadas na Digibee Integration Platform. O objetivo é garantir o acesso seguro a APIs protegidas, utilizando tokens de acesso e refresh tokens quando aplicável.
Você aprenderá o padrão de implementação do fluxo de autenticação OAuth2 na Digibee, incluindo:
Etapas de geração de credenciais
Obtenção do token
Renovação (refresh) do token
Remoção de credenciais
Arquitetura
Visão geral
Diagrama:
Pipeline:

Descrição
Os pipelines implementam um fluxo completo de autenticação OAuth2, permitindo:
Criação de credenciais
Obtenção do token de acesso
Renovação (refresh) do token
Exclusão de credenciais
O pipeline responsável pode ser acionado tanto para geração inicial do token quanto para renovação ou gestão das credenciais, de acordo com os parâmetros de entrada.
Esse mecanismo pode ser reutilizado por outros pipelines de negócio por meio de chamadas de evento, API ou encapsulamento em cápsulas.
Fluxo detalhado
Geração de credenciais
Cria um par
clientId
eclientSecret
para futuras autenticações.
Obtenção de token
Gera o token de acesso (
access_token
) e orefresh_token
.
Renovação de token
Renova o token de acesso utilizando o
refresh_token
antes da expiração.
Remoção de credenciais
Remove as credenciais (
clientId
) do sistema de autenticação.
Payloads
1. Geração de credenciais
Request:
{
"partnerId": "TestSistema",
"executionType": "create",
"apikey": "..."
}
Response:
{
"clientId": "clientId",
"clientSecret": "clientSecret"
}
2. Obtenção do token
Request:
{
"password": "clientSecret",
"grant_type": "client_credentials",
"username": "clientId"
}
Response:
{
"token_type": "Bearer",
"expires_in": 3600000,
"ext_expires_in": 3600000,
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..."
}
3. Renovação (refresh) do token
Request:
{
"grant_type": "refresh_token",
"refresh_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..."
}
Response:
{
"token_type": "Bearer",
"expires_in": 3600000,
"ext_expires_in": 3600000,
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..."
}
4. Exclusão de credenciais
Request:
{
"clientId": "clientId",
"executionType": "delete",
"apikey": "..."
}
Response:
{
"code": 200,
"message": "Success when deleting client credentials for the clientId: clientId"
}
Atualizado
Isto foi útil?