Lambda-Auslöser für die Verifizierung der Antwort auf eine 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 Verifizierung der Antwort auf eine Authentifizierungsaufforderung

Lambda-Auslöser für Aufforderungen
Antwort auf Authentifizierungsaufforderung überprüfen

Amazon Cognito ruft diesen Auslöser auf, um zu überprüfen, ob die Antwort des Benutzers auf eine benutzerdefinierte Authentifizierungsaufforderung gültig ist. Es ist Teil eines benutzerdefinierten Authentifizierungsablaufs für einen Benutzerpool.

Die Anforderung für diesen Auslöser enthält die Parameter privateChallengeParameters und challengeAnswer. Die privateChallengeParameters-Werte werden vom Lambda-Auslöser „Authentifizierungsaufforderung erstellen“ zurückgegeben und enthalten die erwartete Antwort vom Benutzer. Der Parameter challengeAnswer enthält die Benutzerantwort auf die Aufforderung.

Die Antwort enthält das answerCorrect-Attribut. Wenn der Benutzer die Herausforderung erfolgreich abgeschlossen hat, legt Amazon Cognito den Attributwert auf true fest. Wenn der Benutzer die Herausforderung nicht erfolgreich abgeschlossen hat, legt Amazon Cognito den Wert auf false fest.

Die Aufforderungsschleife wird so lange ausgeführt, bis die Benutzer alle Aufforderungen beantwortet hat.

Lambda-Auslöserparameter für die Überprüfung 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", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeAnswer": "string", "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "answerCorrect": boolean } }

Anforderungsparameter für die Verifizierung einer Authentifizierungsaufforderung

userAttributes

Dieser Parameter enthält ein oder mehrere Name-Wert-Paare, die Benutzerattribute darstellen.

userNotFound

Amazon Cognito gibt diesen booleschen Wert ein, wenn Amazon Cognito PreventUserExistenceErrors für Ihren Benutzerpool-Client auf ENABLED festgelegt hat.

privateChallengeParameters

Dieser Parameter stammt aus dem Trigger „Authentifizierungsaufforderung erstellen“. Um festzustellen, ob der Benutzer eine Aufforderung erfüllt hat, vergleicht Amazon Cognito die Parameter mit der challengeAnswer eines Benutzers.

Dieser Parameter sollte alle erforderlichen Informationen enthalten, um die Antwort des Benutzerstauf die Aufforderung zu validieren. Diese Informationen beinhalten die Frage, die Amazon Cognito dem Benutzer stellt (publicChallengeParameters), sowie die gültigen Antworten auf die Frage (privateChallengeParameters). Dieser Parameter wird nur vom Lambda-Auslöser „Antwort auf Authentifizierungsaufforderung überprüfen“ verwendet.

challengeAnswer

Dieser Parameterwert ist die Antwort des Benutzers auf die Aufforderung.

clientMetadata

Dieser Parameter enthält ein oder mehrere Schlüssel-Wert-Paare, die Sie als benutzerdefinierte Eingabe für die Lambda-Funktion für den Auslöser zur Überprüfung der Authentifizierungsaufforderung bereitstellen können. Verwenden Sie den ClientMetadata-Parameter in den API-Vorgängen AdminRespondToAuthChallenge und RespondToAuthChallenge, um diese Daten an Ihre Lambda-Funktion zu übergeben. Amazon Cognito enthält keine Daten aus dem ClientMetadata-Parameter in AdminInitiateAuth und InitiateAuth-API-Operationen in der Anforderung, die es an die Funktion zur Überprüfung der Authentifizierungsaufforderung übergibt.

Antwortparameter für die Verifizierung der Authentifizierungsaufforderung

answerCorrect

Wenn der Benutzer die Aufforderung erfolgreich abschließt, legt Amazon Cognito diesen Parameter auf true fest. Wenn der Benutzer die Aufforderung nicht erfolgreich abschließt, legt Amazon Cognito den Parameter auf false fest.

Beispiel für „Antwort auf Authentifizierungsaufforderung überprüfen“

In diesem Beispiel prüft die Lambda-Funktion, ob die Benutzerantwort auf eine Aufforderung mit der erwarteten Antwort übereinstimmt. Amazon Cognito setzt den Parameter answerCorrect auf true, wenn die Benutzerantwort mit der erwarteten Antwort übereinstimmt.

Node.js
const handler = async (event) => { if ( event.request.privateChallengeParameters.answer == event.request.challengeAnswer ) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } return event; }; export { handler };