Credenciais JWT
Visão Geral
Por estarem relacionados ao acesso a APIs, a identificação de um consumidor está atrelada a uma credencial. As credenciais são necessárias para autenticar os consumidores por meio de um mecanismo de autenticação. Portanto, se uma API é protegida por um mecanismo de autenticação, é necessário possuir um consumidor e credenciais correspondentes ao tipo de autenticação para acessá-la.
Basicamente, uma API protegida por autenticação JWT Authentication requer um token JWT. A credencial JWT no DHuO é composta por informações para validação do token JWT recebido na requisição. Uma vez configuradas no DHuO, as informações dessas credenciais são utilizadas para validação dos tokens JWT pelo API Gateway. O token JWT em si é gerado externamente e validado pelo API Gateway.
Para que a identificação do consumidor e validação da credencial funcionem, é necessário que o mecanismo de autenticação JWT Authentication esteja configurado na API. Para saber mais sobre como configurar JWT Authentication em uma API, acesse a seção JWT Authentication da lista de plugins do API Gateway DHuO e Kong.
Configuração
As credenciais são criadas no contexto do consumidor de APIs. A partir da home, acesse o ícone de configurações da Organização ⚙ menu > Consumidores
. Na página de consumidores, acesse a opção Credenciais
do consumidor desejado. Na página seguinte, acesse o menu > JWT
.
Para criar uma credencial, é necessário possuir um consumidor cadastrado. Para saber mais sobre consumidores de API, acesse a seção Consumidores de API da Administração do API Manager.
Um consumidor pode ter mais de uma credencial, porém apenas uma credencial por tipo de autenticação.
Permissões
Apenas usuários com papel de administrador da organização (Org Admin) ou operador de APIs (API Operator) podem gerenciar credenciais de consumo. Para saber mais, acesse a seção Papéis e permissões.
Parâmetros
Aqui estão os parâmetros para configuração de uma credencial JWT:
- Key: Obrigatório. Chave a ser usada na claim do token JWT. Caso não seja informado um valor, uma key será gerada automaticamente. A claim padrão é iss, mas pode ser customizada pelo provedor da API na configuração do plugin JWT Authentication. Durante o processo de autenticação é realizado a busca pela claim no token JWT e seu valor (a key) utilizado para identificar o consumidor.
- Algoritmo: Obrigatório. Algoritmo usado para verificar a assinatura do token.
- Secret: Secret usada para assinar o token JWT gerado pelo consumidor de API. Usada para verificar a assinatura de tokens gerados usando algoritmos simétricos como HS256, HS384 ou HS512. Se não informada, será gerado automaticamente.
- Public Key RSA: Chave pública (em formato PEM) usada para verificar a assinatura de tokens gerados usando algoritmos assimétricos como RS256, RS384, RS512, ES256, ES384, ES512. Obrigatório se escolhido algum algoritmo assimétrico.
Caso o consumidor seja criado em um API Gateway do tipo APISIX, os seguintes parâmetros adicionais estarão disponíveis para configuração de uma credencial JWT:
- Private Key RSA: Chave privada (em formato PEM) usada para criar e assinar tokens usando algoritmos assimétricos como RS256, RS384, RS512, ES256, ES384, ES512. Obrigatório se escolhido algum algoritmo assimétrico.
- Base64 Secret: Identifica se a secret usada para assinar o token JWT gerado pelo consumidor de API está codificada no formato base64.
- Expiração: Tempo de expiração do token, em segundos. Após criado, o token é válido até atingir seu tempo de expiração.
- Lifetime Grace: Define um período, em segundos, de margem de tolerância para validade de tokens, considerando a diferença de horário entre servidores de criação e validação do token JWT.
Não é possível alterar uma credencial após a criação. Caso seja necessário alterar uma credencial, é preciso removê-la e criar uma nova.
Ao excluir uma credencial, os acessos às APIs das aplicações que a utilizam deixarão de funcionar até que novas credenciais sejam criadas e as aplicações sejam atualizadas com os novos valores.