Pular para conteúdo

Autenticação e autorização


Servidores

  • Homologação: https://homolog-auth.targetinformacoes.com

  • Produção: https://auth.targetinformacoes.com


Obtendo o Access Token

  • O sistema de autorização e autenticação se basea no uso do protocolo oAuth2 e Bear token.

  • Antes de iniciar, é necessário ter em mãos o Client ID e o Client Secret; caso ainda não possua, solicite o mesmo.

  • A titulo de exemplo, vamos usar o Client ID 123 e o Client Secret 321

O primeiro passo a se fazer, é gerar a hash em base64 do client_id e do client_secret que irá representar a sua credential:

Exemplo de encode em python3
import base64


client_id = "123"
client_secret = "321"
credential = "{0}:{1}".format(client_id, client_secret)
credential = base64.b64encode(credential.encode("utf-8"))

Com a credential em mãos, é só fazer a requisição POST no endpoint /oauth/token/ para receber o token de autorização.

Não esqueça de informar o scope, para está API o scope é o pefin e ele dará direito de escrita e leitura nos endpoints

curl -X POST \
    -H "Authorization: Basic ${CREDENTIAL}" \
    -H "Cache-Control: no-cache" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    "https://homolog-auth.targetinformacoes.com/oauth/token/" \
    -d "grant_type=client_credentials&scope=pefin"

Exemplo de retorno com o Acess token gerado

{
    "access_token": "PaZDOD5UwzbGOFsQr34LQ7JUYOj3yK",
    "expires_in": 36000,
    "token_type": "Bearer",
    "scope": "pefin"
}

Descrição dos campos retornados

Campo Descrição
access_token Token de acesso. Este token é informado no cabeçalho da requisição e identifica a sua aplicação logada.
expires_in Por razão de segurança, o token tem um tempo de expiração que é definido em segundos, por padrão, o serviço de autenticação expira em 36000 segundos, podendo ser alterado ou em alguns casos retornar com um tempo diferente, portanto, não sete o tempo de expiração fixo no código, recupe o mesmo pelo retorno do servidor.
token_type Tipo do token utilizado nas requisições, utilizamos o Bearer token
scope Escopo que a aplicação tem permissão, não é necessariamente o scope que foi solicitado para o endpoint /oauth/token/ este é apenas o que a aplicação tem permissão de acesso daqueles que foi solicitado anteriormente