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.
Registrieren und Bestätigen von Benutzerkonten
Benutzerkonten können auf eine der folgenden Weisen einem Benutzerpool hinzugefügt werden:
-
Der Benutzer meldet sich in der Client-App Ihres Benutzerpools an. Dies kann eine mobile oder webbasierte App sein.
-
Sie können das Benutzerkonto in Ihren Benutzerpool importieren. Weitere Informationen finden Sie unter Benutzer aus einer CSV Datei in Benutzerpools importieren.
-
Sie können das Benutzerkonto in Ihrem Create a User Pool und den Benutzer einladen, sich anzumelden. Weitere Informationen finden Sie unter Erstellen von Benutzerkonten als Administrator.
Benutzer, die sich selbst registrieren, müssen bestätigt werden, bevor sie sich anmelden können. Importierte und erstellte Benutzer sind bereits bestätigt, aber sie müssen ihr eigenes Passwort erstellen, wenn sie sich das erste Mal anmelden. In den folgenden Abschnitten werden der Bestätigungsprozess und die Verifizierung per E-Mail und Telefon erläutert.
Überblick über die Benutzerkonto-Bestätigung
Das folgende Diagramm illustriert den Bestätigungsprozess:
Ein Benutzerkonto kann einen der folgenden Status aufweisen:
- Registriert (Unbestätigt)
-
Der Benutzer hat sich erfolgreich registriert, kann sich aber nicht anmelden, bis das Benutzerkonto bestätigt wird. Der Benutzer aktiviert ist, aber in diesem Status nicht bestätigt.
Neue Benutzer, die sich selbst registrieren, starten in diesem Status.
- Bestätigt
-
Das Benutzerkonto ist bestätigt, und der Benutzer kann sich anmelden. Wenn ein Benutzer einen Code eingibt oder einem E-Mail-Link folgt, um sein Benutzerkonto zu bestätigen, wird die E-Mail-Adresse oder Telefonnummer automatisch verifiziert. Der Code oder Link ist 24 Stunden gültig.
Wenn das Benutzerkonto vom Administrator oder einem Lambda-Auslöser vor der Anmeldung bestätigt wurde, ist möglicherweise keine verifizierte E-Mail-Adresse oder Telefonnummer mit dem Konto verknüpft.
- Zurücksetzen des Passworts erforderlich
-
Das Benutzerkonto ist bestätigt, aber der Benutzer muss einen Code anfordern und sein Passwort zurücksetzen, bevor er sich anmelden kann.
Benutzerkonten, die von einem Administrator oder Entwickler importiert werden, starten in diesem Status.
- Ändern des Passworts erzwingen
-
Das Benutzerkonto ist bestätigt, und der Benutzer kann sich mit einem temporären Passwort anmelden, aber bei der ersten Anmeldung muss der Benutzer zunächst das Passwort ändern.
Benutzerkonten, die von einem Administrator oder Entwickler erstellt werden, starten in diesem Status.
- Disabled
-
Bevor Sie ein Benutzerkonto löschen können, müssen Sie den Anmeldezugriff für diesen Benutzer deaktivieren.
Weitere -Quellen
Überprüfen von Kontaktinformationen bei der Anmeldung
Wenn sich neue Benutzer in Ihrer App anmelden, möchten Sie wahrscheinlich, dass sie mindestens eine Kontaktmethode angeben. Mit den Kontaktinformationen des Benutzers haben Sie zum Beispiel folgende Möglichkeiten:
-
Senden Sie ein temporäres Passwort, wenn ein Benutzer sein Passwort zurücksetzt.
-
Benachrichtigen der Benutzer, wenn deren persönliche oder finanziellen Daten aktualisiert werden
-
Senden von Werbemitteilungen, beispielsweise zu Sonderangeboten oder Rabatten
-
Senden von Kontoübersichten oder Zahlungserinnerungen
Für solche Anwendungsfälle müssen Sie Ihre Nachrichten unbedingt an ein Ziel senden, das überprüft wurde. Andernfalls senden Sie Ihre Nachrichten möglicherweise an eine ungültige E-Mail-Adresse oder falsch eingegebene Telefonnummer. Im schlimmsten Fall könnten Sie sogar sensible Daten an böswillige Angreifer übermitteln, die sich als Ihre Benutzer ausgeben.
Um sicherzustellen, dass Sie Nachrichten nur an die richtigen Personen senden, konfigurieren Sie den Amazon-Cognito-Benutzerpool so, dass die Benutzer Folgendes angeben müssen, wenn sie sich anmelden:
-
Eine E-Mail-Adresse oder Telefonnummer.
-
Einen Verifizierungscode, den Amazon Cognito an diese E-Mail-Adresse oder Telefonnummer sendet. Wenn 24 Stunden vergangen sind und der Code oder Link Ihres Benutzers nicht mehr gültig ist, rufen Sie den ResendConfirmationCodeAPIVorgang auf, um einen neuen Code oder Link zu generieren und zu senden.
Durch die Angabe des Verifizierungscodes weist ein Benutzer nach, dass er über Zugriff auf das Postfach oder Telefon verfügt, welches den Code erhalten hat. Nachdem der Benutzer den Code angegeben hat, aktualisiert Amazon Cognito die Informationen über den Benutzer im Benutzerpool wie folgt:
-
Der Status des Benutzers wird auf festgelegt
CONFIRMED
. -
Die Attribute des Benutzers werden aktualisiert, um anzugeben, dass die E-Mail-Adresse oder Telefonnummer bestätigt wurde.
Sie können diese Informationen in der Amazon-Cognito-Konsole anzeigen. Oder Sie können die AdminGetUser
API Operation, den admin-get-user
Befehl mit dem AWS CLI oder eine entsprechende Aktion in einer der AWS SDKs.
Wenn ein Benutzer über eine überprüfte Kontaktmethode verfügt, sendet Amazon Cognito dem Benutzer automatisch eine Nachricht, wenn der Benutzer die Zurücksetzung des Passworts anfordert.
Benutzerpool für eine obligatorische Verifizierung der E-Mail-Adresse oder Telefonnummer konfigurieren
Wenn Sie die E-Mail-Adressen und Telefonnummern Ihrer Benutzer überprüfen, stellen Sie sicher, dass Sie Ihre Benutzer kontaktieren können. Gehen Sie wie folgt vor AWS Management Console , um Ihren Benutzerpool so zu konfigurieren, dass Ihre Benutzer ihre E-Mail-Adressen oder Telefonnummern bestätigen müssen.
Anmerkung
Wenn Sie noch keinen Benutzerpool in Ihrem Konto eingerichtet haben, finden Sie weitere Informationen unter Erste Schritte mit Benutzerpools.
So konfigurieren Sie den Benutzerpool
-
Navigieren Sie zur Amazon-Cognito-Konsole
. Wenn Sie dazu aufgefordert werden, geben Sie Ihre AWS Anmeldeinformationen ein. -
Wählen Sie im Navigationsbereich User Pools (Benutzerpools) aus. Wählen Sie einen vorhandenen Benutzerpool aus der Liste aus oder erstellen Sie einen neuen Benutzerpool.
-
Wählen Sie die Registerkarte Sign-up experience (Anmeldeerlebnis) aus und suchen Sie nach Attribute verification and user account confirmation (Attributverifikation und Benutzerkontobestätigung). Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie unter Von Cognito unterstützte Überprüfung und Bestätigung aus, ob Sie Cognito erlauben, automatisch Nachrichten zur Überprüfung und Bestätigung zu senden. Wenn diese Einstellung aktiviert ist, sendet Amazon Cognito Nachrichten an die von Ihnen ausgewählten Benutzerkontaktattribute, wenn sich ein Benutzer anmeldet oder wenn Sie ein Benutzerprofil erstellen. Um Attribute zu überprüfen und Benutzerprofile für die Anmeldung zu bestätigen, sendet Amazon Cognito einen Code oder Link in Nachrichten an Benutzer. Die Benutzer müssen dann den Code in Ihre Benutzeroberfläche eingeben, damit Ihre App sie in einer
ConfirmSignUp
AdminConfirmSignUp
API Oder-Anfrage bestätigen kann.Anmerkung
Sie können auch die von Cognito unterstützte Überprüfung und Bestätigung deaktivieren und authentifizierte API Aktionen oder Lambda-Trigger verwenden, um Attribute zu verifizieren und Benutzer zu bestätigen.
Bei dieser Auswahl sendet Amazon Cognito keine Verifizierungscodes, wenn Benutzer sich anmelden. Aktivieren Sie diese Option, wenn Sie einen benutzerdefinierten Authentifizierungsablauf verwenden, der mindestens eine Kontaktmethode verifiziert, ohne Verifizierungscodes von Amazon Cognito zu nutzen. Sie könnten beispielsweise einen Lambda-Auslöser vor der Anmeldung verwenden, der automatisch E-Mail-Adressen verifiziert, die einer bestimmten Domäne angehören.
Wenn Sie die Kontaktinformationen Ihrer Benutzer nicht verifizieren, können die Benutzer die App möglicherweise nicht verwenden. Beachten Sie, dass die Benutzer die folgenden Aktionen nur mit verifizierten Kontaktinformationen ausführen können:
-
Passwörter zurücksetzen — Wenn ein Benutzer eine Option in Ihrer App auswählt, die die
ForgotPassword
API Aktion aufruft, sendet Amazon Cognito ein temporäres Passwort an die E-Mail-Adresse oder Telefonnummer des Benutzers. Amazon Cognito sendet dieses Kennwort nur, wenn der Benutzer über mindestens eine verifizierte Kontaktmethode verfügt. -
Anmeldung mit einer E-Mail-Adresse oder Telefonnummer als Alias – Wenn Sie den Benutzerpool so konfigurieren, dass diese Alias zulässig sind, kann ein Benutzer sich nur mit einem Alias anmelden, wenn der Alias verifiziert wurde. Weitere Informationen finden Sie unter Anpassen von Anmeldeattributen.
-
-
Wählen Sie Ihre zu überprüfenden Attribute aus:
- SMSNachricht senden, Telefonnummer verifizieren
-
Amazon Cognito sendet einen Bestätigungscode in einer SMS Nachricht, wenn sich der Benutzer anmeldet. Wählen Sie diese Option, wenn Sie in der Regel über SMS Nachrichten mit Ihren Benutzern kommunizieren. Verifizierte Telefonnummern verwenden Sie beispielsweise zum Senden von Lieferbenachrichtigungen, Terminbestätigungen oder Warnungen. Benutzertelefonnummern sind das verifizierte Attribut, wenn Konten bestätigt werden. Sie müssen zusätzliche Maßnahmen ergreifen, um die E-Mail-Adressen der Benutzer zu überprüfen und mit ihnen zu kommunizieren.
- E-Mail-Nachricht senden, E-Mail-Adresse überprüfen
-
Amazon Cognito sendet einen Verifizierungscode per E-Mail, wenn der Benutzer sich anmeldet. Wählen Sie diese Option aus, wenn Sie mit Ihren Benutzern in der Regel über E-Mail kommunizieren. Sie benötigen verifizierte E-Mail-Adressen zum Beispiel, wenn Sie Abrechnungen, Bestellübersichten oder Sonderangebote senden. Benutzertelefonnummern sind das verifizierte Attribut, wenn Konten bestätigt werden. Sie müssen zusätzliche Maßnahmen ergreifen, um die Telefonnummern der Benutzer zu überprüfen und mit ihnen zu kommunizieren.
- SMSNachricht senden, wenn die Telefonnummer verfügbar ist, andernfalls senden Sie eine E-Mail-Nachricht
-
Wählen Sie diese Option aus, wenn es nicht erforderlich ist, dass alle Benutzer über dieselbe verifizierte Kontaktmethode verfügen. In diesem Fall könnte die Anmeldeseite in Ihrer App die Benutzer dazu auffordern, nur ihre bevorzugte Kontaktmethode zu verifizieren. Beim Übermitteln eines Verifizierungscodes sendet Amazon Cognito den Code an die Kontaktmethode, die in der
SignUp
-Anforderung von Ihrer App bereitgestellt wird. Wenn ein Benutzer eine E-Mail-Adresse und eine Telefonnummer angibt und die App beide Kontaktmethoden in derSignUp
-Anforderung übermittelt, sendet Amazon Cognito nur einen Verifizierungscode an die Telefonnummer.Wählen Sie diese Option aus, um festzulegen, dass die Benutzer sowohl eine E-Mail-Adresse als auch eine Telefonnummer verifizieren müssen. Amazon Cognito verifiziert eine Kontaktmethode, wenn sich der Benutzer anmeldet. Die App verifiziert die andere Kontaktmethode, nachdem sich der Benutzer angemeldet hat. Weitere Informationen finden Sie unter Wenn die Benutzer sowohl E-Mail-Adressen als auch Telefonnummern bestätigen müssen.
-
Wählen Sie Save Changes (Änderungen speichern).
Authentifizierungsablauf mit Verifizierung per E-Mail oder Telefon
Wenn der Benutzerpool erfordert, dass die Benutzer ihre Kontaktinformationen verifizieren, muss Ihre Anwendung den folgenden Ablauf unterstützen, wenn sich ein Benutzer anmeldet:
-
Ein Benutzer registriert sich in Ihrer App, indem er einen Benutzernamen, Telefonnummer und/oder E-Mail-Adresse und möglicherweise auch andere Attribute eingibt.
-
Die Amazon-Cognito-Service erhält die Registrierungs-Anforderung von der App. Nachdem überprüft wurde, ob die Anfrage alle für die Registrierung erforderlichen Attribute enthält, schließt der Dienst den Anmeldevorgang ab und sendet einen Bestätigungscode an das Telefon (in einer SMS Nachricht) oder E-Mail des Benutzers. Der Code ist 24 Stunden gültig
-
Der Service gibt der App zurück, dass die Registrierung abgeschlossen ist und die Bestätigung des Benutzerkontos noch ansteht. Die Antwort enthält Informationen darüber, wohin der Bestätigungscode gesendet wurde. An diesem Punkt ist das Benutzerkonto in einem unbestätigten Status, und die E-Mail-Adresse und Telefonnummer des Benutzers sind noch nicht verifiziert.
-
Die App kann jetzt den Benutzer dazu auffordern, den Bestätigungscode einzugeben. Der Benutzer muss den Code nicht sofort eingeben. Er kann sich jedoch erst anmelden, nachdem er den Bestätigungscode eingegeben hat.
-
Der Benutzer gibt den Bestätigungscode in die App ein.
-
Die App ruft
ConfirmSignUp
auf und sendet den Code an den Amazon-Cognito-Service, welcher den Code verifiziert. Wenn der Code korrekt ist, wird das Konto des Benutzers bestätigt. Nach erfolgreicher Bestätigung des Benutzerkontos markiert der Amazon-Cognito-Service automatisch das zur Bestätigung verwendete Attribut (E-Mail-Adresse oder Telefonnummer) als verifiziert. Sofern der Wert dieses Attributs nicht geändert wird, muss der Benutzer es nicht erneut verifizieren. -
An diesem Punkt ist das Benutzerkonto in einem bestätigten Status, und der Benutzer kann sich anmelden.
Wenn die Benutzer sowohl E-Mail-Adressen als auch Telefonnummern bestätigen müssen
Amazon Cognito verifiziert nur eine Kontaktmethode, wenn sich ein Benutzer anmeldet. In Fällen, in denen Amazon Cognito zwischen der Verifizierung einer E-Mail-Adresse oder Telefonnummer wählen muss, entscheidet sich Amazon Cognito dafür, die Telefonnummer zu verifizieren, indem es einen Bestätigungscode per SMS Nachricht sendet. Wenn Sie beispielsweise den Benutzerpool so konfigurieren, dass Benutzern die Verifizierung über die E-Mail-Adresse oder Telefonnummer gestattet ist und wenn Ihre App beide Attribute bei der Anmeldung übermittelt, verifiziert Amazon Cognito nur die Telefonnummer. Nachdem ein Benutzer seine Telefonnummer verifiziert hat, setzt Amazon Cognito den Status des Benutzers auf CONFIRMED
und der Benutzer darf sich bei der App anmelden.
Nachdem der Benutzer angemeldet ist, kann die App optional die Verifizierung der während der Anmeldung nicht verifizierten Kontaktmethode bereitstellen. Um diese zweite Methode zu verifizieren, ruft Ihre App die Aktion auf VerifyUserAttribute
API. Beachten Sie, dass diese Aktion einen AccessToken
-Parameter erfordert und Amazon Cognito nur authentifizierten Benutzern Zugriff auf Token bietet. Aus diesem Grund können Sie die zweite Kontaktmethode erst verifizieren, nachdem der Benutzer sich angemeldet hat.
Wenn es erforderlich ist, dass die Benutzer sowohl E-Mail-Adressen als auch Telefonnummern verifizieren, führen Sie die folgenden Schritte aus:
-
Konfigurieren Sie den Benutzerpool so, dass Benutzern die Verifizierung über die E-Mail-Adresse oder Telefonnummern gestattet ist.
-
Fordern Sie im Anmeldungsfluss für die App, dass die Benutzer eine E-Mail-Adresse und eine Telefonnummer angeben müssen. Rufen Sie die
SignUp
APIAktion auf und geben Sie die E-Mail-Adresse und Telefonnummer für denUserAttributes
Parameter an. An diesem Punkt sendet Amazon Cognito einen Verifizierungscode an das Telefon des Benutzers. -
Zeigen Sie in der App-Oberfläche eine Bestätigungsseite an, auf der der Benutzer den Verifizierungscode eingibt. Bestätigen Sie den Benutzer, indem Sie die
ConfirmSignUp
APIAktion aufrufen. An diesem Punkt ist der Status des BenutzersCONFIRMED
. Die Telefonnummer des Benutzers wurde verifiziert, jedoch nicht die E-Mail-Adresse. -
Rufen Sie die Anmeldeseite auf und authentifizieren Sie den Benutzer, indem Sie die
InitiateAuth
APIAktion aufrufen. Nachdem der Benutzer authentifiziert wurde, gibt Amazon Cognito ein Zugriffstoken an die App zurück. -
Rufen Sie die Aktion auf
GetUserAttributeVerificationCode
API. Geben Sie in der Anforderung die folgenden Parameter an:-
AccessToken
– Das von Amazon Cognito bei der Anmeldung des Benutzers zurückgegebene Zugriffstoken. -
AttributeName
– Legen Sie"email"
als Attributwert fest.
Amazon Cognito sendet einen Verifizierungscode an die E-Mail-Adresse des Benutzers.
-
-
Zeigen Sie eine Bestätigungsseite an, auf der der Benutzer den Verifizierungscode eingibt. Wenn der Benutzer den Code einreicht, rufen Sie die
VerifyUserAttribute
APIAktion auf. Geben Sie in der Anforderung die folgenden Parameter an:-
AccessToken
– Das von Amazon Cognito bei der Anmeldung des Benutzers zurückgegebene Zugriffstoken. -
AttributeName
– Legen Sie"email"
als Attributwert fest. -
Code
– Der Verifizierungscode, den der Benutzer eingegeben hat.
Die E-Mail-Adresse wurde jetzt verifiziert.
-
Benutzern erlauben, sich in der Anwendung anzumelden, sie aber als Benutzerpool-Administrator bestätigen
Möglicherweise möchten Sie nicht, dass Ihr Benutzerpool automatisch Bestätigungsnachrichten an Ihren Benutzerpool sendet, möchten aber dennoch jedem ermöglichen, sich für ein Konto anzumelden. Dieses Modell bietet beispielsweise Spielraum für die manuelle Überprüfung neuer Anmeldeanfragen sowie für die Batch-Validierung und Bearbeitung von Anmeldungen. Sie können neue Benutzerkonten in der Amazon Cognito Cognito-Konsole oder mit dem Vorgang IAM -authenticated API bestätigen. AdminConfirmSignUp Sie können Benutzerkonten als Administrator bestätigen, unabhängig davon, ob Ihr Benutzerpool Bestätigungsnachrichten sendet oder nicht.
Mit dieser Technik können Sie die Self-Service-Registrierung eines Benutzers nur bestätigen. Um einen Benutzer zu bestätigen, den Sie als Administrator erstellen, erstellen Sie eine AdminSetUserPasswordAPIAnfrage mit Permanent
der Einstellung auf. True
-
Ein Benutzer registriert sich in Ihrer App, indem er einen Benutzernamen, Telefonnummer und/oder E-Mail-Adresse und möglicherweise auch andere Attribute eingibt.
-
Die Amazon-Cognito-Service erhält die Registrierungs-Anforderung von der App. Nachdem Sie verifiziert haben, dass die Anforderung alle für die Anmeldung benötigten Attribute enthält, schließt der Service den Anmeldevorgang ab und gibt an die App zurück, dass die Anmeldung abgeschlossen ist, aber noch nicht bestätigt wurde. An diesem Punkt befindet sich das Benutzerkonto in einem unbestätigten Status. Der Benutzer kann nicht anmelden, bis das Konto bestätigt ist.
-
Bestätigen Sie das Konto des Benutzers. Sie müssen sich bei der anmelden AWS Management Console oder Ihre API Anfrage mit den AWS Anmeldeinformationen unterschreiben, um das Konto zu bestätigen.
-
Um einen Benutzer in der Amazon-Cognito-Konsole zu bestätigen, navigieren Sie zur Registerkarte Benutzer, wählen Sie den Benutzer aus, den Sie bestätigen möchten, und wählen Sie im Menü Aktionen die Option Bestätigen aus.
-
Um einen Benutzer im AWS API oder zu bestätigenCLI, erstellen Sie eine AdminConfirmSignUpAPIAnfrage oder admin-confirm-sign-upin der AWS CLI.
-
-
An diesem Punkt ist das Benutzerkonto in einem bestätigten Status, und der Benutzer kann sich anmelden.
Berechnen von Werten für geheime Hashes
Es ist eine bewährte Methode, Ihrem vertraulichen App-Client einen geheimen Client-Schlüssel zuzuweisen. Wenn Sie Ihrem App-Client ein Client-Geheimnis zuweisen, müssen Ihre Amazon Cognito API Cognito-Benutzerpool-Anfragen einen Hash enthalten, der das geheime Client-Geheimnis im Anfragetext enthält. Um zu überprüfen, ob Sie den geheimen Clientschlüssel für die API Operationen in den folgenden Listen kennen, verknüpfen Sie den geheimen Clientschlüssel mit Ihrer App-Client-ID und dem Benutzernamen Ihres Benutzers und kodieren Sie dann diese Zeichenfolge mit Base64.
Wenn Ihre App Benutzer bei einem Client anmeldet, der über einen geheimen Hash verfügt, können Sie den Wert eines beliebigen Benutzerpool-Anmeldeattributs als Benutzernamenselement des geheimen Hashs verwenden. Wenn Ihre App im Rahmen eines Authentifizierungsvorgangs mit REFRESH_TOKEN_AUTH
neue Token anfordert, hängt der Wert des Benutzernamenselements von Ihren Anmeldeattributen ab. Wenn Ihr Benutzerpool nicht username
als Anmeldeattribut hat, legen Sie den Wert für den geheimen Hash-Benutzernamen fest, der sich aus dem sub
-Anspruch des Benutzers aus seinem Zugriffs- oder ID-Token ergibt. Wenn es sich bei username
um ein Anmeldeattribut handelt, legen Sie den Wert für den geheimen Hash-Benutzernamen aus dem username
-Anspruch fest.
Die folgenden Amazon Cognito Cognito-Benutzerpools APIs akzeptieren einen geheimen Client-Hashwert in einem Parameter. SecretHash
Darüber hinaus APIs akzeptieren die folgenden Benutzer einen geheimen Client-Hashwert in einem SECRET_HASH
Parameter, entweder in Authentifizierungsparametern oder in einer Challenge-Antwort.
APIOperation | Übergeordneter Parameter für SECRET_HASH |
---|---|
InitiateAuth | AuthParameters |
AdminInitiateAuth | AuthParameters |
RespondToAuthChallenge | ChallengeResponses |
AdminRespondToAuthChallenge | ChallengeResponses |
Der geheime Hashwert ist ein Base-64-codierter Authentifizierungscode für verschlüsselte Hashnachrichten (HMAC), der anhand des geheimen Schlüssels eines Benutzerpool-Clients und des Benutzernamens sowie der Client-ID in der Nachricht berechnet wird. Die folgende Pseudocode zeigt, wie dieser Wert berechnet wird. In diesem Pseudocode HMAC_SHA256
steht er für eine +
Verkettung, für eine Funktion, die mithilfe von Hmac einen HMAC Wert erzeugt, und für eine FunktionSHA256, die eine Base-64-kodierte Version der Base64
Hashausgabe erzeugt.
Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )
Eine ausführliche Übersicht über die Berechnung und Verwendung des SecretHash
Parameters finden Sie unter Wie behebe ich die Fehler „Unable to verify secret hash for client“ in meinen Amazon Cognito Cognito-Benutzerpools API
Sie können die folgenden Codebeispiele in Ihrem serverseitigen Anwendungscode verwenden.
Bestätigen von Benutzerkonten ohne Verifizieren der E-Mail-Adresse oder Telefonnummer
Der Lambda-Auslöser vor der Registrierung kann verwendet werden, um Benutzerkonten bei der Registrierung automatisch zu bestätigen, ohne dass ein Bestätigungscode oder eine Verifizierung der E-Mail-Adresse oder Telefonnummer erforderlich ist. Benutzer, die auf diese Weise bestätigt werden, können sich sofort anmelden, ohne dass Sie einen Code benötigen.
Sie können über diesen Auslöser auch eine E-Mail-Adresse oder Telefonnummer als verifiziert markieren.
Anmerkung
Dieser Ansatz ist praktisch, um Benutzern bei den ersten Schritten zu helfen, doch wir empfehlen die automatische Verifizierung von mindestens E-Mail-Adresse oder Telefonnummer. Andernfalls kann der Benutzer nicht wiederhergestellt werden, wenn er sein Passwort vergisst.
Wenn Sie es nicht erfordern, dass der Benutzer bei der Registrierung einen Bestätigungscode erhält und eingibt und Sie E-Mail-Adresse und Telefonnummer nicht im Lambda-Auslöser vor der Registrierung automatisch verifizieren, riskieren Sie, dass Sie keine verifizierte E-Mail-Adresse oder Telefonnummer für das Benutzerkonto haben. Der Benutzer kann die E-Mail-Adresse oder Telefonnummer zu einem späteren Zeitpunkt verifizieren. Wenn der Benutzer jedoch sein Passwort vergisst und keine verifizierte E-Mail-Adresse oder Telefonnummer hat, wird der Benutzer aus dem Konto gesperrt, da der Ablauf für „Passwort vergessen“ eine verifizierte E-Mail-Adresse oder Telefonnummer erfordert, um einen Verifizierungscode an den Benutzer zu senden.
Verifizieren, wenn Benutzer ihre E-Mail-Adresse oder Telefonnummer ändern
Wenn ein Benutzer seine E-Mail-Adresse oder Telefonnummer in Ihrer App aktualisiert, sendet Amazon Cognito sofort eine Nachricht mit einem Bestätigungscode an einen Benutzer, wenn Sie Ihren Benutzerpool so konfiguriert haben, dass dieses Attribut automatisch verifiziert wird. Der Benutzer muss dann den Code aus der Bestätigungsnachricht an Ihre App weitergeben. Ihre App sendet dann den Code in einer VerifyUserAttributeAPIAnfrage, um die Überprüfung des neuen Attributwerts abzuschließen.
Wenn Ihr Benutzerpool nicht verlangt, dass Benutzer eine aktualisierte E-Mail-Adresse oder Telefonnummer bestätigen, ändert Amazon Cognito sofort den Wert eines aktualisierten Attributs email
oder phone_number
und markiert das Attribut als nicht verifiziert. Mit einer nicht verifizierten E-Mail oder Telefonnummer kann sich Ihr Benutzer nicht anmelden. Sie müssen die Verifizierung des aktualisierten Wertes abschließen, bevor sie dieses Attribut als Anmeldealias verwenden können.
Wenn Ihr Benutzerpool erfordert, dass Benutzer eine aktualisierte E-Mail-Adresse oder Telefonnummer verifizieren, lässt Amazon Cognito das Attribut verifiziert und auf seinen ursprünglichen Wert festgelegt, bis Ihr Benutzer den neuen Attributwert bestätigt. Wenn das Attribut ein Alias für die Anmeldung ist, kann sich Ihr Benutzer mit dem ursprünglichen Attributwert anmelden, bis die Verifizierung das Attribut in den neuen Wert ändert. Weitere Informationen darüber, wie Sie Ihren Benutzerpool so konfigurieren, dass Benutzer aktualisierte Attribute verifizieren, finden Sie unter Konfigurieren der Verifizierung per E-Mail und Telefon.
Sie können einen kundenspezifischen Message-Lambda-Auslöser verwenden, um die Bestätigungsnachricht anzupassen. Weitere Informationen finden Sie unter Lambda-Auslöser für benutzerdefinierte Nachrichten. Wenn die E-Mail-Adresse oder Telefonnummer des Benutzers nicht verifiziert ist, sollte Ihre App den Benutzer darüber informieren, dass er das Attribut verifizieren muss, und eine Schaltfläche oder einen Link bereitstellen, damit Benutzer ihre neue E-Mail-Adresse oder Telefonnummer verifizieren können.
Bestätigungs- und Verifizierungsprozesse für Benutzerkonten, die durch Administratoren und Entwickler erstellt wurden
Benutzerkonten, die von einem Administrator oder Entwickler erstellt werden, haben bereits den Status "Bestätigt", sodass die Benutzer keinen Bestätigungscode eingeben müssen. Die Einladungsnachricht sendet, die der Amazon-Cognito-Service an diese Benutzer sendet, schließt den Benutzernamen und ein temporäres Kennwort ein. Der Benutzer muss das Passwort ändern, bevor er sich anmelden kann. Weitere Informationen finden Sie unter Passen Sie E-Mails und Nachrichten an SMS in Erstellen von Benutzerkonten als Administrator und dem Custom Message-Auslöser in Anpassen von Benutzerpool-Workflows mit Lambda-Auslösern.
Bestätigungs- und Verifizierungsprozesse für importierte Benutzerkonten
Benutzerkonten, die mithilfe der Benutzerimportfunktion im AWS Management Console,CLI, oder API (sieheBenutzer aus einer CSV Datei in Benutzerpools importieren) erstellt wurden, befinden sich bereits im Status „Bestätigt“, sodass Benutzer keinen Bestätigungscode eingeben müssen. Es wird keine Einladungsnachricht gesendet. Bei importierten Benutzerkonten müssen Benutzer jedoch zunächst einen Code anfordern, indem sie den anrufen, ForgotPassword
API und dann ConfirmForgotPassword
API vor der Anmeldung mit dem bereitgestellten Code ein Kennwort erstellen, indem sie anrufen. Weitere Informationen finden Sie unter Von importierten Benutzer verlangen, dass sie ihre Passwörter zurücksetzen.
Die E-Mail-Adresse oder Telefonnummer des Benutzers muss als verifiziert markiert werden, wenn das Benutzerkonto importiert wird, damit beim Anmelden des Benutzers keine Verifizierung verlangt wird.
Senden von E-Mails beim Testen der App
Amazon Cognito sendet E-Mail-Nachrichten an Ihre Benutzer, wenn sie ihre Konten in der Client-App für Ihren Benutzerpool erstellen und verwalten. Wenn Sie den Benutzerpool so konfigurieren, dass die E-Mail-Verifizierung erforderlich ist, sendet Amazon Cognito in folgenden Fällen eine E-Mail:
-
Ein Benutzer meldet sich an.
-
Ein Benutzer ändert seine E-Mail-Adresse.
-
Ein Benutzer führt eine Aktion aus, die die
ForgotPassword
API Aktion aufruft. -
Sie erstellen ein Benutzerkonto als Administrator.
Abhängig von der Aktion, die die E-Mail initiiert, enthält die E-Mail einen Verifizierungscode oder ein temporäres Passwort. Ihre Benutzer müssen diese E-Mails empfangen und die Nachricht verstehen. Andernfalls können sie sich u. U. nicht anmelden und Ihre App verwenden.
Um sicherzustellen, dass E-Mails erfolgreich gesendet werden und die Nachricht korrekt ist, testen Sie die Aktionen in der App, die das Senden von E-Mails durch Amazon Cognito initiieren. Mithilfe der Anmeldeseite in Ihrer App oder mithilfe der SignUp
API Aktion können Sie beispielsweise eine E-Mail initiieren, indem Sie sich mit einer Test-E-Mail-Adresse anmelden. Wenn Sie auf diese Weise einen Test ausführen, beachten Sie Folgendes:
Wichtig
Wenn Sie eine E-Mail-Adresse verwenden, um Aktionen zu testen, die E-Mails von Amazon Cognito initiieren, verwenden Sie keine gefälschte E-Mail-Adresse (ohne Postfach). Verwenden Sie eine echte E-Mail-Adresse, die die E-Mail von Amazon Cognito empfängt, ohne dass eine permanente Unzustellbarkeit auftritt.
Eine permanente Unzustellbarkeit kommt zustande, wenn Amazon Cognito die E-Mail nicht an das Postfach des Empfängers liefern kann. Wenn das Postfach nicht vorhanden ist, ist das immer der Fall.
Amazon Cognito begrenzt die Anzahl der E-Mails, die von AWS Konten gesendet werden können, bei denen es ständig zu Hard-Bounces kommt.
Wenn Sie Aktionen testen, die E-Mails initiieren, verwenden Sie eine der folgenden E-Mail-Adressen, um permanente Unzustellbarkeiten zu vermeiden:
-
Eine Adresse für ein E-Mail-Konto, das Sie besitzen und für Tests verwenden. Wenn Sie Ihre eigene E-Mail-Adresse verwenden, erhalten Sie die E-Mail, die Amazon Cognito sendet. Mit dieser E-Mail können Sie den Verifizierungscode zum Testen der Anmeldung in Ihrer App nutzen. Wenn Sie die E-Mail-Nachricht für den Benutzerpool angepasst haben, können Sie überprüfen, ob Ihre Anpassungen korrekt dargestellt werden.
-
Die Adresse des Postfachsimulators, success@simulator.amazonses.com. Wenn Sie die Simulatoradresse verwenden, sendet Amazon Cognito die E-Mail erfolgreich. Sie können sie aber nicht ansehen. Diese Option ist nützlich, wenn Sie den Verifizierungscode nicht benötigen und die E-Mail-Nachricht nicht überprüfen müssen.
-
Die Adresse des Postfachsimulators, der eine beliebige Bezeichnung hinzugefügt wird, zum Beispiel success+user1@simulator.amazonses.com oder success+user2@simulator.amazonses.com. Amazon Cognito sendet diese Adressen erfolgreich per E-Mail, aber Sie können die gesendeten E-Mails nicht anzeigen. Diese Option ist nützlich, wenn Sie den Anmeldevorgang durch Hinzufügen mehrerer Testbenutzer zum Benutzerpool testen möchten und jeder Testbenutzer über eine eindeutige E-Mail-Adresse verfügt.