Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Lambda-Trigger für eingehenden Verbund
Der eingehende Verbundauslöser transformiert föderierte Benutzerattribute während des Authentifizierungsprozesses mit externen Identitätsanbietern. Wenn Benutzer sich über konfigurierte Identitätsanbieter authentifizieren, ermöglicht Ihnen dieser Trigger, Antworten von externen SAML- und OIDC-Anbietern zu ändern, indem Sie Daten im Authentifizierungsprozess abfangen und transformieren, sodass Sie programmgesteuert steuern können, wie Amazon Cognito Cognito-Benutzerpools mit Verbundbenutzern und ihren Attributen umgehen.
Verwenden Sie diesen Trigger, um Attribute hinzuzufügen, zu überschreiben oder zu unterdrücken, bevor Sie neue Benutzer erstellen oder bestehende Verbundbenutzerprofile aktualisieren. Dieser Trigger empfängt unverarbeitete Identitätsanbieterattribute als Eingabe und gibt modifizierte Attribute zurück, die Amazon Cognito auf das Benutzerprofil anwendet.
Themen
Überblick über den Ablauf
Wenn sich ein Benutzer bei einem externen Identitätsanbieter authentifiziert, ruft Amazon Cognito den Trigger für eingehende Verbindungen auf, bevor das Benutzerprofil erstellt oder aktualisiert wird. Der Trigger empfängt die Rohattribute vom Identitätsanbieter und kann sie transformieren, bevor Amazon Cognito sie speichert. Dieser Ablauf findet sowohl für neue Verbundbenutzer als auch für bestehende Benutzer statt, die sich erneut über den Verbund anmelden.
Lambda-Triggerparameter für eingehenden Verbund
Die Anforderung, die Amazon Cognito an diese Lambda-Funktion übergibt, ist eine Kombination der folgenden Parameter und der allgemeinen Parameter, die Amazon Cognito allen Anfragen hinzufügt.
Parameter für eingehende Verbundanfragen
- Name des Anbieters
-
Der Name des externen Identitätsanbieters.
- Anbietertyp
-
Der Typ des externen Identitätsanbieters. Gültige Werte:
OIDC,SAML,Facebook,Google,SignInWithApple,LoginWithAmazon. - Attribute
-
Die Rohattribute, die vor der Verarbeitung vom Identity Provider empfangen wurden. Die Struktur variiert je nach Anbietertyp.
- Attributes.TokenResponse
-
OAuth Token-Antwortdaten vom Endpunkt.
/tokenNur für OIDC und soziale Anbieter verfügbar. Enthältaccess_token,id_token,refresh_tokentoken_typeexpires_in, und.scope - attribute.idToken
-
Dekodiertes und validiertes ID-Token, das JWT behauptet. Nur für OIDC und soziale Anbieter verfügbar. Enthält verifizierte Informationen zur Benutzeridentität, einschließlich
sub(eindeutige Benutzerkennung)emailname,,iss(Aussteller),aud(Zielgruppe),exp(Ablauf) undiat(Ausstellungszeit). - Attributes.UserInfo
-
Erweiterte Benutzerprofilinformationen vom Endpunkt aus. UserInfo Nur für OIDC und soziale Anbieter verfügbar. Enthält detaillierte Profilattribute wie
given_name,,family_namepictureaddress, und andere anbieterspezifische Felder. Kann leer sein, wenn der IdP den Endpunkt nicht unterstützt oder wenn der UserInfo Endpunktaufruf fehlschlägt. - Attributes.samlResponse
-
SAML-Assertion-Attribute. Nur für SAML-Anbieter verfügbar. Enthält Attribute aus der SAML-Antwort.
Antwortparameter für eingehende Föderationen
- userAttributesToKarte
-
Die Benutzerattribute, die auf das Benutzerprofil angewendet werden sollen.
Wichtig
Sie müssen ALLE Benutzerattribute, die Sie behalten möchten, in der Antwort angeben, einschließlich der Attribute, die Sie nicht ändern. Alle Attribute, die nicht in der userAttributesToMap Antwort enthalten sind, werden gelöscht und nicht im Benutzerprofil gespeichert. Dies gilt sowohl für modifizierte als auch für unveränderte Attribute.
Leeres Antwortverhalten
Wenn Sie ein leeres Objekt {} für zurückgebenuserAttributesToMap, werden alle ursprünglichen Attribute des Identity Providers unverändert beibehalten. Dies wirkt wie ein No-Op, als ob die Lambda-Funktion nie ausgeführt worden wäre. Dies unterscheidet sich vom Weglassen von Attributen, wodurch sie gelöscht werden.
Anbieterspezifische Attribute
Die Struktur von request.attributes variiert je nach. providerType Zu IDC und sozialen Anbietern gehören tokenResponseidToken, und userInfo Objekte. SAML-Anbieter schließen nur das Objekt ein. samlResponse
Beispiel für einen eingehenden Verbund: Verwaltung der Gruppenmitgliedschaft
Dieses Beispiel zeigt, wie föderierte Identitätsanbietergruppen Amazon Cognito-Benutzerpool-Gruppen zugeordnet werden. Diese Funktion extrahiert die Gruppenmitgliedschaft aus der Verbundantwort und fügt Benutzer automatisch zu den entsprechenden Amazon Cognito Cognito-Gruppen hinzu, sodass keine Trigger nach der Authentifizierung erforderlich sind.
Amazon Cognito übergibt Ereignisinformationen an Ihre Lambda-Funktion. Die Funktion gibt dann das gleiche Ereignisobjekt mit allen Änderungen in der Antwort an Amazon Cognito zurück. Sie können in der Lambda-Konsole ein Testereignis mit den für Ihren Lambda-Auslöser relevanten Daten einrichten. Das Folgende ist ein Testereignis für dieses Codebeispiel:
Beispiel für einen eingehenden Verbund: Große Attribute kürzen
Dieses Beispiel zeigt, wie Attributwerte gekürzt werden, die die Speicherlimits von Amazon Cognito überschreiten. Diese Funktion überprüft jedes Attribut des Identitätsanbieters. Wenn ein Attributwert 2048 Zeichen überschreitet, wird der Wert gekürzt und es werden Auslassungspunkte hinzugefügt, um auf die Kürzung hinzuweisen. Alle anderen Attribute werden unverändert übernommen.
Amazon Cognito übergibt Ereignisinformationen an Ihre Lambda-Funktion. Die Funktion gibt dann das gleiche Ereignisobjekt mit allen Änderungen in der Antwort an Amazon Cognito zurück. Sie können in der Lambda-Konsole ein Testereignis mit den für Ihren Lambda-Auslöser relevanten Daten einrichten. Das Folgende ist ein Testereignis für dieses Codebeispiel:
Beispiel für einen eingehenden Verbund: Protokollierung von Verbundereignissen
Dieses Beispiel zeigt, wie Verbundauthentifizierungsereignisse zur Überwachung und zum Debuggen protokolliert werden. Diese Beispielfunktion erfasst detaillierte Informationen zu Verbundbenutzern und ihren Attributen und bietet so Einblick in den Authentifizierungsprozess.
Amazon Cognito übergibt Ereignisinformationen an Ihre Lambda-Funktion. Die Funktion gibt dann das gleiche Ereignisobjekt mit allen Änderungen in der Antwort an Amazon Cognito zurück. Sie können in der Lambda-Konsole ein Testereignis mit den für Ihren Lambda-Auslöser relevanten Daten einrichten. Das Folgende ist ein Testereignis für dieses Codebeispiel:
Erwartete CloudWatch Protokollausgabe: