Come posso configurare un Application Load Balancer per autenticare gli utenti tramite un pool di utenti Amazon Cognito?

6 minuti di lettura
0

Desidero integrare un Application Load Balancer con un pool di utenti Amazon Cognito per l'autenticazione degli utenti.

Breve descrizione

Per gestire e autenticare gli utenti, puoi integrare un Application Load Balancer con un pool di utenti Amazon Cognito. Per configurare l'autenticazione degli utenti con un Application Load Balancer e un pool di utenti Amazon Cognito, completa i passaggi seguenti:

  1. Crea un Application Load Balancer.
  2. Ottieni il nome DNS del tuo Application Load Balancer.
  3. Crea e configura un pool di utenti Amazon Cognito.
  4. Configura l'Application Load Balancer.
  5. Prova la configurazione.

Risoluzione

Crea un Application Load Balancer

Nota: se hai già configurato un Application Load Balancer, passa alla sezione successiva.

Per creare un Application Load Balancer, completa i passaggi seguenti:

  1. Crea un Application Load Balancer con connessione Internet.
  2. Crea un listener HTTPS per l'Application Load Balancer.

Nota: solo i listener HTTPS supportano i tipi di azioni delle regole authenticate-cognito e authenticate-oidc.

Ottieni il nome DNS del tuo Application Load Balancer

Per ottenere il nome DNS del tuo Application Load Balancer, completa i passaggi seguenti:

  1. Apri la console Amazon Elastic Compute Cloud (Amazon EC2).
  2. Nel riquadro di navigazione, in Bilanciamento del carico, scegli Sistemi di bilanciamento del carico.
  3. Seleziona il tuo Application Load Balancer.
  4. Nella scheda Dettagli copia e salva il Nome DNS del tuo bilanciatore del carico. Usa questo nome DNS per testare l'accesso all'URL dell'endpoint dell'Application Load Balancer.

Crea e configura un pool di utenti Amazon Cognito

Per creare e configurare un pool di utenti Amazon Cognito, completa i passaggi seguenti:

  1. Crea un pool di utenti Amazon Cognito con un client dell'app. Quando configuri il client dell'app, seleziona il pulsante di opzione Genera segreto del client. Per maggiori informazioni, consulta Prepare to use Amazon Cognito.
    Nota: quando crei il pool di utenti, configura le impostazioni desiderate per la produzione. Dopo la creazione del pool di utenti, alcune impostazioni non possono essere modificate. Ad esempio, non puoi modificare gli attributi standard richiesti per la registrazione degli utenti.
  2. Apri la console Amazon Cognito.
  3. Nel riquadro di navigazione scegli Pool di utenti, quindi seleziona il tuo pool di utenti. Copia e salva l'ID pool di utenti. Usa questo ID per configurare l'Application Load Balancer per l'autenticazione degli utenti.
  4. Scegli la scheda Integrazione app del tuo pool di utenti, quindi aggiungi un dominio per il pool di utenti.
  5. Dalla scheda Integrazione app del tuo pool di utenti vai alla sezione Client di app e analisi dei dati. Quindi seleziona il client dell'app.
  6. Nella pagina del client dell'app, in Informazioni sul client dell'app, copia e salva l'ID client. Usa questo ID per configurare l'Application Load Balancer per l'autenticazione degli utenti.
  7. Nella sezione Interfaccia utente ospitata scegli Modifica.
  8. Scegli Aggiungi URL di callback e inserisci https://load-balancer-dns-name/oauth2/idpresponse.
    -oppure-
    Se hai utilizzato un record CNAME per mappare un dominio personalizzato al tuo Application Load Balancer, inserisci https://CNAME/oauth2/idpresponse.
    Nota: sostituisci load-balancer-dns-name con il nome DNS che hai copiato dalla console Amazon EC2. Il nome DNS non può contenere lettere maiuscole. Se usi un record CNAME, sostituisci CNAME con il tuo dominio personalizzato.
  9. Scegli Aggiungi flusso di disconnessione, quindi inserisci un URL a cui desideri reindirizzare gli utenti dopo la disconnessione. Per testare il reindirizzamento, puoi inserire qualsiasi URL valido, ad esempio https://example.com/.
  10. In Provider di identità seleziona la casella di controllo Pool di utenti Cognito.
  11. In Tipi di concessione OAuth 2.0 seleziona la casella di controllo Concessione del codice di autorizzazione. Seleziona eventuali tipi di concessione OAuth aggiuntivi necessari per il tuo caso d'uso.
  12. In Ambiti OpenID Connect seleziona la casella di controllo OpenID. L'ambito OpenID restituisce un token ID. Seleziona eventuali ambiti OpenID Connect (OIDC) aggiuntivi necessari per il tuo caso d'uso.
  13. Scegli Salva modifiche.

Per ulteriori informazioni consulta Updating user pool and app client configuration e Adding user pool sign-in through a third party.

Configura l'Application Load Balancer

Per configurare l'Application Load Balancer, completa i passaggi seguenti:

  1. Apri la console Amazon EC2.
  2. Nel riquadro di navigazione, in Bilanciamento del carico, scegli Sistemi di bilanciamento del carico.
  3. Seleziona il tuo Application Load Balancer.
  4. Nella scheda Ascoltatore e regole seleziona il protocollo HTTPS, quindi scegli Gestione delle regole e infine Modifica regole.
  5. Nella sezione Regole listener seleziona la regola predefinita che desideri aggiornare, poi scegli Azione e infine Modifica regole.
  6. Modifica la regola predefinita del listener HTTPS con le impostazioni seguenti:
    In Autenticazione seleziona Utilizzo di OpenID o Amazon Cognito.
    In Provider di identità scegli Amazon Cognito.
    In Pool di utenti seleziona il valore ID pool di utenti ricevuto dalla console Amazon Cognito.
    In Client dell'app seleziona il valore ID client ricevuto dalla console Amazon Cognito.
    Espandi Impostazioni di autenticazione avanzate.
    Assegna un nome al cookie della sessione.
    Imposta il Timeout della sessione. Il valore predefinito è 7 giorni.
    In Ambiti inserisci gli ambiti che hai configurato per il client dell'app del pool di utenti, separati da spazi. Puoi trovare gli ambiti nella configurazione OIDC del tuo pool di utenti. Ad esempio, se il valore scopes\ _supported nella configurazione è "openid", "email", "phone", "profile", inserisci openid email phone profile.
    In Operazione su richiesta non autenticata lascia il valore predefinito.
    (Facoltativo) Espandi Parametri extra richiesta - opzionale. Questa opzione consente di passare parametri aggiuntivi a un gestore dell'identità digitale, come Cognito, durante l'autenticazione. Ad esempio, se il pool di utenti Cognito ha Google come gestore dell'identità digitale, puoi aggiungere un parametro {Key: identity_provider, Value: Google}. Questo parametro ti consente di saltare l'interfaccia utente ospitata di Cognito e di raggiungere direttamente la pagina di accesso di Google. Per ulteriori informazioni sui parametri /oauth2/authorize consentiti, consulta Authorize endpoint.
  7. Continua a modificare la regola predefinita del listener HTTPS con le impostazioni seguenti:
    In Azioni di routing scegli Inoltra al gruppo di destinazione e quindi scegli uno o più gruppi target.
    (Facoltativo) In Target group stickiness (Persistenza del gruppo target) scegli Turn on target group stickiness (Attiva la persistenza del gruppo target) quando il tuo caso d'uso lo richiede.
  8. Configura le Impostazioni listener sicuro.
    In Policy di sicurezza scegli la policy di sicurezza appropriata per il tuo caso d'uso.
    In Certificato del server SSL/TLS predefinito scegli la fonte del certificato.
  9. Per applicare gli aggiornamenti alla regola predefinita del listener HTTPS, scegli Salva modifiche.

Prova la configurazione

Nel browser web inserisci uno degli URL seguenti:

  • https://load-balancer-dns-name/
  • https://CNAME/

Nota: sostituisci load-balancer-dns-name con il nome DNS che hai copiato dalla console Amazon EC2. Oppure sostituisci CNAME con il tuo dominio personalizzato.

Quando inserisci l'URL, verrai reindirizzato all’interfaccia utente web ospitata di Amazon Cognito per il tuo pool di utenti. Dopo che gli utenti avrnno effettuato l'accesso e il pool di utenti li avrà autenticati, gli utenti verranno reindirizzati alla destinazione.

Informazioni correlate

Guida introduttiva ad Application Load Balancer

Simplify login with Application Load Balancer built-in authentication

Listener rules for your Application Load Balancer

Flusso di autenticazione IdP del bacino d’utenza OIDC

AWS UFFICIALE
AWS UFFICIALEAggiornata 5 mesi fa