As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Verifique JWTs usando um Application Load Balancer
Você pode configurar um Application Load Balancer (ALB) para verificar os JSON Web Tokens (JWT) fornecidos pelos clientes para comunicações seguras (S2S) ou service-to-service (M2M). machine-to-machine O balanceador de carga pode verificar um JWT independentemente de como ele foi emitido e sem interação humana.
O ALB validará a assinatura do token e exigirá duas reivindicações obrigatórias: 'iss' (emissor) e 'exp' (expiração). Além disso, se estiver presente no token, o ALB também validará as reivindicações 'nbf' (não antes) e 'iat' (emitidas no momento). Você pode configurar até 10 solicitações adicionais para validação. Essas declarações oferecem suporte a três formatos:
-
Cadeia de caracteres única: um único valor de texto
-
Valores separados por espaço: vários valores separados por espaços (máximo de 10 valores)
-
Matriz de cadeia de caracteres: uma matriz de valores de texto (máximo de 10 valores)
Se o token for válido, o balanceador de carga encaminha a solicitação com o token no estado em que se encontra para o destino. Caso contrário, rejeitará a solicitação.
Prepare-se para usar a verificação JWT
Complete as seguintes tarefas:
-
Registre seu serviço com um IdP, que emite um ID do cliente e um segredo do cliente.
-
Faça uma chamada separada para o IdP para solicitar acesso a um serviço. O IdP responde com um token de acesso. Esse token geralmente é um JWT assinado pelo IdP.
-
Configure um endpoint JSON Web Key Sets (JWKS). O balanceador de carga adquire a chave pública publicada pelo IdP em um local conhecido que você configura.
-
Inclua o JWT em um cabeçalho de solicitação e encaminhe-o para o Application Load Balancer em cada solicitação. Nota: Somente o RS256 algoritmo é suportado
Limites de validação do JWT
Ao usar a validação do JWT com seu Application Load Balancer, o endpoint JWKS (JSON Web Key Set) deve atender aos seguintes requisitos:
-
Tamanho máximo de resposta: 150 KB
-
Número máximo de teclas: 10 teclas
Se a resposta do JWKS do seu provedor de identidade exceder qualquer um desses limites, o Application Load Balancer não encaminhará solicitações para seus destinos de back-end.
Se o endpoint JWKS do seu provedor de identidade exceder esses limites, considere implementar a validação do JWT no código do seu aplicativo ou usar um provedor de identidade com um conjunto de chaves menor.
Para configurar a verificação do JWT usando o console
-
Abra o console do Amazon EC2 em. https://console.aws.amazon.com/ec2/
-
No painel de navegação, em Load Balancing (Balanceamento de carga), escolha Load balancers (Balanceadores de carga).
-
Selecione seu Application Load Balancer e escolha a guia Listeners.
-
Selecione um ouvinte HTTPS e escolha Gerenciar regras.
-
Escolha Adicionar regra.
-
(Opcional) Para especificar um nome para sua regra, expanda Nome e tags e insira o nome. Para adicionar tags adicionais, escolha Adicionar tags adicionais e insira a chave e o valor da tag.
-
Em Condições, defina de 1 a 5 valores de condição
-
(Opcional) Para adicionar uma transformação, escolha Adicionar transformação, escolha o tipo de transformação e insira uma expressão regular correspondente e uma string de substituição.
-
Em Ações, Ação de pré-roteamento, escolha Validar token.
-
Para o endpoint JWKS, insira a URL do seu endpoint JSON Web Key Set. Esse endpoint deve estar acessível ao público e retornar as chaves públicas usadas para verificar as assinaturas do JWT.
-
Para Emissor, insira o valor esperado da reivindicação iss em seus tokens JWT.
-
(Opcional) Para validar reivindicações adicionais, escolha Reivindicação adicional.
Em Nome da reivindicação, insira o nome da reivindicação a ser validada.
Em Formato, escolha como os valores da declaração devem ser interpretados:
-
Cadeia de caracteres única: a declaração deve corresponder exatamente a um valor especificado.
-
Matriz de cadeias de caracteres: a declaração deve corresponder a um dos valores em uma matriz.
-
Valores separados por espaço: a declaração contém valores separados por espaço que devem incluir os valores especificados.
-
-
Em Valores, insira os valores esperados para a declaração.
-
Repita o procedimento para reivindicações adicionais (máximo de 10 reivindicações).
-
-
Em Ações, Ação de roteamento, selecione a ação principal (Encaminhar para, Redirecionar ou Retornar resposta fixa) que deve ser executada após a validação bem-sucedida do token.
-
Configure a ação principal conforme necessário
-
Escolha Salvar.
Para configurar a verificação do JWT usando a CLI
Use o comando create-rule a seguir para configurar a verificação do JWT.
Crie uma regra de ouvinte com uma ação para verificar JWTs. O ouvinte deve ser um ouvinte HTTPS.
nota
Ao configurar a validação do JWT, certifique-se de que a resposta do endpoint do JWKS não exceda 150 KB ou contenha mais de 10 chaves. Respostas que excedam esses limites impedirão o encaminhamento de solicitações para seus alvos.
aws elbv2 create-rule \ --listener-arnlistener-arn\ --priority10\ --conditions Field=path-pattern,Values="/login" \ --actions file://actions.json
Veja a seguir um exemplo do actions.json arquivo que especifica uma jwt-validation ação e uma forward ação. Siga a documentação fornecida pelo seu provedor de identidade para determinar os campos que são compatíveis
--actions '[ { "Type":"jwt-validation", "JwtValidationConfig":{ "JwksEndpoint":"https://issuer.example.com/.well-known/jwks.json", "Issuer":"https://issuer.com" }, "Order":1 }, { "Type":"forward", "TargetGroupArn":"target-group-arn", "Order":2 } ]'
O exemplo a seguir especifica uma declaração adicional a ser validada.
--actions '[ { "Type":"jwt-validation", "JwtValidationConfig":{ "JwksEndpoint":"https://issuer.example.com/.well-known/jwks.json", "Issuer":"https://issuer.com", "AdditionalClaims":[ { "Format":"string-array", "Name":"claim_name", "Values":["value1","value2"] } ], }, "Order":1 }, { "Type":"forward", "TargetGroupArn":"target-group-arn", "Order":2 } ]'
Para obter mais informações, consulte Regras do receptor para seu Application Load Balancer.