Verifica JWTs utilizzando un Application Load Balancer - ELB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Verifica JWTs utilizzando un Application Load Balancer

È possibile configurare un Application Load Balancer (ALB) per verificare i JSON Web Tokens (JWT) forniti dai client per comunicazioni sicure (S2S) o service-to-service (M2M). machine-to-machine Il load balancer può verificare un JWT indipendentemente da come è stato emesso e senza interazione umana.

ALB convaliderà la firma del token e richiederà due attestazioni obbligatorie: 'iss' (emittente) e 'exp' (scadenza). Inoltre, se presenti nel token, ALB convaliderà anche le attestazioni «nbf» (non precedenti) e «iat» (emesse al momento). Puoi configurare fino a 10 attestazioni aggiuntive per la convalida. Queste attestazioni supportano tre formati:

  • Stringa singola: un singolo valore di testo

  • Valori separati da spazi: valori multipli separati da spazi (massimo 10 valori)

  • String-array: una matrice di valori di testo (massimo 10 valori)

Se il token è valido, il load balancer inoltra la richiesta con il token così com'è alla destinazione. In caso contrario, la richiesta viene respinta.

Preparati a utilizzare la verifica JWT

Completa le seguenti operazioni:

  1. Registra il tuo servizio con un IdP, che emette un ID cliente e un segreto cliente.

  2. Effettua una chiamata separata all'IdP per richiedere l'accesso a un servizio. L'IdP risponde con un token di accesso. Questo token è in genere un JWT firmato dall'IdP.

  3. Configura un endpoint JSON Web Key Sets (JWKS). Il load balancer acquisisce la chiave pubblica pubblicata dall'IdP in una posizione nota configurata dall'utente.

  4. Includi il JWT nell'intestazione di una richiesta e inoltralo all'Application Load Balancer in ogni richiesta.

Per configurare la verifica JWT tramite console

  1. Apri la console della EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel pannello di navigazione, sotto Bilanciamento del carico, scegli Sistemi di bilanciamento del carico.

  3. Seleziona il tuo Application Load Balancer e scegli la scheda Listeners.

  4. Seleziona un listener HTTPS e scegli Gestisci regole.

  5. Scegli Aggiungi regola.

  6. (Facoltativo) Per specificare un nome per la regola, espandi Nome e tag e inserisci il nome. Per aggiungere altri tag, scegli Aggiungi tag aggiuntivi e inserisci la chiave del tag e il valore del tag.

  7. In Condizioni, definisci da 1 a 5 valori di condizione

  8. (Facoltativo) Per aggiungere una trasformazione, scegliete Aggiungi trasformazione, scegliete il tipo di trasformazione e immettete un'espressione regolare da abbinare e una stringa sostitutiva.

  9. Per Azioni, Azione di pre-routing, scegliete Convalida token.

    1. Per l'endpoint JWKS, inserisci l'URL del tuo endpoint JSON Web Key Set. Questo endpoint deve essere accessibile al pubblico e restituire le chiavi pubbliche utilizzate per verificare le firme JWT.

    2. Per Emittente, inserisci il valore previsto del reclamo iss nei tuoi token JWT.

    3. (Facoltativo) Per convalidare reclami aggiuntivi, scegli Reclamo aggiuntivo.

      1. Per Nome del reclamo, inserisci il nome del reclamo da convalidare.

      2. Per Formato, scegli come devono essere interpretati i valori dell'attestazione:

        1. Stringa singola: l'attestazione deve corrispondere esattamente a un valore specificato.

        2. Matrice di stringhe: l'affermazione deve corrispondere a uno dei valori di una matrice.

        3. Valori separati da spazi: l'attestazione contiene valori separati da spazi che devono includere i valori specificati.

      3. Per Valori, inserisci i valori previsti per l'attestazione.

      4. Ripetere l'operazione per ulteriori reclami (massimo 10 reclami).

  10. Per Azioni, Azione di routing, seleziona l'azione principale (Inoltra a, Reindirizza a o Restituisci risposta fissa) da eseguire dopo la corretta convalida del token.

  11. Configura l'azione principale in base alle esigenze

  12. Scegli Save (Salva).

Per configurare la verifica JWT tramite CLI

Usa il seguente comando create-rule per configurare la verifica JWT.

Crea una regola listener con un'azione da verificare. JWTs Il listener deve essere un listener HTTPS.

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 10 \ --conditions Field=path-pattern,Values="/login" \ --actions file://actions.json

Di seguito è riportato un esempio del actions.json file che specifica un'jwt-validationazione e un'azione. forward Seguire la documentazione fornita dal provider di identità per determinare quali campi sono supportati.

--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 } ]'

L'esempio seguente specifica un claim aggiuntivo da convalidare.

--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 } ]'

Per ulteriori informazioni, consulta Regole dell'ascoltatore per Application Load Balancer.