View a markdown version of this page

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

Benutzer in Amazon Cognito-Benutzerpools können sich mit einer Vielzahl von Optionen oder Faktoren für die Erstanmeldung anmelden. Bei einigen Faktoren können Benutzer die Multifaktor-Authentifizierung (MFA) nachholen. Zu diesen ersten Faktoren gehören Benutzername und Passwort, Einmalkennwort, 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 anhand 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 die Art der Authentifizierung 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 implementieren oder auf mehrere App-Clients aufteilen. Jede Methode verfügt über einzigartige Funktionen, z. B. benutzerdefinierte Authentifizierung bei clientbasierter Authentifizierung und passwortlose Authentifizierung bei auswahlbasierter Authentifizierung.

In maßgeschneiderten Anwendungen, die die Authentifizierung mit der AWS SDK-Implementierung der Benutzerpool-API durchführen, müssen Sie Ihre API-Anfragen so strukturieren, dass sie mit der Benutzerpoolkonfiguration, der App-Client-Konfiguration und den clientseitigen Einstellungen übereinstimmen. Eine InitiateAuth Sitzung, die mit einem oder beginnt, beginnt mit AuthFlow einer auswahlbasierten USER_AUTH Authentifizierung. Amazon Cognito reagiert auf Ihre API mit der Aufforderung, entweder eine bevorzugte Authentifizierungsmethode oder eine Liste mit Auswahlmöglichkeiten auszuwählen. Eine Sitzung, die mit AuthFlow oder beginnt, CUSTOM_AUTH geht direkt in die benutzerdefinierte 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 InitiateAuth oder AdminInitiateAuth oder im ChallengeName Parameter von RespondToAuthChallenge oder. AdminRespondToAuthChallenge

Informationen zur Überprüfung dieser Optionen in ihrem API-Kontext finden Sie ChallengeName unter RespondToAuthChallenge.

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

In Ihrem Authentifizierungsablauf stehen Ihnen die folgenden wahlbasierten Optionen zur Verfügung. Für alle Anfragen dieses Typs muss Ihre App zuerst einen Benutzernamen erfassen oder ihn aus einem Cache abrufen.

  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ücksenden.

  2. Fordern Sie eine bevorzugte Herausforderung mit AuthParameters oder PREFERRED_CHALLENGE und den Parametern Ihrer bevorzugten Herausforderung an, falls vorhanden. Wenn du zum Beispiel ein PREFERRED_CHALLENGE Von anforderstPASSWORD_SRP, musst du auch Folgendes angebenSRP_A. Wenn Ihr Benutzer, Benutzerpool und App-Client alle für die bevorzugte Herausforderung konfiguriert sind, reagiert Amazon Cognito mit dem nächsten Schritt in dieser Herausforderung, beispielsweise PASSWORD_VERIFIER im PASSWORD_SRP Flow oder CodeDeliveryDetails in den SMS_OTP Flows EMAIL_OTP und. Wenn die bevorzugte Herausforderung nicht verfügbar ist, reagiert Amazon Cognito mit SELECT_CHALLENGE einer Liste der verfügbaren Herausforderungen.

  3. Melden Sie Benutzer zuerst an und fordern Sie dann ihre wahlbasierten Authentifizierungsoptionen an. Eine GetUserAuthFactors Anfrage mit dem Zugriffstoken eines angemeldeten Benutzers gibt seine verfügbaren wahlbasierten 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 ihn ALLOW_USER_AUTH zu den zulässigen Authentifizierungsabläufen hinzu. Sie müssen auch die auswahlbasierten Faktoren auswählen, die Sie in Ihrer Benutzerpoolkonfiguration zulassen möchten. Das folgende Verfahren 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 AWS Cognito-Benutzerpools-Konsole an und navigieren Sie zur Amazon Cognito-Benutzerpools-Konsole. Wählen Sie einen Benutzerpool oder erstellen Sie einen neuen.

  2. Wählen Sie in Ihrer Benutzerpool-Konfiguration das Sign-in Menü 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 und PASSWORD_SRP Flows. Wählen Sie die Option Zusätzliche Optionen aus, die Sie zu den Optionen Ihrer Benutzer hinzufügen möchten. Sie können den Hauptschlüssel fürWEB_AUTHN, das Einmalkennwort für die E-Mail-Nachricht für EMAIL_OTP und das Einmalkennwort für die SMS-Nachricht für SMS_OTP hinzufügen.

  4. Wählen Sie Änderungen speichern aus.

API/SDK

Der folgende Teil- CreateUserPool oder UpdateUserPool Anforderungstext konfiguriert alle verfügbaren Optionen für die wahlbasierte Authentifizierung.

"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 InitiateAuth oder 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 persistenten 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. In der InitiateAuth Anfrage wird beispielsweise eine Anmeldung deklariertAuthFlow, die direkt einer der aufgelisteten Optionen entspricht. USER_SRP_AUTH Mit dieser Deklaration enthält die Anfrage auch die Parameter für den Beginn der Authentifizierung, zum Beispiel USERNAMESECRET_HASH, und. SRP_A Amazon Cognito könnte dieser Anfrage weitere Herausforderungen wie PASSWORD_VERIFIER SRP oder Passwortanmeldung mit SOFTWARE_TOKEN_MFA TOTP MFA nachstellen.

Um Ihren App-Client für die clientbasierte Authentifizierung zu konfigurieren, fügen Sie alle Authentifizierungsabläufe außer ALLOW_USER_AUTH den erlaubten Authentifizierungsabläufen hinzu. Beispiele sindALLOW_USER_PASSWORD_AUTH,ALLOW_CUSTOM_AUTH,ALLOW_REFRESH_TOKEN_AUTH. Um clientbasierte Authentifizierungsabläufe zu ermöglichen, ist keine zusätzliche Konfiguration des Benutzerpools erforderlich.