Languages

LOGAR COM: Email

PrePago - URA

Manual Técnico - Autenticação  Back to top

Manual Técnico - Autenticação

Autenticação OAuth para consumo de API’s

Introdução Plataforma RendimentoPay

Objetivo

Proporcionar, ao leitor, um entendimento claro do padrão utilizado pela Plataforma RendimentoPay.

Glossário

  • REST: sigla para Representational State Transfer, é um padrão de arquitetura que define um conjunto de regras para troca de mensagem entre Serviços Web que utilizam o protocolo HTTP;
  • JSON: sigla para Javascript Object Notation, é um formato simples para troca de dados, que define um padrão em texto auto descritivo para a transferência de informações;
  • OAuth: protocolo que permite aos usuários ter acesso limitado a recursos de uma api sem precisar expor suas credenciais;
  • RSA: criptografia assimétrica, dispondo de chave pública e privada, para transmissão de forma segura dos dados sensíveis;
  • Access_token: token gerado que permite a utilização dos recursos da api.

Características da solução

A Plataforma disponibiliza para integração de parceiros e clientes, serviços web desenvolvidos em padrão REST, que possibilita a interoperabilidade entre aplicações, independente da tecnologia utilizada para sua confecção.

As mensagens trocadas no consumo destes serviços serão em formato JSON e as operações definidas de acordo com os métodos HTTP:


Segurança

Visando garantir toda segurança necessária, para habilitar-se ao consumo dos serviços oferecidos pela Plataforma RendimentoPay, é necessário anteriormente autenticar a aplicação cliente utilizando o fluxo baseado no padrão OAuth, descrito neste documento.

Ao enviar dados sensíveis, deve-se criptografá-los em RSA(tamanho da chave 2048 bits) utilizando a chave pública obtida nos passos que serão apresentados posteriormente.



API para Autenticação

Objetivo

Proporcionar ao leitor um entendimento claro do processo de obtenção de access token, onde é utilizado o padrão oAuth, para consumo das API’s Rendimento Pay.


Obter Credenciais

Fluxo - Obtenção de client ID e client secret

Antes de iniciar o processo de autenticação, o cliente precisará solicitar a Rendimento Pay o client ID e client secret que serão utilizados na autenticação, dados imprescindíveis para execução do fluxo.


Serviços de integração - Fluxo de autenticação OAuth

Diagrama de sequência - Processo de autenticação OAuth



Authorization

No passo 2 do fluxo de autenticação deve ser enviado um header com nome "Authorization".Esse header tem como valor a palavra BASIC seguida por um encode base64 composto pela informação : (clientId : clientSecret) fornecidos pela RendimentoPay

Exemplo: Basic YzA2MWJjYTYtZjNmMi0zMzVjLWI5NWYtNDdkNTcyOWFkOTg5OmIyZWMwNzgyLWNjY2UtMzY0OS05MTFiLTBiM2Q0N2U1Yzk0Mg==


Controle de access_token

Recomendamos que o fluxo de autenticacao seja iniciado após o retorno (http 401) da execução de qualquer api da plataforma rendimentoPay e respeite o tempo de expiração informado no access token que atualmente é de 86400 segundos(1 dia) para que ocorra uma nova solicitação de autenticação.


Obter chave pública

Método para obtenção da chave pública.

Obter chave pública
GET/AplicacaoCliente/{client_id}/Chave

Example URI

GET https:// apisandbox.agillitas.com.br/hom/AplicacaoCliente/client_id/Chave
URI Parameters
HideShow
client_id
string (required) 

Informar o client id fornecido pela RendimentoPay.

Request
HideShow
Headers
client_id: Informar o client id recebido da RendimentoPay.
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "conteudo": {
    "$id": "1",
    "clienteId": "d3da6cae-df12-3b97-b780-756219b9ed34",
    "chave": "-----BEGIN PUBLIC KEY-----\r\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzJTRLm9SzNdH+27Cmb0W\r\nakD9mwn537yRxYBH8C6nqCmb7tJ2WRKozs/vvXk5t/qTCxxamt/HhZyG7r7dEvEJ\r\nddF5viVdXkToodiq5gErUMck1XXil4Z4/Qlaxgt0vwjwg4wYAtO0X30aBUqtVOkA\r\n7gyxMKKPAcF13PMiqqWg7M9doEPLPteEAOnRZhkAYTk8m9MNSVe7KBOs5FGuDxiH\r\nv3r8/qKBF6HK8Daw8x6gFKv2Wi+tFR6RZ/81AkYIKeEi1IGHLD3Y2yLZa3tmc6Ip\r\nmMtPi6tGIKGrdxbsYi9SinYFSxK8PPoavhixGUKxSYNDQBL89vZwHKICtehOiME1\r\nnwIDAQAB\r\n-----END PUBLIC KEY-----\r\n"
  },
  "erros": [],
  "alertas": [],
  "sucesso": true
}

Autenticar

Método para obtenção do access token.

Autenticar
POST/oauth/access-token

IMPORTANTE: No campo password, a senha de autenticação, deve ser criptografada utilizando o algoritmo RSA (tamanho da chave 2048 bits) com base na chave pública obtida através da API descrita no item deste manual.

Para o bloco RSA que não tiver o seu tamanho completo, este deve ser completado com bytes 0.

Example URI

POST https://apisandbox.agillitas.com.br/hom/oauth/access-token
Request  Obter access token
HideShow
Headers
Content-Type: application/json
Authorization: Basic ZDNkYTZjYWUtZGYxMi0zYjk3LWI3ODAtNzU2MjE5YjllZDM0OmQwMWRiOTc4LWVmMTctMzExNC1iZjcyLWZlYmI1Yjk2MzI4ZA==
Body
{
  "grant_type": "password",
  "username": "nome.hom",
  "password": "BRecKQfPFUCrn71LdqENzS12JjHfoHyI/UJnYquQKbCtnH24uhxKaTqLG6s+B8xoa71OaHxhqI0H8rZEG/if2Crw+gavTNSQ3YxSVkIFoSLPNs6GztgGBw+IsSoiH5SRHEo44UBuKQ4B2OdDNGz9juFsWfhY0kwY8G+LgJCTV0/RhpRKeH2CehOpv2UYL58V4e6C3uCBnP6eELnKho1RSURk0bqHsH2SW2EPi28t9grhHfOrVVhs963sSk0u169eOci632Uql6WhjqpgG4SLmI9A+2yOAX5uB17iXeMSCorZEAO8kEpq4QfIOfYRXBBJ+oAW7d+yaMyVqe80mThVbg=="
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "access_token": "e473d0ef-5b7d-3c1c-a691-6938ea7a31d1",
  "refresh_token": "33c6cc2c-eae1-3a00-b676-237110aa0955",
  "token_type": "access_token",
  "expires_in": 86400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "result": "failure",
  "errors": [
    {
      "type": "INVALID",
      "message": "It was not possible to validate user's credentials"
    }
  ],
  "status": 401
}

Generated by aglio on 06 Oct 2022

Spanish