Verifique JWTs usando um Application Load Balancer - ELB

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:

  1. Registre seu serviço com um IdP, que emite um ID do cliente e um segredo do cliente.

  2. 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.

  3. 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.

  4. Inclua o JWT em um cabeçalho de solicitação e encaminhe-o para o Application Load Balancer em cada solicitação.

Para configurar a verificação do JWT usando o console

  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em Load Balancing (Balanceamento de carga), escolha Load balancers (Balanceadores de carga).

  3. Selecione seu Application Load Balancer e escolha a guia Listeners.

  4. Selecione um ouvinte HTTPS e escolha Gerenciar regras.

  5. Escolha Adicionar regra.

  6. (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.

  7. Em Condições, defina de 1 a 5 valores de condição

  8. (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.

  9. Em Ações, Ação de pré-roteamento, escolha Validar token.

    1. 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.

    2. Para Emissor, insira o valor esperado da reivindicação iss em seus tokens JWT.

    3. (Opcional) Para validar reivindicações adicionais, escolha Reivindicação adicional.

      1. Em Nome da reivindicação, insira o nome da reivindicação a ser validada.

      2. Em Formato, escolha como os valores da declaração devem ser interpretados:

        1. Cadeia de caracteres única: a declaração deve corresponder exatamente a um valor especificado.

        2. Matriz de cadeias de caracteres: a declaração deve corresponder a um dos valores em uma matriz.

        3. Valores separados por espaço: a declaração contém valores separados por espaço que devem incluir os valores especificados.

      3. Em Valores, insira os valores esperados para a declaração.

      4. Repita o procedimento para reivindicações adicionais (máximo de 10 reivindicações).

  10. 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.

  11. Configure a ação principal conforme necessário

  12. 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.

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 10 \ --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.