Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Lambda-Auslöser für die Vorab-Registrierung

Fokusmodus
Lambda-Auslöser für die Vorab-Registrierung - Amazon Cognito

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.

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.

Möglicherweise möchten Sie den Anmeldevorgang in Benutzerpools anpassen, die über Self-Service-Anmeldeoptionen verfügen. Häufig wird der Trigger vor der Anmeldung verwendet, um benutzerdefinierte Analysen und Aufzeichnungen neuer Benutzer durchzuführen, Sicherheits- und Governance-Standards anzuwenden oder Benutzer von einem Drittanbieter-IdP mit einem konsolidierten Benutzerprofil zu verknüpfen. Möglicherweise haben Sie auch vertrauenswürdige Benutzer, die sich keiner Überprüfung und Bestätigung unterziehen müssen.

Kurz bevor Amazon Cognito einen neuen lokalen oder Verbundbenutzer anmeldet, aktiviert es die Lambda-Funktion vor der Registrierung. Im Rahmen des Anmeldevorgangs können Sie diese Funktion verwenden, um das Anmeldeereignis mit benutzerdefinierter Logik zu analysieren und den neuen Benutzer zu ändern oder abzulehnen.

Lambda-Abläufe für die Vorab-Registrierung

Ablauf der Client-Registrierung

Lambda-Auslöser für die Vorab-Registrierung – Client-Ablauf

Ablauf der Server-Registrierung

Lambda-Auslöser für die Vorab-Registrierung – Server-Ablauf

Die Anforderung enthält Validierungsdaten vom Client. Diese Daten stammen aus den ValidationData Werten, die an den Benutzerpool SignUp und den AdminCreateUser API-Methoden übergeben wurden.

Lambda-Auslöserparameter für die Vorab-Registrierung

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.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "validationData": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": { "autoConfirmUser": "boolean", "autoVerifyPhone": "boolean", "autoVerifyEmail": "boolean" } }
{ "request": { "userAttributes": { "string": "string", . . . }, "validationData": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": { "autoConfirmUser": "boolean", "autoVerifyPhone": "boolean", "autoVerifyEmail": "boolean" } }

Anforderungsparameter für die Vorab-Registrierung

userAttributes

Ein oder mehrere Name-Wert-Paare, die Benutzerattribute darstellen. Die Attributnamen sind die Schlüssel.

validationData

Ein oder mehrere Schlüssel/Wert-Paare mit Benutzerattributdaten, die Ihre App in der Anfrage zur Erstellung eines neuen Benutzers an Amazon Cognito übergeben hat. Senden Sie diese Informationen im ValidationData Parameter Ihrer AdminCreateUseroder SignUpAPI-Anfrage an Ihre Lambda-Funktion.

Amazon Cognito legt Ihre ValidationData Daten nicht als Attribute des von Ihnen erstellten Benutzers fest. ValidationData sind temporäre Benutzerinformationen, die Sie für Ihren Lambda-Trigger vor der Registrierung angeben.

clientMetadata

Ein oder mehrere Schlüssel-Wert-Paare, die Sie als benutzerdefinierte Eingabe für die Lambda-Funktion bereitstellen können, die Sie für den Auslöser für die Vorab-Registrierung angeben. Sie können diese Daten an Ihre Lambda-Funktion übergeben, indem Sie den ClientMetadata Parameter in den folgenden API-Aktionen verwenden: AdminCreateUser, AdminRespondToAuthChallengeForgotPassword, und SignUp.

Antwortparameter für die Vorab-Registrierung

In der Antwort können Sie autoConfirmUser auf true setzen, wenn der Benutzer automatisch bestätigt werden soll. Sie können die Einstellung autoVerifyEmail auf true setzen und somit die E-mail-Adresse des Benutzers automatisch überprüfen. Sie könne die Einstellung autoVerifyPhone auf true setzen und somit die Telefonnummer des Benutzers automatisch überprüfen.

Anmerkung

Die Antwortparameter autoVerifyPhone, autoVerifyEmail und autoConfirmUser werden von Amazon Cognito ignoriert, wenn die Lambda-Funktion vor der Registrierung durch die AdminCreateUser-API ausgelöst wird.

autoConfirmUser

Setzen Sie diesen Parameter auf true, wenn der Benutzer automatisch bestätigt werden soll. Setzen Sie ihn andernfalls auf false.

autoVerifyEmail

Legen Sie diesen Parameter auf true fest, um die Verifizierung der E-Mail-Adresse eines Benutzers, der sich gerade anmeldet, zu bestätigen. Legen Sie ihn andernfalls auf false fest. Falls autoVerifyEmail auf true gesetzt ist, muss das Attribut email einen gültigen Wert besitzen, bei dem es sich nicht um Null handeln darf. Andernfalls tritt ein Fehler auf und der Benutzer wird die Registrierung nicht abschließen können.

Wenn das Attribut email als Alias ausgewählt ist, wird ein Alias für die E-Mail-Adresse des Benutzers erstellt. Dabei muss autoVerifyEmail aktiv sein. Wenn bereits ein Alias mit dieser E-Mail-Adresse vorhanden ist, wird der Alias dem neuen Benutzer zugewiesen. Die E-Mail-Adresse des vorherigen Benutzers wird als nicht bestätigt gekennzeichnet. Weitere Informationen finden Sie unter Anpassen von Anmeldeattributen.

autoVerifyPhone

Setzen Sie diesen Parameter auf true um die Verifizierung der Telefonnummer eines Benutzers, der sich grade anmeldet, zu bestätigen. Setzen Sie ihn andernfalls auf false. Falls autoVerifyPhone auf true gesetzt ist, muss das Attribut phone_number einen gültigen Wert besitzen, bei dem es sich nicht um Null handeln darf. Andernfalls tritt ein Fehler auf und der Benutzer wird die Registrierung nicht abschließen können.

Wenn das Attribut phone_number als Alias ausgewählt ist, wird ein Alias für die Telefonnummer des Benutzers erstellt. Dabei muss autoVerifyPhone aktiv sein. Wenn ein Alias mit dieser Telefonnummer bereits existiert, wird das Alias einem neuen Benutzer zugewiesen. Die Telefonnummer des vorherigen Benutzers wird dabei als nicht-verifiziert gekennzeichnet. Weitere Informationen finden Sie unter Anpassen von Anmeldeattributen.

Beispiele für die Anmeldung

Ihre Benutzer können sich über die verwaltete Anmeldung registrieren. Den SDK-Beispielcode für den SignUpVorgang finden Sie auch unterVerwendung SignUp mit einem AWS SDK oder CLI.

Beispiel für Vorab-Registrierung: Automatische Bestätigung von Benutzern aus einer registrierten Domäne

Dies ist ein Beispiel für einen Lambda-Triggercode. Der Trigger vor der Anmeldung wird unmittelbar vor der Verarbeitung der Registrierungsanfrage durch Amazon Cognito ausgelöst. Sie verwendet ein benutzerdefiniertes Attribut custom:domain, um neue Benutzer von einer bestimmten E-Mail-Domäne automatisch zu bestätigen. Alle neuen Benutzer, die sich nicht in der benutzerdefinierten Domäne befinden, werden dem Benutzerpool hinzugefügt, aber nicht automatisch bestätigt.

Node.js
export const handler = async (event, context, callback) => { // Set the user pool autoConfirmUser flag after validating the email domain event.response.autoConfirmUser = false; // Split the email address so we can compare domains var address = event.request.userAttributes.email.split("@"); // This example uses a custom attribute "custom:domain" if (event.request.userAttributes.hasOwnProperty("custom:domain")) { if (event.request.userAttributes["custom:domain"] === address[1]) { event.response.autoConfirmUser = true; } } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): # It sets the user pool autoConfirmUser flag after validating the email domain event['response']['autoConfirmUser'] = False # Split the email address so we can compare domains address = event['request']['userAttributes']['email'].split('@') # This example uses a custom attribute 'custom:domain' if 'custom:domain' in event['request']['userAttributes']: if event['request']['userAttributes']['custom:domain'] == address[1]: event['response']['autoConfirmUser'] = True # Return to Amazon Cognito return event
export const handler = async (event, context, callback) => { // Set the user pool autoConfirmUser flag after validating the email domain event.response.autoConfirmUser = false; // Split the email address so we can compare domains var address = event.request.userAttributes.email.split("@"); // This example uses a custom attribute "custom:domain" if (event.request.userAttributes.hasOwnProperty("custom:domain")) { if (event.request.userAttributes["custom:domain"] === address[1]) { event.response.autoConfirmUser = true; } } // Return to Amazon Cognito callback(null, event); };

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:

JSON
{ "request": { "userAttributes": { "email": "testuser@example.com", "custom:domain": "example.com" } }, "response": {} }
{ "request": { "userAttributes": { "email": "testuser@example.com", "custom:domain": "example.com" } }, "response": {} }

Beispiel für Voranmeldung: Automatische Bestätigung und Verifizierung aller Benutzer

Dieses Beispiel bestätigt alle Benutzer und setzt die Attribute email und phone_number des Benutzers auf verifiziert, wenn das Attribut vorhanden ist. Wenn Aliasse unterstützt werden, werden für phone_number und email außerdem Aliasse erstellt, wenn die automatische Bestätigung festgelegt ist.

Anmerkung

Wenn bereits ein Alias mit derselben Telefonnummer vorhanden ist, wird der Alias dem neuen Benutzer zugewiesen. Die phone_number des vorherigen Benutzers wird als nicht bestätigt gekennzeichnet. Dies gilt auch für E-Mail-Adressen. Um dies zu verhindern, können Sie die ListUsers Benutzerpools-API verwenden, um zu sehen, ob es einen bestehenden Benutzer gibt, der die Telefonnummer oder E-Mail-Adresse des neuen Benutzers bereits als Alias verwendet.

Node.js
exports.handler = (event, context, callback) => { // Confirm the user event.response.autoConfirmUser = true; // Set the email as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("email")) { event.response.autoVerifyEmail = true; } // Set the phone number as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("phone_number")) { event.response.autoVerifyPhone = true; } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): # Confirm the user event['response']['autoConfirmUser'] = True # Set the email as verified if it is in the request if 'email' in event['request']['userAttributes']: event['response']['autoVerifyEmail'] = True # Set the phone number as verified if it is in the request if 'phone_number' in event['request']['userAttributes']: event['response']['autoVerifyPhone'] = True # Return to Amazon Cognito return event
exports.handler = (event, context, callback) => { // Confirm the user event.response.autoConfirmUser = true; // Set the email as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("email")) { event.response.autoVerifyEmail = true; } // Set the phone number as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("phone_number")) { event.response.autoVerifyPhone = true; } // Return to Amazon Cognito callback(null, event); };

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:

JSON
{ "request": { "userAttributes": { "email": "user@example.com", "phone_number": "+12065550100" } }, "response": {} }
{ "request": { "userAttributes": { "email": "user@example.com", "phone_number": "+12065550100" } }, "response": {} }

Beispiel für die Vorab-Registrierung: Anmeldung ablehnen, wenn der Benutzername weniger als fünf Zeichen enthält

In diesem Beispiel wird die Länge des Benutzernamens in einer Anmeldeanforderung überprüft. Das Beispiel gibt einen Fehler zurück, wenn der Benutzer einen Namen mit weniger als fünf Zeichen eingegeben hat.

Node.js
export const handler = (event, context, callback) => { // Impose a condition that the minimum length of the username is 5 is imposed on all user pools. if (event.userName.length < 5) { var error = new Error("Cannot register users with username less than the minimum length of 5"); // Return error to Amazon Cognito callback(error, event); } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): if len(event['userName']) < 5: raise Exception("Cannot register users with username less than the minimum length of 5") # Return to Amazon Cognito return event
export const handler = (event, context, callback) => { // Impose a condition that the minimum length of the username is 5 is imposed on all user pools. if (event.userName.length < 5) { var error = new Error("Cannot register users with username less than the minimum length of 5"); // Return error to Amazon Cognito callback(error, event); } // Return to Amazon Cognito callback(null, event); };

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:

JSON
{ "userName": "rroe", "response": {} }
{ "userName": "rroe", "response": {} }
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.