Lambda-Auslöser für die Erstellung einer Authentifizierungsaufforderung - 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.

Lambda-Auslöser für die Erstellung einer Authentifizierungsaufforderung

Lambda-Auslöser für Aufforderungen
Authentifizierungsaufforderung erstellen

Amazon Cognito aktiviert den Auslöser nach Authentifizierungsaufforderung definieren, falls eine benutzerdefinierte Anforderung als Teil des Auslösers für Authentifizierungsaufforderung definieren festgelegt wurde. Erstellt einen benutzerdefinierten Authentifizierungsablauf.

Dieser Lambda-Auslöser wird aufgerufen, um eine Aufforderung zu erstellen, die dem Benutzer angezeigt wird. Die Anforderung für diesen Lambda-Auslöser umfasst challengeName und session. challengeName ist eine Zeichenfolge und der Name der nächsten Aufforderung für den Benutzer. Der Wert dieses Attributs wird im Lambda-Auslöser „Authentifizierungsaufforderung definieren“ festgelegt.

Die Aufforderungsschleife wird so lange ausgeführt, bis alle Aufforderungen beantwortet werden.

Lambda-Auslöserparameter für die Erstellung einer Authentifizierungsaufforderung

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", . . . }, "challengeName": "string", "session": [ ChallengeResult, . . . ], "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "publicChallengeParameters": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeMetadata": "string" } }

Anforderungsparameter für die Erstellung einer Authentifizierungsaufforderung

userAttributes

Ein oder mehrere Name-Wert-Paare, die Benutzerattribute darstellen.

userNotFound

Dieser boolesche Wert wird eingegeben, wenn PreventUserExistenceErrors für Ihren Benutzerpool-Client auf ENABLED festgelegt ist.

challengeName

Der Name der neuen Aufforderung.

Sitzung

Das session-Element ist ein Array aus ChallengeResult-Elementen, die jeweils die folgenden Elemente enthalten:

challengeName

Der Aufforderungstyp: Eins von: "CUSTOM_CHALLENGE", "PASSWORD_VERIFIER", "SMS_MFA", "DEVICE_SRP_AUTH", "DEVICE_PASSWORD_VERIFIER" oder von "ADMIN_NO_SRP_AUTH".

challengeResult

Setzen Sie diesen Parameter auf true, wenn der Benutzer die Aufforderung erfolgreich abgeschlossen hat. Setzen Sie ihn andernfalls auf false.

challengeMetadata

Ihr Name für die benutzerdefinierte Aufforderung. Nur verwendet, wenn challengeName "CUSTOM_CHALLENGE"entspricht.

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 zum Erstellen einer Authentifizierungsaufforderung angeben. Sie können den ClientMetadata-Parameter in den API-Aktionen AdminRespondToAuthChallenge und RespondToAuthChallenge verwenden, um diese Daten an Ihre Lambda-Funktion zu übergeben. Die Anforderung, die die Funktion „Auth Challenge erstellen“ aufruft, enthält keine Daten, die im ClientMetadata-Parameter in AdminInitiateAuth und InitiateAuth-API-Operationen übergeben wurden.

Antwortparameter für die Erstellung einer Authentifizierungsaufforderung

publicChallengeParameters

Ein oder mehrere Schlüssel-Wert-Paare für die Client-App zur Verwendung in der Aufforderung, die dem Benutzer angezeigt wird. Dieser Parameter sollte alle erforderlichen Informationen enthalten, um dem Benutzer die Aufforderung richtig anzuzeigen.

privateChallengeParameters

Dieser Parameter wird nur vom Lambda-Auslöser „Antwort auf Authentifizierungsaufforderung überprüfen“ verwendet. Dieser Parameter sollte enthalten alle Informationen, die erforderlich ist, um sicherzustellen, dass die Benutzer die Antwort auf die Aufforderung. Anders ausgedrückt, der Parameter publicChallengeParameters enthält die Frage, die dem Benutzer angezeigt wird, und privateChallengeParameters die gültigen Antworten auf die Frage.

challengeMetadata

Ihr Name für die benutzerdefinierte Aufforderung, sofern es sich um eine benutzerdefinierte Aufforderung handelt.

Beispiel für „Authentifizierungsaufforderung erstellen“

Ein CAPTCHA wird als Aufforderung für den Benutzer erstellt. Die URL für das CAPTCHA-Bild wird den Parametern der öffentlichen Aufforderung als "captchaUrl" hinzugefügt. Die erwartete Antwort wird den Parametern der privaten Aufforderung hinzugefügt.

Node.js
const handler = async (event) => { if (event.request.challengeName !== "CUSTOM_CHALLENGE") { return event; } if (event.request.session.length === 2) { event.response.publicChallengeParameters = {}; event.response.privateChallengeParameters = {}; event.response.publicChallengeParameters.captchaUrl = "url/123.jpg"; event.response.privateChallengeParameters.answer = "5"; } if (event.request.session.length === 3) { event.response.publicChallengeParameters = {}; event.response.privateChallengeParameters = {}; event.response.publicChallengeParameters.securityQuestion = "Who is your favorite team mascot?"; event.response.privateChallengeParameters.answer = "Peccy"; } return event; }; export { handler }