View a markdown version of this page

Verwalten Sie Authentifizierungsmethoden in AWS SDKs - 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.

Verwalten Sie Authentifizierungsmethoden in AWS SDKs

Benutzer in Amazon Cognito Cognito-Benutzerpools können sich mit einer Vielzahl von Optionen oder Faktoren für die Erstanmeldung anmelden. Bei einigen Faktoren können Benutzer anschließend eine Multi-Faktor-Authentifizierung (MFA) durchführen. Zu diesen ersten Faktoren gehören Benutzername und Passwort, Einmalpasswort, Hauptschlüssel und benutzerdefinierte Authentifizierung. Weitere Informationen finden Sie unter Authentifizierungsabläufe. Wenn Ihre Anwendung über integrierte Benutzeroberflächenkomponenten verfügt und ein AWS SDK-Modul importiert, müssen Sie eine Anwendungslogik für die Authentifizierung erstellen. Sie müssen eine von zwei Hauptmethoden und aus dieser Methode die Authentifizierungsmechanismen auswählen, die Sie implementieren möchten.

Sie können eine clientbasierte Authentifizierung implementieren, bei der Ihre Anwendung oder Ihr Client den Authentifizierungstyp im Voraus deklariert. Ihre andere Option ist die wahlbasierte Authentifizierung, bei der Ihre App einen Benutzernamen erfasst und die verfügbaren Authentifizierungstypen für Benutzer anfordert. Sie können diese Modelle je nach Ihren Anforderungen zusammen in derselben Anwendung oder aufgeteilt auf mehrere App-Clients implementieren. Jede Methode verfügt über einzigartige Funktionen, z. B. benutzerdefinierte Authentifizierung bei clientbasierter Authentifizierung und kennwortlose Authentifizierung bei wahlbasierter Authentifizierung.

In maßgeschneiderten Anwendungen, die die Authentifizierung mithilfe der AWS SDK-Implementierung der Benutzerpool-API durchführen, müssen Sie Ihre API-Anfragen so strukturieren, dass sie der Benutzerpoolkonfiguration, der App-Client-Konfiguration und den clientseitigen Einstellungen entsprechen. Eine InitiateAuth Sitzung, die mit einem of beginnt, beginnt mit AuthFlow der wahlbasierten AuthentifizierungUSER_AUTH. Amazon Cognito antwortet auf Ihre API mit der Aufforderung, entweder eine bevorzugte Authentifizierungsmethode oder eine Liste von Auswahlmöglichkeiten auszuwählen. Eine Sitzung, die mit oder beginnt, CUSTOM_AUTH geht direkt AuthFlow zur benutzerdefinierten Authentifizierung mit Lambda-Triggern über.

Einige Authentifizierungsmethoden sind auf einen der beiden Flow-Typen festgelegt, und einige Methoden sind in beiden verfügbar.

Choice-based authentication

Ihre Anwendung kann bei der wahlbasierten Authentifizierung die folgenden Authentifizierungsmethoden anfordern. Deklarieren Sie diese Optionen im PREFERRED_CHALLENGE Parameter von InitiateAuthoder AdminInitiateAuthoder im ChallengeName Parameter von RespondToAuthChallengeoder. AdminRespondToAuthChallenge

Wichtig

Choice-based Für die Anmeldung sind zwei Voraussetzungen erforderlich. Ihr App-Client muss den ALLOW_USER_AUTH Authentifizierungsablauf aktivieren, und die Methoden ohne Passwort und Hauptschlüssel (EMAIL_OTP,SMS_OTP,WEB_AUTHN) erfordern einen Benutzerpool im Featureplan Essentials oder Plus — sie sind auf der Lite-Stufe nicht verfügbar. PASSWORD(einschließlich SRP) ist in allen Funktionsplänen verfügbar. Wenn Ihren Benutzern keine auswahlbasierte Methode angezeigt wird, überprüfen Sie sowohl den Ablauf zwischen der App und dem Client als auch den Funktionsplan, bevor Sie die Fehlerbehebung fortsetzen.

Informationen zu diesen Optionen in ihrem API-Kontext finden Sie unter. ChallengeName RespondToAuthChallenge

Choice-based Bei der Anmeldung wird als Antwort auf Ihre erste Anfrage eine Aufforderung ausgegeben. Bei dieser Aufforderung wird entweder überprüft, ob eine angeforderte Option verfügbar ist, oder es wird eine Liste der verfügbaren Optionen bereitgestellt. Ihre Anwendung kann diese Optionen Benutzern anzeigen, die dann Anmeldeinformationen für ihre bevorzugte Anmeldemethode eingeben und mit der Authentifizierung bei Challenge-Antworten fortfahren.

In Ihrem Authentifizierungsablauf stehen Ihnen die folgenden auswahlbasierten Optionen zur Verfügung. Alle Anfragen dieses Typs erfordern, dass Ihre App zuerst einen Benutzernamen erfasst oder ihn aus einem Cache abruft.

  1. USERNAMENur Optionen mit AuthParameters oder anfordern. Amazon Cognito gibt eine SELECT_CHALLENGE Herausforderung zurück. Von dort aus kann Ihre Anwendung den Benutzer auffordern, eine Herausforderung auszuwählen und diese Antwort an Ihren Benutzerpool zurückzugeben.

  2. Fordere eine bevorzugte Herausforderung mit AuthParameters von PREFERRED_CHALLENGE und den Parametern deiner bevorzugten Herausforderung an, falls vorhanden. Wenn Sie beispielsweise ein PREFERRED_CHALLENGE of anfordernPASSWORD_SRP, müssen Sie auch angebenSRP_A. Wenn Ihr Benutzer, Ihr Benutzerpool und Ihr App-Client alle für die bevorzugte Herausforderung konfiguriert sind, reagiert Amazon Cognito mit dem nächsten Schritt in dieser Herausforderung, z. B. PASSWORD_VERIFIER im PASSWORD_SRP Flow oder CodeDeliveryDetailsin den EMAIL_OTP SMS_OTP and-Flows. Wenn die bevorzugte Herausforderung nicht verfügbar ist, antwortet Amazon Cognito mit SELECT_CHALLENGE einer Liste verfügbarer Herausforderungen.

  3. Melden Sie die Benutzer zuerst an und fordern Sie dann ihre bevorzugten Authentifizierungsoptionen an. Eine GetUserAuthFactorsAnfrage mit dem Zugriffstoken eines angemeldeten Benutzers gibt seine verfügbaren auswahlbasierten Authentifizierungsfaktoren und seine MFA-Einstellungen zurück. Mit dieser Option kann sich ein Benutzer zuerst mit Benutzername und Passwort anmelden und dann eine andere Form der Authentifizierung aktivieren. Sie können diesen Vorgang auch verwenden, um zusätzliche Optionen für einen Benutzer zu überprüfen, der sich mit einer bevorzugten Herausforderung angemeldet hat.

Um Ihren App-Client für die wahlbasierte Authentifizierung zu konfigurieren, fügen Sie weitere Informationen ALLOW_USER_AUTH zu den zulässigen Authentifizierungsabläufen hinzu. Sie müssen auch die auswahlbasierten Faktoren auswählen, die Sie in Ihrer Benutzerpool-Konfiguration zulassen möchten. Der folgende Prozess veranschaulicht, wie Sie wahlbasierte Authentifizierungsfaktoren auswählen.

Amazon Cognito console
So konfigurieren Sie wahlbasierte Authentifizierungsoptionen in einem Benutzerpool
  1. Melden Sie sich bei der Amazon Cognito-Benutzerpools-Konsole an AWS und navigieren Sie zur Amazon Cognito Cognito-Benutzerpools-Konsole. Wählen Sie einen Benutzerpool oder erstellen Sie einen neuen.

  2. Wählen Sie in Ihrer Benutzerpool-Konfiguration das Sign-inMenü aus. Suchen Sie nach Optionen für die wahlbasierte Anmeldung und wählen Sie Bearbeiten.

  3. Die Option Passwort ist immer verfügbar. Dies beinhaltet die PASSWORD_SRP Flüsse PASSWORD und. Wählen Sie die zusätzlichen Optionen aus, die Sie zu den Optionen Ihrer Benutzer hinzufügen möchten. Sie können den Hauptschlüssel fürWEB_AUTHN, das Einmalpasswort für EMAIL_OTP E-Mail-Nachrichten und das Einmalpasswort für SMS_OTP SMS-Nachrichten hinzufügen.

  4. Wählen Sie Änderungen speichern aus.

API/SDK

Im folgenden Teil CreateUserPool- oder UpdateUserPoolAnforderungstext werden alle verfügbaren Optionen für die wahlbasierte Authentifizierung konfiguriert.

"Policies": { "SignInPolicy": { "AllowedFirstAuthFactors": [ "PASSWORD", "WEB_AUTHN", "EMAIL_OTP", "SMS_OTP" ] } },

Client-based authentication

Client-based Die Authentifizierung unterstützt die folgenden Authentifizierungsabläufe. Deklarieren Sie diese Optionen im AuthFlow Parameter von InitiateAuthoder AdminInitiateAuth.

  1. USER_PASSWORD_AUTH und ADMIN_USER_PASSWORD_AUTH

    Sign-in mit persistenten Passwörtern

    MFA nach der Anmeldung

    Dieser Authentifizierungsablauf entspricht PASSWORD der wahlbasierten Authentifizierung.

  2. USER_SRP_AUTH

    Sign-in mit dauerhaften Passwörtern und sicherer Nutzlast

    MFA nach der Anmeldung

    Dieser Authentifizierungsablauf entspricht der wahlbasierten PASSWORD_SRP Authentifizierung.

  3. REFRESH_TOKEN_AUTH

    Tokens aktualisieren

    Dieser Authentifizierungsablauf ist nur bei der clientbasierten Authentifizierung verfügbar.

  4. CUSTOM_AUTH

    Benutzerdefinierte Authentifizierung

    Dieser Authentifizierungsablauf ist nur bei der clientbasierten Authentifizierung verfügbar.

Bei der clientbasierten Authentifizierung geht Amazon Cognito davon aus, dass Sie festgelegt haben, wie sich Ihr Benutzer authentifizieren möchte, bevor er mit den Authentifizierungsabläufen beginnt. Die Logik zur Bestimmung des Anmeldefaktors, den ein Benutzer angeben möchte, muss anhand von Standardeinstellungen oder benutzerdefinierten Eingabeaufforderungen festgelegt und dann in der ersten Anfrage an Ihren Benutzerpool deklariert werden. Die InitiateAuth Anfrage deklariert beispielsweise eine AnmeldungAuthFlow, die direkt einer der aufgelisteten Optionen entspricht. USER_SRP_AUTH Mit dieser Deklaration enthält die Anforderung auch die Parameter für den Beginn der Authentifizierung, z. B. USERNAMESECRET_HASH, und. SRP_A Amazon Cognito könnte auf diese Anfrage mit zusätzlichen Herausforderungen reagieren, z. B. PASSWORD_VERIFIER für SRP oder SOFTWARE_TOKEN_MFA für die Kennwortanmeldung mit TOTP MFA.

Um Ihren App-Client für die clientbasierte Authentifizierung zu konfigurieren, fügen Sie alle anderen Authentifizierungsabläufe als ALLOW_USER_AUTH die zulässigen Authentifizierungsabläufe hinzu. Beispiele sindALLOW_USER_PASSWORD_AUTH,ALLOW_CUSTOM_AUTH,ALLOW_REFRESH_TOKEN_AUTH. Um clientbasierte Authentifizierungsabläufe zuzulassen, ist keine zusätzliche Benutzerpoolkonfiguration erforderlich.

Step-up Authentifizierung mit dem USER_AUTH-Flow

Sie fordern die Step-up-Authentifizierung im vorhandenen USER_AUTH Flow mit den Operationen und an. InitiateAuthRespondToAuthChallenge Es gibt keine neuen API-Operationen. Die entsprechenden serverseitigen Operationen AdminInitiateAuthund AdminRespondToAuthChallengeunterstützen dieselben Step-Up-Parameter und dasselbe Verhalten und AdminInitiateAuth können optional auch ein Zugriffstoken verwenden. Dieser Ablauf funktioniert sowohl, wenn ein Benutzer über ein vorhandenes ID-Token verfügt, als auch, wenn sich ein Benutzer zum ersten Mal gegenüber einer Zielebene authentifiziert. Weitere Informationen zum Flow finden Sie unterEin Beispiel für eine Authentifizierungssitzung.

Weitere Informationen zu ACR-Werten und AMR-Werten finden Sie unter. Authentifizierungsstufen mit ACR- und AMR-Ansprüchen

Anmerkung

Step-up Für die Authentifizierung ist der Featureplan Essentials oder Plus erforderlich.

Sie übergeben die Step-up-Parameter in der AuthParameters Map Ihrer InitiateAuth (oderAdminInitiateAuth) Anfrage: das neue TARGET_ACR_VALUES undMAX_AGE, zusammen mit den vorhandenen USERNAMEACCESS_TOKEN, undPREFERRED_CHALLENGE. Die Definition und Einschränkungen der einzelnen Parameter finden Sie unter InitiateAuthund AdminInitiateAuthin der Amazon Cognito Cognito-API-Referenz für Benutzerpools.

In der folgenden Tabelle wird beschrieben, wie Amazon Cognito auf Kombinationen dieser Parameter reagiert.

Verhalten bei der schrittweisen Authentifizierung von USER_AUTH
Parameters Behavior
TARGET_ACR_VALUESund, mit zufrieden ACCESS_TOKEN MAX_AGE Amazon Cognito führt den Benutzer von den aktuellen Faktoren des Tokens auf die Stufe mit der höchsten erfüllbaren Priorität herauf.
TARGET_ACR_VALUESund ACCESS_TOKEN mit „nicht zufrieden“ MAX_AGE Amazon Cognito authentifiziert den Benutzer von Grund auf bis zur Zielebene.
TARGET_ACR_VALUESohne ACCESS_TOKEN Amazon Cognito authentifiziert den Benutzer von Grund auf bis zur Zielebene.
Keiner der beiden Parameter Der USER_AUTH Flow verhält sich wie ohne Step-up-Authentifizierung.

Beachten Sie das folgende Verhalten, wenn Sie einen Step-up-Authentifizierungsablauf entwerfen.

  • Step-up Authentifizierung ist alles oder nichts. Wenn das Erreichen der Zielstufe mehrere Abfragen erfordert, z. B. ein Passwort und ein TOTP für Stufe 4, und der Benutzer jede Aufforderung nicht besteht, schlägt der Step-up-Versuch vollständig fehl. Amazon Cognito gibt keine Zwischentokens aus.

  • Wenn das vorgestellte Token die angeforderte Stufe bereits erfüllt oder überschreitet, gibt Amazon Cognito einen Fehler zurück, anstatt ein neues Token auszugeben. Dadurch wird verhindert, dass Anwendungen die Step-up-Authentifizierung als Mechanismus zur Token-Aktualisierung verwenden.

  • Der Benutzer muss bereits über die erforderlichen Faktoren verfügen, um eine angeforderte Stufe zu erfüllen. Wenn der Benutzer keine Faktoren konfiguriert hat, um eine angeforderte Zielstufe zu erreichen, gibt Amazon Cognito einen Fehler zurück. Step-upBei der Authentifizierung wird der Benutzer nicht aufgefordert, neue Faktoren einzurichten.

  • MFA ist eine Etage. Wenn die MFA-Einstellungen des Benutzers oder des Benutzerpools MFA erfordern, wird bei der Erstanmeldung diese MFA-Abfrage immer noch erzwungen und veranlasst, auch wenn die Zielstufe niedriger ist und andernfalls keine MFA erforderlich wäre. MFA, zu der der Bedrohungsschutz (erweiterte Sicherheitsfunktionen) auffordert, wird auch bei der ersten Anmeldung durchgesetzt, selbst wenn für die angeforderte ACR-Zielstufe sonst keine MFA erforderlich wäre. TARGET_ACR_VALUESkann eine erforderliche MFA-Aufforderung nicht unterdrücken. Das Ziel kann höchstens beeinflussen, nach welchem der mehreren aktivierten MFA-Faktoren Amazon Cognito fragt. Wenn eine Step-Up-Anforderung für einen Benutzer, der MFA verwenden muss, auf eine niedrigere Ebene abzielt, z. B. Stufe 1, erzwingt Amazon Cognito die erforderliche MFA im Hintergrund. Es leitet den Benutzer nach oben und gibt keinen Fehler zurück.

Für die Anforderung der TARGET_ACR_VALUES Step-up-Authentifizierung mit ist der Featureplan Essentials oder Plus erforderlich. Weitere Informationen finden Sie unter Anforderungen an den Funktionsplan.