OAuth 2

OAuth é um padrão de autenticação amplamente utilizado, que permite que sua aplicação não manipule diretamente nomes de usuários e senhas.

Empresas como Google, Facebook e Twitter já utilizam esse padrão para prover o acesso à seus recursos de forma segura à aplicações de terceiros.

Abaixo você confere os passos necessários para conclusão do processo de integração OAuth1:

1 Cadastro da App

No cadastro da APP estão alguma informações essenciais para utilização do OAuth1.

Logo no cadastro, será solicitado o preenchimento do campo Redirect URL. É por esse campo que o processo fará a a devolução do Grant Code, que falaremos no tópico seguinte.

Se você ainda não sabe qual valor preencher para esse campo, pode deixá-lo vazio. Seu uso será melhor detalhado nos próximos passos.

Agora que sua aplicação foi criada, repare que na lista de APPs existem duas colunas chamadas CLIENT ID e CLIENT SECRET. Essas informações serão utilizadas a seguir.

2 Formas de obter um Access Token

Client Credentials Flow

É necessário que a APP esteja criada para que possamos ter acesso ao Client ID e ao Secret. Em seguida, é necessário fazer um POST no seguinte endpoint:

Endpoint => /oauth/access-token

O cabeçalho deve conter as seguites informações:

Header => Authorization : Basic client_id:client_secret

OBS.: Este client_id:client_secret deve ser uma string convertida em Base64, usando os dados da APP criada.

O exemplo do cabeçalho com o client_id e secret convertidos para base64, seria:

Authorization : Basic Y2xpZW50X2lkOmNsaWVudGVfc2VjcmV0

No corpo, devemos passar o “grant_type” no formato x-www-form-urlencoded:

"grant_type": "client_credentials"

Por fim, o seu Access Token será gerado e deverá aparecer como no exemplo abaixo:

{
  "access_token": "6c164a82-84a6-3bc4-8122-f777121a4f62",
  "token_type": "access_token",
  "expires_in": 3600
  }

Ao final, sua requisição será da seguinte forma:

  POST
    https://api.zurich.com.br/oauth/access-token
  
  HEADER
    Content-Type: application/json
    Authorization: Basic base64(client_id:client_secret)
  
  REQUEST BODY
  {
    "grant_type": "client_credentials"
    
  }
  
  RESPONSE BODY
  {
    // O access_token gerado deve ser armazenado para ser utilizado nas chamadas à API
    "access_token": "6c164a82-84a6-3bc4-8122-f777121a4f62",
    "token_type": "access_token",
    "expires_in": 3600
  }
  

3 Chamada à API

Agora que o Access Token foi obtido, sua aplicação pode finalmente fazer o apontamento para o endpoint de produção e, substituir a chave que foi gerada automaticamente para Sandbox.

Indefinido