Sumário
- Coleção Postman para fluxos OAuth para facilitar testes com este software
- JWT fluxo do authorization code
- Fluxo de Client Credentials para geração do access token
Coleção Postman para fluxos OAuth para facilitar testes com este software
Baixe aqui esta coleção:
JWT fluxo do authorization code
1º Gerar code para a partir dele obter o token de acesso (no Postman)
2º GET “https://{$environment}/rfc-oauth/v1/grant-code”
- Aba Query Params:
- response_type = code
- client_id = (ID do APP criado)
- Observação: editar a APP para adicionar um campo extra chamado redirect_uri, por exemplo do meu IdP para obter o consentimento do usuário quando for o caso.
- Aba Authorization:
- Username = valor do client_id da APP
- Password = valor do secret da APP
- Clicar SEND:
- Resposta JSON com:
- “redirect_uri”: “{$environment}/?code=XYZ”
- Observações:
- code tem o tempo padrão de 1h
- token da Sensedia tem o tempo padrão de 24h
- ambos os timeouts são personalizáveis
3º POST “https://{environment}/rfc-oauth/v1/)access-token”
- Aba Body:
- Escolher x-www-form-urlencoded
- code = obtido da resposta do grant-code no param code
- grant_type = urn:ietf:params:oauth:grant-type:jwt-bearer
- Já posso usar a API desejada, basta passar o access-token para ela, por exemplo:
- No postman fazer requisição para a API desejada, mas antes na Aba Authorization escolher a opção “Bearer token” e colar o access-token gerado (base 64).
- É possível no POST para obter o access-token na aba Body adicionar no formato raw um JSON com campo extraInfo.
- Exemplo:
{
“extraInfo”: {}
}
No interceptor OAuth conferir se o grant type JWT está marcado.
4º Fluxo de refresh token
- Para trabalhar com o fluxo do refresh token, é necessário na etapa 3 mudar o
grant_typeparagrant_type = authorization_code. Com isso quando você for gerar oaccess_tokenvocê receberá também umrefresh_token, conforme pode ser visto na imagem abaixo:

- Com o
refresh_tokenem mãos, para atualizar oaccess_tokené necessário que você mude ogrant_typeparagrant_type = refresh_tokene passe uma variávelrefresh_tokenno body contendo orefresh_tokenrecebido, conforme pode ser visto abaixo:

- Com isso, fazendo o POST você receberá novo
refresh_token,access_token,expires_ine otype. - Ponto interessante e curioso de se comentar é que, mesmo no fluxo do refresh token, a Sensedia nos obriga a adicionar o Authorization Header, podendo se diferenciar do fluxo de refresh que pode ser costumeiro em outras aplicações, estão esteja atento a isso.
Fluxo de Client Credentials para geração do access token
1º Para utilizar o fluxo de Client Credentials primeiramente é necessário configurar o header de Authorization da requisição para o tipo Basic Auth. Para tal no campo Username coloque seu client_id e no Password seu client_secret. Vale a pena lembrar que o client_id e client_secret podem ser obtidos no seu APP na Sensedia.

2º Configure o tipo do Body da sua requisição para x-www-form-urlencoded e adicione a key grant_type com value client_credentials

3º Finalize o fluxo fazendo um POST para https://{$environment}/rfc-oauth/v1/access-token. Com isso você receberá seu access token. Lembre-se de trocar {$environment} pelo environment que estiver utilizando!

Observação: Note que no JSON retornado não há um campo refresh_token, isso acontece pois, diferente do fluxo de Authorization Code, no fluxo de Client Credentials caso o token expire é necessário solicitar um novo, não há como renovar um token já expirado.
