Wie richte ich einen Application Load Balancer ein, um Benutzer über einen Amazon-Cognito-Benutzerpool zu authentifizieren?
Ich möchte einen Application Load Balancer in einen Amazon-Cognito-Benutzerpool zur Benutzerauthentifizierung integrieren.
Kurzbeschreibung
Um Benutzer zu verwalten und zu authentifizieren, kannst du einen Application Load Balancer in einen Amazon-Cognito-Benutzerpool integrieren. Gehe wie folgt vor, um die Benutzerauthentifizierung mit einem Application Load Balancer und einem Amazon-Cognito-Benutzerpool einzurichten:
- Erstelle einen Application Load Balancer.
- Rufe den DNS-Namen deines Application Load Balancers ab.
- Erstelle und konfiguriere einen Amazon-Cognito-Benutzerpool.
- Konfiguriere den Application Load Balancer.
- Teste das Setup.
Lösung
Erstelle einen Application Load Balancer
Hinweis: Wenn du bereits einen Application Load Balancer konfiguriert hast, fahre mit dem nächsten Abschnitt fort.
Gehe wie folgt vor, um einen Application Load Balancer zu erstellen:
- Erstelle einen mit dem Internet verbundenen Application Load Balancer.
- Aktualisiere einen HTTPS-Listener für den Application Load Balancer.
Hinweis: Nur HTTPS-Listener unterstützen die Regelaktionstypen authenticate-cognito und authenticate-oidc.
Abrufe den DNS-Namen deines Application Load Balancers
Gehe wie folgt vor, um den DNS-Namen deines Application Load Balancers abzurufen:
- Öffne die Amazon Elastic Compute Cloud (Amazon EC2)-Konsole.
- Wähle im Navigationsbereich unter Lastausgleich die Option Load Balancer aus.
- Wähle deinen Application Load Balancer aus.
- Kopiere und speichere auf der Registerkarte Details den DNS-Namen des Load Balancers. Verwende diesen DNS-Namen, um den Zugriff auf die Endpunkt-URL des Application Load Balancers zu testen.
Erstellen und Konfigurieren des Amazon-Cognito-Benutzerpools
Gehe wie folgt vor, um einen Amazon-Cognito-Benutzerpool zu erstellen und zu konfigurieren:
- Erstelle einen Amazon-Cognito-Benutzerpool mit einem App-Client. Wenn du den App-Client konfigurierst, wähle das Optionsfeld Ein Client-Geheimnis generieren aus. Weitere Informationen findest du unter Die Verwendung von Amazon Cognito vorbereiten.
Hinweis: Wenn du den Benutzerpool erstellst, konfiguriere die Einstellungen, die du für die Produktion benötigst. Nachdem du den Benutzerpool erstellt hast, kannst du einige Benutzerpooleinstellungen nicht mehr ändern. Beispielsweise kannst du die erforderlichen Standardattribute für die Benutzerregistrierung nicht ändern. - Öffne die Amazon-Cognito-Konsole.
- Wähle im Navigationsbereich Benutzerpools und dann deinen Benutzerpool aus. Kopiere und speichere die Benutzerpool-ID. Verwende diese ID, um deinen Application Load Balancer für die Benutzerauthentifizierung zu konfigurieren.
- Wähle die Registerkarte App-Integration für deinen Benutzerpool und füge dann eine Domain für deinen Benutzerpool hinzu.
- Navigiere auf der Registerkarte App-Integration in Bezug auf den Benutzerpool zum Abschnitt App-Clients und -Analysen. Wähle deinen App-Client aus.
- Kopiere und speichere auf der App-Client-Seite unter App-Client-Informationen die Client-ID. Verwende diese ID, um deinen Application Load Balancer für die Benutzerauthentifizierung zu konfigurieren.
- Wähle im Bereich Gehostete Benutzeroberfläche die Option Bearbeiten aus.
- Wähle Callback-URL hinzufügen und gib dann https://load-balancer-dns-name/oauth2/idpresponse ein.
-oder-
Wenn du einen CNAME-Datensatz verwendet hast, um dem Application Load Balancer eine benutzerdefinierte Domain zuzuordnen, gib https://CNAME/oauth2/idpresponse ein.
Hinweis: Ersetze load-balancer-dns-name durch den DNS-Namen, den du von der Amazon EC2-Konsole kopiert hast. Der DNS-Name darf keine Großbuchstaben enthalten. Wenn du einen CNAME-Datensatz verwendest, ersetze CNAME durch deine benutzerdefinierte Domain. - Wähle Abmelde-URL hinzufügen aus und gib dann eine URL ein, zu der du deine Benutzer nach der Abmeldung weiterleiten möchtest. Um die Weiterleitung zu testen, kannst du eine beliebige gültige URL eingeben, z.B. https://example.com/.
- Wähle für Identitätsanbieter das Kontrollkästchen Cognito-Benutzerpool aus.
- Aktiviere unter OAuth 2.0-Erteilungstypen das Kontrollkästchen Autorisierungscode erteilen. Wähle alle zusätzlichen OAuth-Erteilungstypen aus, die du für den Anwendungsfall benötigst.
- Aktiviere unter OpenID-Connect-Bereiche das Kontrollkästchen OpenID. Der OpenID-Bereich gibt ein ID-Token zurück. Wähle alle zusätzlichen OpenID-Connect (OIDC)-Bereiche aus, die du für den Anwendungsfall benötigst.
- Wähle Änderungen speichern aus.
Weitere Informationen findest du unter Aktualisieren der Benutzerpool- und App-Client-Konfiguration und Hinzufügen der Benutzerpool-Anmeldung über einen Drittanbieter.
Konfiguriere deinen Application Load Balancers
Gehe wie folgt vor, um den Application Load Balancer zu konfigurieren:
- Öffne die Amazon-EC2-Konsole.
- Wähle im Navigationsbereich unter Lastausgleich die Option Load Balancer aus.
- Wähle deinen Application Load Balancer aus.
- Wähle auf der Registerkarte Listener und Regeln das HTTPS-Protokoll aus, wähle dann Verwalten von Regeln und dann Regeln bearbeiten aus.
- Wähle im Abschnitt Listener-Regeln die Standardregel aus, die du aktualisieren möchtest. Wähle dann Aktion und dann Regel bearbeiten aus.
- Bearbeite die HTTPS-Listener-Standardregel mit den folgenden Einstellungen:
Wähle als Authentifizierung OpenID oder Amazon Cognito verwenden aus.
Wähle als Identitätsanbieter Amazon Cognito aus.
Wähle als Benutzerpool die Benutzerpool-ID aus, die du von der Amazon-Cognito-Konsole erhalten hast.
Wähle als App-Client die Client-ID aus, die du von der Amazon-Cognito-Konsole erhalten hast.
Erweitere Erweiterte Authentifizierungseinstellungen.
Benenne das Sitzungscookie.
Stelle das Sitzungs-Zeitüberschreitung ein. Der Standardwert beträgt 7 Tage.
Gib als Umfang die Umfänge ein, die du für den Benutzerpool-App-Client konfiguriert hast, getrennt durch Leerzeichen. Du findest die Bereiche in der OIDC-Konfiguration des Benutzerpools. Wenn beispielsweise der Wert von scopes_supported in der Konfiguration ["openid","email","phone","profile"] ist, gib das OpenID-E-Mail-Profil und -Telefonprofil ein.
Belasse für Aktion bei nicht authentifizierter Anforderung den Standardwert.
(Optional) Erweitere Zusätzliche Anforderungsparameter – optional. Mit dieser Option kannst du während der Authentifizierung zusätzliche Parameter an einen Identitätsanbieter wie Cognito übergeben. Wenn der Cognito-Benutzerpool beispielsweise Google als eigenen Identitätsanbieter hat, kannst du einen zusätzlichen Parameter {Key: identity_provider, Value: Google} hinzufügen. Mit diesem Parameter kannst du die von Cognito gehostete Benutzeroberfläche überspringen und direkt zur Google-Anmeldeseite gelangen. Weitere Informationen zu den zulässigen /oauth2/authorize-Parametern findest du unter Endpunkt autorisieren. - Bearbeite die HTTPS-Listener-Standardregel mit den folgenden Einstellungen weiter:
Wähle für Routing-Aktionen die Option Zu Zielgruppen weiterleiten und wähle dann eine oder mehrere Zielgruppen aus.
(Optional) Wähle unter Klebrigkeit der Zielgruppe die Option Klebrigkeit der Zielgruppe einschalten aus, wenn der Anwendungsfall dies erfordert. - Konfiguriere die Einstellungen für sichere Listener.
Wähle als Sicherheitsrichtlinie die Sicherheitsrichtlinie aus, die für deinen Anwendungsfall geeignet ist.
Wähle für das Standard-SSL/TLS-Serverzertifikat die Quelle des Zertifikats aus. - Wähle Änderungen speichern aus, um die Aktualisierungen auf die HTTPS-Listener-Standardregel anzuwenden.
Testen des Setups
Gib in deinem Webbrowser eine der folgenden URLs ein:
- https://load-balancer-dns-name/
- https://CNAME/
Hinweis: Ersetze load-balancer-dns-name durch den DNS-Namen, den du von der Amazon EC2-Konsole kopiert hast. Oder ersetze CNAME durch die benutzerdefinierte Domain.
Wenn du die URL eingibst, wirst du zur gehosteten Web-Benutzeroberfläche von Amazon Cognito für den Benutzerpool weitergeleitet. Nachdem sich Benutzer angemeldet haben und der Benutzerpool sie authentifiziert hat, werden die Benutzer zum Ziel weitergeleitet.
Ähnliche Informationen
Erste Schritte mit Application Load Balancer
Vereinfachen der Anmeldung mit der integrierten Application-Load-Balancer-Authentifizierung
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren