O componente de autenticação JWT autentica e autoriza solicitações com base em JSON Web Tokens (JWT). Ele extrai os JWTs dos parâmetros de URL, cabeçalhos ou cookies da solicitação HTTP e verifica se o token tem autorização para acessar o recurso.
Categoria do recurso
Autenticação e autorização
Descrição dos campos
ComponentConfig
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
Config |
Sim |
- |
Configuração de autenticação JWT. |
JwtSpec
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
JwkConfig |
Sim |
- |
Configuração do JWK. |
|
|
JwtSources |
Sim |
- |
Método de extração do JWT. Apenas uma source de extração é suportada. |
JwkConfigSpec
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
Type |
Não |
- |
Tipo de configuração do JWK. |
|
|
RemoteJwks |
Não |
- |
Configuração remota do JWKS. |
JwkConfigType
|
Valor |
Descrição |
|
Remote |
Obtém o JWK de um endpoint remoto. |
RemoteJwksSpec
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
Url |
Não |
- |
Endereço remoto do JWK. |
URI
Nome de domínio totalmente qualificado (FQDN) que inclui protocolo, nome do host e caminho. A instância do Application Load Balancer (ALB) acessa esse endereço pelo endereço IP do vSwitch correspondente. Certifique-se de que o endereço de destino esteja acessível. Se o destino estiver na Internet, configure um SNAT público para o vSwitch onde a instância do ALB está localizada.
Exemplo
http://example.com/jwt/pubkeys
A resposta remota do JWK deve estar em conformidade com a RFC 7518. Exemplo de resposta:
{
"keys": [
{
"e": "Exponent of the public key, such as AQAB",
"kid": "Key ID",
"kty": "Family of the encryption algorithm, such as RSA. Required and case-sensitive",
"alg": "Specific encryption algorithm used, such as RS256. Required and case-sensitive",
"use": "Intended use of the key, such as sig for signing",
"n": "Modulus of the public key"
},
{
"kty": "oct",
"k": "yMsZ3vkBL4fEwJrNOPW6RztnYpdQ0UlVTum7H1qAehD",
"alg": "HS256"
}
]
}
JwtSourcesSpec
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
Headers |
Não |
- |
Extrai o JWT do cabeçalho da solicitação HTTP. |
|
|
Params |
String[] |
Não |
- |
Extrai o JWT do parâmetro de URL. |
|
Cookies |
String[] |
Não |
- |
Extrai o JWT do cookie. |
JwtHeaderSpec
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
Name |
String |
Sim |
Authorization |
Nome do campo no cabeçalho da solicitação. |
|
ValuePrefix |
String |
Não |
Bearer |
Prefixo do valor correspondente no cabeçalho. O sistema remove esse prefixo antes de extrair o token. |
Códigos de erro
|
Código de status HTTP |
Mensagem de erro |
Descrição |
|
401 |
Jwt is missing |
A solicitação não forneceu um JWT. |
|
401 |
Jwks remote fetch is failed |
A solicitação ao endereço remoto do JWKS atingiu o tempo limite. |
|
401 |
Jwt verification fails |
Falha na verificação do payload do JWT. |
|
401 |
Jwt is expired |
O token fornecido na solicitação expirou. |
|
401 |
Jwt signature is an invalid Base64url encoded |
Não foi possível decodificar o token fornecido na solicitação em Base64. |