View a markdown version of this page

Arbeiten Sie mit adaptiver Authentifizierung - 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.

Arbeiten Sie mit adaptiver Authentifizierung

Mit der adaptiven Authentifizierung können Sie Ihren Benutzerpool so konfigurieren, dass verdächtige Anmeldungen blockiert werden, oder dass ein zweiter Faktor gefordert wird, wenn ein erhöhtes Risiko besteht. Bei jedem Anmeldeversuch generiert Amazon Cognito eine Risikobewertung, die angibt, wie wahrscheinlich es ist, dass die Anmeldeanforderung von einer kompromittierten Quelle stammt. Diese Risikobewertung basiert auf Geräten- und Benutzerfaktoren, die Ihre Anwendung bereitstellt, und auf anderen Faktoren, die Amazon Cognito aus der Anfrage ableitet. Einige Faktoren, die zur Risikobewertung durch Amazon Cognito beitragen, sind die IP-Adresse, der Benutzeragent und die geografische Entfernung zu anderen Anmeldeversuchen. Die adaptive Authentifizierung kann die Multi-Faktor-Authentifizierung (MFA) für einen Benutzer in Ihrem Benutzerpool aktivieren oder erfordern, wenn Amazon Cognito ein Risiko in einer Benutzersitzung erkennt und der Benutzer noch keine MFA-Methode ausgewählt hat. Wenn Sie MFA für einen Benutzer aktivieren, wird dieser immer aufgefordert, während der Authentifizierung einen zweiten Faktor bereitzustellen oder einzurichten, unabhängig davon, wie Sie die adaptive Authentifizierung konfiguriert haben. Aus Sicht Ihrer Benutzer bietet Ihre App Unterstützung bei der Einrichtung von MFA, und optional verhindert Amazon Cognito, dass sie sich erneut anmelden, bevor sie einen zusätzlichen Faktor konfiguriert haben.

Amazon Cognito veröffentlicht Kennzahlen zu Anmeldeversuchen, deren Risikostufen und fehlgeschlagenen Herausforderungen an Amazon. CloudWatch Weitere Informationen finden Sie unter Kennzahlen zum Bedrohungsschutz anzeigen.

Weitere Informationen darüber, wie Sie Ihrem Benutzerpool eine adaptive Authentifizierung hinzufügen, finden Sie unter Erweiterte Sicherheit mit Bedrohungsschutz.

Übersicht über die adaptive Authentifizierung

Im Menü Bedrohungsschutz in der Amazon Cognito-Konsole können Sie Einstellungen für die adaptive Authentifizierung auswählen, einschließlich der Maßnahmen, die bei unterschiedlichen Risikostufen ergriffen werden sollen, und der Anpassung der Benachrichtigungen an Benutzer. Sie können allen Ihren App-Clients eine globale Bedrohungsschutzkonfiguration zuweisen, aber auf einzelne App-Clients eine Konfiguration auf Client-Ebene anwenden.

Die adaptive Authentifizierung von Amazon Cognito weist jeder Benutzersitzung eine der folgenden Risikostufen zu: Hoch, Mittel, Niedrig oder Kein Risiko.

Erwägen Sie Ihre Optionen sorgfältig, wenn Sie Ihre Durchsetzungsmethode von Audit-only auf ändern. Full-function Die automatischen Antworten, die Sie auf Risikoniveaus anwenden, beeinflussen das Risikoniveau, das Amazon Cognito nachfolgenden Benutzersitzungen mit denselben Merkmalen zuweist. Wenn Sie sich beispielsweise dafür entschieden haben, keine Maßnahme zu ergreifen oder Allow (Zulassen) für Nutzersitzungen zu wählen, die Amazon Cognito zunächst als risikoreich einstuft, geht Amazon Cognito davon aus, dass ähnliche Sitzungen ebenfalls ein geringeres Risiko aufweisen.

Sie können für jede Risikoebene folgende Optionen festlegen:

Option

Action

Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Benutzer können sich ohne zusätzlichen Faktor anmelden.
Optionale MFA Benutzer mit einem konfigurierten zweiten Faktor müssen eine zweite Faktoraufforderung abschließen, um sich anmelden zu können. Als zweite Faktoren stehen eine Telefonnummer für SMS und ein TOTP-Softwaretoken zur Verfügung. Benutzer ohne einen zweiten konfigurierten Faktor können sich mit nur einem Satz von Anmeldeinformationen anmelden.
MFA erforderlich Benutzer mit einem konfigurierten zweiten Faktor müssen eine zweite Faktoraufforderung abschließen, um sich anmelden zu können. Amazon Cognito blockiert die Anmeldung für Benutzer, die keinen zweiten Faktor konfiguriert haben.
Blockieren Amazon Cognito blockiert alle Anmeldeversuche auf der festgelegten Risikoebene.
Anmerkung

Sie müssen Telefonnummern nicht verifizieren, um sie für SMS als zweiter Authentifizierungsfaktor verwenden zu können.

Hinzufügen von Benutzergeräte- und Sitzungsdaten zu API-Anforderungen

Sie können Informationen über die Sitzung Ihres Benutzers sammeln und an den Amazon Cognito-Bedrohungsschutz weitergeben, wenn Sie die API verwenden, um ihn zu registrieren, ihn anzumelden und sein Passwort zurückzusetzen. Zu diesen Informationen gehören die IP-Adresse des Benutzers und eine eindeutige Gerätekennung.

Möglicherweise verfügen Sie über ein zwischengelagertes Netzwerkgerät zwischen Ihren Benutzern und Amazon Cognito, wie einen Proxy-Service oder einen Anwendungsserver. Sie können die Kontextdaten der Benutzer sammeln und an Amazon Cognito weitergeben, damit die adaptive Authentifizierung Ihr Risiko basierend auf den Eigenschaften des Benutzerendpunkts anstelle Ihres Servers oder Proxys berechnet. Wenn Ihre clientseitige App API-Operationen von Amazon Cognito direkt aufruft, zeichnet die adaptive Authentifizierung automatisch die Quell-IP-Adresse auf. Es werden jedoch keine anderen Geräteinformationen wie user-agent aufgezeichnet, es sei denn, Sie erfassen auch eine Geräteidentifikation.

Generieren Sie diese Daten mit der Amazon Cognito-Bibliothek zur Erfassung von Kontextdaten und senden Sie sie mit den Parametern und an den Amazon Cognito-Bedrohungsschutz. ContextData UserContextData Die Bibliothek zur Erfassung von Kontextdaten ist in den AWS SDKs enthalten. Weitere Informationen finden Sie unter Integration der Amazon-Cognito-Authentifizierung und -Autorisierung mit Web- und mobilen Apps. Sie können es einreichenContextData, wenn Sie den Plus-Funktionsplan haben. Weitere Informationen finden Sie unter Einrichtung des Bedrohungsschutzes.

Wenn Sie die folgenden von Amazon Cognito authentifizierten API-Operationen von Ihrem Anwendungsserver aus aufrufen, übergeben Sie die IP des Geräts des Benutzers im Parameter ContextData. Übergeben Sie außerdem Ihren Servernamen, Serverpfad und verschlüsselte Geräteidentifikationsdaten.

Wenn Sie nicht authentifizierte API-Operationen von Amazon Cognito aufrufen, können Sie sich an den Amazon UserContextData Cognito-Bedrohungsschutz wenden. Diese Daten enthalten eine Geräteidentifikation im Parameter EncodedData. Sie können auch einen Parameter IpAddress in den UserContextData übergeben, wenn Sie die folgenden Bedingungen erfüllen:

Ihre App kann den Parameter UserContextData mit verschlüsselten Geräteidentifikationsdaten und der IP-Adresse des Geräts des Benutzers in den folgenden nicht authentifizierten API-Operationen von Amazon Cognito auffüllen.

Akzeptieren zusätzlicher Benutzerkontextdaten (AWS-Managementkonsole)

Ihr Benutzerpool akzeptiert eine IP-Adresse in einem Parameter UserContextData nach dem Aktivieren der Funktion Accept additional user context data (Zusätzliche Benutzerkontextdaten akzeptieren). Sie müssen diese Funktion in folgenden Fällen nicht aktivieren:

  • Ihre Benutzer melden sich nur mit authentifizierten API-Vorgängen wie an AdminInitiateAuth , und Sie verwenden den ContextData Parameter.

  • Sie möchten nur, dass Ihre nicht authentifizierten API-Operationen einen Gerätefingerabdruck, aber keine IP-Adresse, an den Amazon Cognito-Bedrohungsschutz senden.

Aktualisieren Sie Ihren App-Client wie folgt in der Amazon-Cognito-Konsole, um ihn um Unterstützung für zusätzliche Benutzerkontextdaten zu erweitern.

  1. Melden Sie sich bei der Amazon Cognito-Konsole an.

  2. Wählen Sie im Navigationsbereich erst Manage your User Pools (Eigene Benutzerpools verwalten) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.

  3. Wählen Sie das App-Clients-Menü.

  4. Wählen oder erstellen Sie einen App-Client. Weitere Informationen finden Sie unter Konfigurieren eines Benutzerpool-App-Clients.

  5. Wählen Sie Edit (Bearbeiten) aus dem Container App client information (App-Client-Informationen) aus.

  6. Wählen Sie in Advanced authentication settings (Erweiterte Authentifizierungseinstellungen) für Ihren App-Client Accept additional user context data (Zusätzliche Benutzerkontextdaten akzeptieren) aus.

  7. Wählen Sie Änderungen speichern aus.

Um Ihren App-Client so zu konfigurieren, dass er Benutzerkontextdaten in der Amazon Cognito-API akzeptiert, stellen Sie true in einer CreateUserPoolClient UpdateUserPoolClient OR-Anfrage EnablePropagateAdditionalUserContextData die Option auf ein. Informationen zur Arbeit mit dem Bedrohungsschutz in Ihrer Web- oder mobilen App finden Sie unterErfassung von Daten zum Schutz vor Bedrohungen in Anwendungen. Erfassen Sie Benutzerkontextdaten von der Client-Seite, wenn Ihre App Amazon Cognito von Ihrem Server aufruft. Im Folgenden finden Sie ein Beispiel, das die JavaScript SDK-Methode verwendetgetData.

var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);

Wenn Sie Ihre App zur Verwendung der adaptiven Authentifizierung entwerfen, empfehlen wir Ihnen, das neueste Amazon Cognito SDK in Ihre App zu integrieren. Die neueste Version des SDK sammelt Daten zur Geräteidentifizierung wie Geräte-ID, Modell und Zeitzone. Weitere Informationen über Amazon-Cognito-SDKs finden Sie unter Installieren eines Benutzerpool-SDK. Amazon Cognito-Bedrohungsschutz speichert nur Ereignisse und weist ihnen eine Risikobewertung zu, die Ihre App im richtigen Format übermittelt. Wenn Amazon Cognito eine Fehlermeldung zurückgibt, überprüfen Sie, ob Ihre Anforderung einen gültigen geheimen Hash enthält und ob es sich beim Parameter IPaddress um eine gültige IPv4- oder IPv6-Adresse handelt.

ContextData- und UserContextData-Ressourcen

Den Verlauf von Benutzerereignissen anzeigen und exportieren

Amazon Cognito generiert ein Protokoll für jedes Authentifizierungsereignis eines Benutzers, wenn Sie den Bedrohungsschutz aktivieren. Standardmäßig können Sie Benutzerprotokolle im Benutzermenü in der Amazon Cognito-Konsole oder mit der AdminListUserAuthEvents API-Operation anzeigen. Sie können diese Ereignisse auch in ein externes System wie CloudWatch Logs, Amazon S3 oder Amazon Data Firehose exportieren. Die Exportfunktion kann Sicherheitsinformationen über Benutzeraktivitäten in Ihrer Anwendung für Ihre eigenen Sicherheitsanalysesysteme leichter zugänglich machen.

Den Verlauf von Benutzerereignissen anzeigen (AWS-Managementkonsole)

Um den Anmeldeverlauf für einen Benutzer anzuzeigen, können Sie den Benutzer in der Amazon Cognito-Konsole im Benutzermenü auswählen. Der Ereignisverlauf für Benutzer wird von Amazon Cognito für zwei Jahre aufbewahrt.

Ereignisverlauf des Benutzers

Jedes Anmeldeereignis hat eine Ereignis-ID. Das Ereignis enthält auch entsprechende Kontextdaten wie dem Standort, Gerätdetails sowie den Risikoerkennungsergebnissen.

Sie können die Ereignis-ID auch mit dem Token abgleichen, das Amazon Cognito zum Zeitpunkt der Aufzeichnung des Ereignisses ausgegeben hat. Die ID- und Zugriffstoken enthalten diese Ereignis-ID in ihrer Nutzlast. Außerdem gleicht Amazon Cognito die Verwendung von Aktualisierungstoken mit der ursprünglichen Ereignis-ID ab. Sie können die ursprüngliche Ereignis-ID bis zur Ereignis-ID des Anmeldeereignisses zurückverfolgen, das zur Ausgabe des Amazon-Cognito-Tokens führte. Sie können die Nutzung eines Tokens in Ihrem System auf ein bestimmtes Authentifizierungsereignis zurückführen. Weitere Informationen finden Sie unter Grundlegendes zu JSON-Web-Tokens (JWTs) für Benutzerpools.

Den Verlauf der Benutzerereignisse anzeigen () API/CLI

Sie können den Verlauf von Benutzerereignissen mit der Amazon Cognito-API-Operation AdminListUserAuthEvents oder mit dem AWS Command Line Interface (AWS CLI) mit https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-list-user-auth-events.html admin-list-user-auth-events abfragen.

AdminListUserAuthEvents request

Der folgende Anforderungstext für gibt das neueste Aktivitätsprotokoll für AdminListUserAuthEvents einen Benutzer zurück.

{ "UserPoolId": "us-west-2_EXAMPLE", "Username": "myexampleuser", "MaxResults": 1 }
admin-list-user-auth-events request

Die folgende Anforderung von admin-list-user-auth-events gibt das neueste Aktivitätsprotokoll für einen Benutzer zurück.

aws cognito-idp admin-list-user-auth-events --max-results 1 --username myexampleuser --user-pool-id us-west-2_EXAMPLE
Response

Amazon Cognito gibt für beide Anfragen denselben JSON-Antworttext zurück. Im Folgenden finden Sie ein Beispiel für eine Antwort auf ein Anmeldeereignis mit verwalteter Anmeldung, bei dem keine Risikofaktoren gefunden wurden:

{ "AuthEvents": [ { "EventId": "[event ID]", "EventType": "SignIn", "CreationDate": "[Timestamp]", "EventResponse": "Pass", "EventRisk": { "RiskDecision": "NoRisk", "CompromisedCredentialsDetected": false }, "ChallengeResponses": [ { "ChallengeName": "Password", "ChallengeResponse": "Success" } ], "EventContextData": { "IpAddress": "192.168.2.1", "DeviceName": "Chrome 125, Windows 10", "Timezone": "-07:00", "City": "Bellevue", "Country": "United States" } } ], "NextToken": "[event ID]#[Timestamp]" }

Benutzerauthentifizierungsereignisse exportieren

Konfigurieren Sie Ihren Benutzerpool so, dass Benutzerereignisse aus dem Bedrohungsschutz in ein externes System exportiert werden. Bei den unterstützten externen Systemen — Amazon S3, CloudWatch Logs und Amazon Data Firehose — fallen möglicherweise zusätzliche Kosten für Daten an, die Sie AWS senden oder abrufen. Weitere Informationen finden Sie unter Exportieren von Benutzeraktivitätsprotokollen zum Schutz gegen Bedrohungen.

AWS-Managementkonsole
  1. Melden Sie sich bei der Amazon Cognito-Konsole an.

  2. Wählen Sie User Pools (Benutzerpools) aus.

  3. Wählen Sie einen vorhandenen Benutzerpool aus der Liste aus oder erstellen Sie einen neuen Benutzerpool.

  4. Wählen Sie das Log-Streaming-Menü. Wählen Sie Bearbeiten aus.

  5. Markieren Sie unter Protokollierungsstatus das Kontrollkästchen neben Export des Benutzeraktivitätsprotokolls aktivieren.

  6. Wählen Sie unter Protokollierungsziel AWS-Service das aus, für das Sie Ihre Protokolle verarbeiten möchten: CloudWatch Protokollgruppe, Amazon Data Firehose-Stream oder S3-Bucket.

  7. Ihre Auswahl füllt die Ressourcenauswahl mit dem entsprechenden Ressourcentyp auf. Wählen Sie eine Log-Gruppe, einen Stream oder einen Bucket aus der Liste aus. Sie können auch auf die Schaltfläche Erstellen klicken, um AWS-Managementkonsole zum ausgewählten Dienst zu navigieren und eine neue Ressource zu erstellen.

  8. Wählen Sie Änderungen speichern aus.

API

Wählen Sie einen Zieltyp für Ihre Benutzeraktivitätsprotokolle.

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der einen Firehose-Stream als Protokollziel festlegt.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "FirehoseConfiguration": { "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der einen Amazon S3-Bucket als Protokollziel festlegt.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der eine CloudWatch Protokollgruppe als Protokollziel festlegt.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Bereitstellung von Ereignisfeedback

Ereignisfeedback wirkt sich in Echtzeit auf die Risikobewertung aus und verbessert langfristig den Risikobewertungsalgorithmus. Sie können Feedback zur Gültigkeit von Anmeldeversuchen über die Amazon-Cognito-Konsole und -API-Operationen bereitstellen.

Anmerkung

Ihr Ereignisfeedback beeinflusst das Risikoniveau, das Amazon Cognito nachfolgenden Benutzersitzungen mit denselben Merkmalen zuweist.

Wählen Sie in der Amazon Cognito-Konsole im Benutzermenü einen Benutzer aus und wählen Sie Event-Feedback geben aus. Sie können die Veranstaltungsdetails überprüfen und Set as valid (Als gültig festlegen) oder Set as invalid (Als ungültig festlegen).

Die Konsole listet den Anmeldeverlauf in den Benutzerdetails im Benutzermenü auf. Wenn Sie einen Eintrag auswählen, können Sie das Ereignis als gültig oder ungültig markieren. Sie können Feedback auch über die Benutzerpool-API-Operation und über den AWS CLI Befehl AdminUpdateAuthEventFeedback https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-auth-event-feedback.html admin-update-auth-event-feedback geben.

Wenn Sie in der Amazon-Cognito-Konsole die Option Set as valid (Als gültig festlegen) auswählen oder für valid in der API einen Wert von FeedbackValue angeben, teilen Sie Amazon Cognito mit, dass Sie einer Benutzersitzung vertrauen, für die Amazon Cognito ein gewisses Risiko bewertet hat. Wenn Sie in der Amazon-Cognito-Konsole die Option Set as invalid (Als ungültig festlegen) auswählen oder für invalid in der API einen Wert von FeedbackValue angeben, teilen Sie Amazon Cognito mit, dass Sie einer Benutzersitzung nicht vertrauen, oder dass Sie nicht glauben, dass Amazon Cognito ein ausreichend hohes Risikoniveau bewertet hat.

Senden von Benachrichtigungsmeldungen

Dank des Bedrohungsschutzes kann Amazon Cognito Ihre Benutzer über riskante Anmeldeversuche informieren. Amazon Cognito kann Benutzer auch zur Auswahl von Links auffordern, um anzugeben, ob die Anmeldung gültig oder ungültig war. Amazon Cognito verwendet dieses Feedback, um die Genauigkeit der Risikoerkennung für Ihren Benutzerpool zu verbessern.

Anmerkung

Amazon Cognito sendet nur dann Benachrichtigungen an Benutzer, wenn deren Aktion eine automatische Risikoreaktion auslöst: Anmeldung blockieren, Anmeldung zulassen, MFA auf optional setzen oder MFA verlangen. Einigen Anfragen wird möglicherweise eine Risikostufe zugewiesen, aber sie generieren keine automatischen Risikoantworten mit adaptiver Authentifizierung. Bei diesen Anfragen sendet Ihr Benutzerpool keine Benachrichtigungen. Beispielsweise können falsche Passwörter mit einer Risikobewertung protokolliert werden, aber Amazon Cognito reagiert darauf, dass die Anmeldung fehlschlägt und keine Regel zur adaptiven Authentifizierung angewendet wird.

Wählen Sie im Abschnitt Automatic risk response (Automatische Reaktion auf Risiken) die Option Notify Users (Benutzer benachrichtigen) für die Fälle mit niedrigem, mittlerem und hohem Risiko.

Benachrichtigen von Benutzern

Amazon Cognito sendet E-Mail-Benachrichtigungen an Ihre Benutzer, unabhängig davon, ob sie ihre E-Mail-Adresse bestätigt haben.

Sie können E-Mail-Benachrichtigungen anpassen und sowohl Klartextversionen als auch HTML-Versionen bereitstellen. Um Ihre E-Mail-Benachrichtigungen anzupassen, öffnen Sie in Ihrer Bedrohungsschutzkonfiguration E-Mail-Vorlagen unter Nachrichten zur adaptiven Authentifizierung. Weitere Informationen über E-Mail-Vorlagen finden Sie unter Nachrichtenvorlagen.