Autenticação

Para acessar a API do Firehose é necessário um token de autenticação que pode ser obtido a partir do processo de Login com as credenciais do usuário.

Essas credenciais precisam ser solicitadas ao time responsável pelo Firehose (DataStream). As seguintes pessoas podem conceder acesso: Júnior Rhis Lima, Silvio Ramalho, Janio Prates Otoni e Guilermo Pelizer Alves Pereira.

Após receber o usuário e senha pela primeira vez, será necessário realizar a troca da senha no respectivo portal do ambiente.

Caso a senha não tenha sido alterada, a requisição de login retornará o seguinte erro:

{
  "error": "401",
  "message": "400 Bad Request: invalid_grant: Account is not fully set up"
}

Acesso ao portal

Login

O token de acesso pode ser obtido de duas formas:

JWT Token

De posse dos dados de login já com a senha alterada o seguinte endpoint precisa ser chamado para obtenção do token de acesso.

curl --location '<HOST>/v1/auth/login' \
--header 'Content-Type: application/json' \
--data '{
  "password": "PASSWORD",
  "username": "USERNAME"
}'

A resposta terá o seguinte formato:

{
  "access_token": "ACCESS-TOKEN",
  "id_token": "ID-TOKEN",
  "expires_in": SECONDS,
  "refresh_expires_in": SECONDS,
  "refresh_token": "REFRESH-TOKEN",
  "token_type": "Bearer",
  "scope": "openid email profile"
}

O ACCESS-TOKEN possui um período de validade de 30 dias. Antes de seu vencimento, você tem a opção de renová-lo utilizando o REFRESH-TOKEN.

Atualização do Token JWT

Para atualizar o token do Firehose você pode utilizar o refresh-token recebido duirante a etapa de login:

curl --location '<HOST>/v1/auth/refresh-token' \
--header 'Content-Type: application/json' \
--data '{
  "refresh_token": "REFRESH-TOKEN"
}'

A resposta será a seguinte:

{
  "access_token": "ACCESS-TOKEN",
  "id_token": "ID-TOKEN",
  "expires_in": SECONDS,
  "refresh_expires_in": SECONDS,
  "refresh_token": "REFRESH-TOKEN",
  "token_type": "Bearer",
  "scope": "openid email profile"
}

Para esta requisição, é necessário utilizar um refresh-token que ainda esteja válido. Desta forma, ela não pode ser usada para renovar tokens já vencidos e a autenticação terá que ser refeita com o login.

Requisições não autenticadas ou com algum problema de autenticação como por exemplo access token vencido resultarão em status 401. Nesse caso é recomendado ter uma tratativa de erro para realizar uma chamada na API de login e repetir novamente a requisição com os novos tokens de acesso.

Exemplo de requisição que usa o token JWT

curl --location '<HOST>/v1/auth/inspect-token' \
--header 'Authorization: "ACCESS-TOKEN"'

Basic Token

Caso o usuário tenha a autenticação via basic auth habilitado (necessário solicitar aos administradores), é possível gerar um token basic com o usuário e senha a partir do encode em base64 desses valores. Exemplo:

echo '<USERNAME>:<PASSWORD>' | base64 -w 0

A string em base64 resultante pode ser utilizada de uma semelhante a autenticação com token JWT, mas com a diferença que necessita do prefixo Basic antes da string resultante do comando acima.

A autenticação via basic auth é útil em rotinas que são executadas com periodicidade e não conseguem gerenciar o processo de atualização do token JWT.

Exemplo de requisição que usa o token Basic

curl --location '<HOST>/v1/auth/inspect-token' \
--header 'Authorization: Basic <BASE64>'

Last updated