Importieren von Benutzern in Benutzerpools mit einem Lambda-Auslöser für die Benutzermigration - 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.

Importieren von Benutzern in Benutzerpools mit einem Lambda-Auslöser für die Benutzermigration

Mit diesem Ansatz können Sie Benutzer nahtlos aus Ihrem vorhandenen Benutzerverzeichnis zu Benutzerpools migrieren, wenn sich ein Benutzer zum ersten Mal bei Ihrer App anmeldet oder ein Zurücksetzen des Passworts anfordert. Fügen Sie Ihrem Benutzerpool eine Lambda-Auslöser für die Benutzermigration.-Funktion hinzu. Daraufhin erhält dieser Metadaten über Benutzer, die sich anzumelden versuchen, und gibt Benutzerprofilinformationen von einer externen Identitätsquelle zurück. Weitere Informationen und Beispiel-Code zu diesem Lambda-Auslöser, einschließlich der Anfrage- und Antwortparameter, finden Sie unter Lambda-Auslöserparameter für die Benutzermigration.

Bevor Sie mit der Migration von Benutzern beginnen, erstellen Sie eine Lambda-Funktion für die Benutzermigration in Ihrem AWS-Konto und legen Sie die Lambda-Funktion als Auslöser der Benutzermigration in Ihrem Benutzerpool fest. Fügen Sie Ihrer Lambda-Funktion eine Autorisierungsrichtlinie hinzu, die nur dem Prinzipal des Amazon-Cognito-Servicekontos cognito-idp.amazonaws.com erlaubt, die Lambda-Funktion aufzurufen, und zwar nur im Kontext Ihres eigenen Benutzerpools. Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien für AWS Lambda (Lambda-Funktionsrichtlinien).

Anmeldeprozess

  1. Der Benutzer öffnet Ihre App und meldet sich mit der Benutzerpool-API von Amazon Cognito oder über die von Amazon Cognito gehostete Benutzeroberfläche an. Weitere Informationen zur Erleichterung der Anmeldung mit Amazon-Cognito-APIs finden Sie unter Integration der Amazon-Cognito-Authentifizierung und -Autorisierung mit Web- und mobilen Apps.

  2. Ihre App sendet den Benutzernamen und das Passwort an Amazon Cognito. Wenn Ihre App über eine benutzerdefinierte Anmelde-Benutzeroberfläche verfügt, die Sie mit einem AWS-SDK entwickelt haben, muss Ihre App InitiateAuth oder AdminInitiateAuth mit dem USER_PASSWORD_AUTH- oder dem ADMIN_USER_PASSWORD_AUTH-Ablauf verwenden. Wenn Ihre App einen dieser Abläufe verwendet, sendet das SDK das Passwort an den Server.

    Anmerkung

    Bevor Sie einen Auslöser für die Benutzermigration hinzufügen, aktivieren Sie den USER_PASSWORD_AUTH- oder den ADMIN_USER_PASSWORD_AUTH-Ablauf in den Einstellungen Ihres App-Clients. Sie müssen diese Abläufe anstelle des USER_SRP_AUTH-Standardablaufs verwenden. Amazon Cognito muss ein Passwort an Ihre Lambda-Funktion senden, damit es die Authentifizierung Ihres Benutzers im anderen Verzeichnis überprüfen kann. Ein SRP verdeckt das Passwort Ihres Benutzers vor Ihrer Lambda-Funktion.

  3. Amazon Cognito prüft, ob der übermittelte Benutzername mit einem Benutzernamen oder Alias im Benutzerpool übereinstimmt. Sie können die E-Mail-Adresse, Telefonnummer oder den bevorzugten Benutzernamen des Benutzers als Alias in Ihrem Benutzerpool festlegen. Wenn der Benutzer nicht existiert, sendet Amazon Cognito Parameter, einschließlich Benutzernamen und Passwort, an Ihre Lambda-Auslöser für die Benutzermigration.-Funktion.

  4. Ihre Lambda-Auslöser für die Benutzermigration.-Funktion prüft oder authentifiziert den Benutzer bei Ihrem vorhandenen Benutzerverzeichnis oder Ihrer Benutzerdatenbank. Die Funktion gibt Benutzerattribute zurück, die Amazon Cognito im Benutzerprofil innerhalb des Benutzerpools speichert. Sie können einen username-Parameter nur zurückgeben, wenn der übermittelte Benutzername mit einem Aliasattribut übereinstimmt. Wenn Sie möchten, dass Benutzer ihre vorhandenen Passwörter weiterhin verwenden, legen Sie das Attribut finalUserStatus in der Lambda-Antwort auf CONFIRMED fest. Ihre App muss alle "response"-Parameter zurückgeben, die unter Lambda-Auslöserparameter für die Benutzermigration angezeigt werden.

    Wichtig

    Protokollieren Sie nicht das gesamte Anforderungsereignisobjekt in Ihrem Lambda-Code der Benutzermigration. Dieses Anforderungsereignisobjekt enthält das Passwort des Benutzers. Wenn Sie die Protokolle nicht bereinigen, werden Passwörter in CloudWatch-Protokollen angezeigt.

  5. Amazon Cognito erstellt das Benutzerprofil in Ihrem Benutzerpool und gibt Token an Ihren App-Client zurück.

  6. Ihre App führt die Token-Aufnahme durch, akzeptiert die Benutzerauthentifizierung und fährt mit dem angeforderten Inhalt fort.

Nachdem Sie Ihre Benutzer migriert haben, verwenden Sie USER_SRP_AUTH für die Anmeldung. Das Secure Remote Password (SRP)-Protokoll sendet das Passwort nicht über das Netzwerk und bietet Sicherheitsvorteile gegenüber dem USER_PASSWORD_AUTH-Ablauf, den Sie bei der Migration verwendet haben.

Wenn während der Migration Fehler auftreten, wie beispielsweise Probleme mit dem Client-Gerät oder dem Netzwerk, erhält Ihre App Fehlermeldungen von der Benutzerpool-API von Amazon Cognito. In diesem Fall kann Amazon Cognito das Benutzerkonto in Ihrem Benutzerpool möglicherweise nicht erstellen. Der Benutzer sollte dann versuchen, sich erneut anzumelden. Wenn die Anmeldung wiederholt fehlschlägt, versuchen Sie, das Passwort des Benutzers mit dem Ablauf für ein vergessenes Passwort in Ihrer App zurückzusetzen.

Der Ablauf für ein vergessenes Passwort ruft außerdem Ihre Lambda-Auslöser für die Benutzermigration.-Funktion mit einer UserMigration_ForgotPassword-Ereignisquelle auf. Da der Benutzer beim Anfordern der Passwortrücksetzung kein Passwort übermittelt, nimmt Amazon Cognito kein Passwort auf für den Fall, dass es an Ihre Lambda-Funktion gesendet wird. Ihre Funktion kann den Benutzer nur in Ihrem vorhandenen Benutzerverzeichnis nachschlagen und Attribute zurückgeben, die dem Benutzerprofil in Ihrem Benutzerpool hinzugefügt werden. Nachdem Ihre Funktion den Aufruf abgeschlossen und ihre Antwort an Amazon Cognito zurückgegeben hat, sendet der Benutzerpool einen Code für die Passwortrücksetzung per E-Mail oder SMS. Fordern Sie den Benutzer in Ihrer App auf, den Bestätigungscode und ein neues Passwort einzugeben, und senden Sie diese Informationen dann in einer ConfirmForgotPassword-API-Anforderung an Amazon Cognito. Sie können auch die integrierten Seiten für den Ablauf für ein vergessenes Passwort in der gehosteten Benutzeroberfläche in Amazon Cognito verwenden.