Docs
...

OAuth 2.0

Payload JWT (JWT Claims)

Os claims do JWT são informações que o token declara, e que podem (e devem) ser usadas pelas aplicações que o recebem para identificar a entidade que está fazendo o acesso, os limites deste acesso, e seu escopo. A maioria dos claims estão presentes em todos os grant types, mas alguns são específicos. Veja abaixo a descrição de cada campo do payload (claims):

aud

A audiência (audience) refere-se à entidade para a qual o token JWT é emitido e deve ser interpretado. Esse campo serve para garantir que o token seja utilizado apenas pelo serviço para o qual foi emitido e não seja mal utilizado por uma entidade não autorizada, ou seja um aplicativo não autorizado.

Exemplo chamando Plataforma iugu

A aplicação de client_id com valor 7hCTqZU2nBGtQNahofruOQ, deseja ficar apto a consumir recursos da própria plataforma iugu como Verificar a Autorização dos recursos.

Para isto, a aplicação obtém um token via client_credentials. Neste processo, é enviado o audience da plataforma desejada, a plataforma iugu, conforme o exemplo em client_credentials.

Na iugu, o audience de um token é um array contendo os ids das aplicações composto pelo prefixo da plataforma seguido do identificador do cliente (client_id), conforme:

client_id = "2pWTsl4ZyO59S1Ft5eXTwV"
"Iugu.Platform.#{client_id}"

Obs: No caso da plataforma iugu, não é necessário colocar o client_id da plataforma, basta informar no audience “Iugu.Platform”.

Assim, caso o processo de emissão do token via client_credentials ocorra sem falhas, o token recebido conterá o audience necessário para fazer a chamada desejada na plataforma iugu, acrescido do “client_id” dessa aplicação, que é incluído no campo “aud” no processo de autorização, constando no token, junto ao audience da plataforma iugu, conforme:

Campo “aud” no token recebido:

"aud": [
    "Iugu.Platform", # audience da plataforma iugu
    "Iugu.Platform.7hCTqZU2nBGtQNahofruOQ", # audience da sua aplicação
    "7hCTqZU2nBGtQNahofruOQ" # id da sua aplicação
  ]

Com este token é possível realizar as chamadas na plataforma iugu para verificar a Autorização dos recursos.

Exemplo chamando outra Aplicação

Para uma chamada de sua aplicação para uma outra aplicação, ocorre o mesmo processo. Basta incluir no campo audience, o audience da aplicação na qual você deseja realizar a ação, lembrando que o audience é composto pelo prefixo da plataforma seguido do identificador do cliente (client_id).

Por exemplo, ao realizar uma chamada para criação de eventos na aplicação billing, inclua o client_id da aplicação billing na requisição:

audience="Iugu.Platform.#{client_id_do_billing}"

Assim, o token obtido poderá ser utilizado para fazer chamadas na aplicação billing.

client_id

Indica qual aplicação foi autorizada a solicitar o token de acesso. Esse campo ajuda a identificar a aplicação que fez a solicitação de autorização e, portanto, está autorizada a atuar em nome do usuário.

Se um usuário está utilizando um aplicativo cliente A (por exemplo, um aplicativo web) para acessar recursos em uma aplicação de servidor B (por exemplo, um serviço de recursos). Durante o fluxo OAuth, o usuário autoriza explicitamente o aplicativo cliente A a acessar seus recursos na aplicação de servidor B.

Durante a solicitação de autorização (no endpoint /authorize), o client_id do aplicativo cliente A seria incluído no campo “client_id”. Quando o token de acesso é emitido, o client_id da aplicação de servidor B seria incluído no campo “aud”.

sub

Entidade a qual o recurso se referencia (subject) e contém informaçōes, neste caso pode ser representado pelo usuário ou aplicação acompanhando o seu ID no Console da iugu, exemplos:

sub="app:2pWTsl4ZyO59S1Ft5eXTwV"
sub="user:55WvO7IL2ZtlgO61oMkNUR"

exp

Timestamp representando a data de expiração do token, no formato Unix time, segundos em Integer

iat

Timestamp representando a data em que o token foi emitido, no formato Unix time, segundos em Integer

iss

URI que identifica o emissor do token, neste caso a URI do servidor de Identity da iugu

name

Nome do usuário que fez a autenticação no servidor de Identity da iugu

email

Email do usuário que fez a autenticação no servidor de Identity da iugu