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.
Authentifizierungsstufen mit ACR- und AMR-Ansprüchen
Amazon Cognito kann aufzeichnen, wie stark sich ein Benutzer authentifiziert hat und welche Methoden er verwendet hat. Sie geben eine Zielauthentifizierungsebene als Eingabe an, wenn sich ein Benutzer anmeldet, und Amazon Cognito meldet die Stufe, die der Benutzer erreicht hat, und die Methoden, die er abgeschlossen hat, als Ansprüche in den ausgegebenen Token. Diese Angaben gelten für jede Anmeldung, einschließlich der ersten Anmeldung eines Benutzers.
Sie fordern eine Authentifizierungsebene mit dem acr_values Parameter auf den verwalteten Anmeldeautorisierungs- und Anmeldeendpunkten oder mit dem entsprechenden TARGET_ACR_VALUES Parameter im API-Flow an. USER_AUTH Beide akzeptieren eine geordnete Liste von Zielauthentifizierungsebenen. Sie können den optionalen max_age Parameter (MAX_AGEin der API) hinzufügen, um zu verlangen, dass sich der Benutzer innerhalb eines kürzlichen Zeitfensters authentifiziert hat. Als Antwort auf diese Eingaben fügt Amazon Cognito den ausgegebenen Token zwei Ansprüche hinzu:
-
Der
acrAnspruch ist eine Zeichenfolge, die beispielsweiseurn:cognito:loa:3die Authentifizierungsebene angibt, die der Benutzer erfüllt hat. -
Der
amrAnspruch besteht aus einer Reihe von Zeichenfolgen, die beispielsweise die Authentifizierungsmethoden angeben, die der Benutzer ausgeführt hat["pwd", "otp", "mfa"].
Die amr Ansprüche acr und entsprechen den Definitionen in der OpenID Connect Core-Spezifikation. Amazon Cognito verwendet seine eigenen URIs auf ACR-Ebene. Sie können die Amazon Cognito Cognito-Stufen in jeden Standard übersetzen, den Ihre Anwendung benötigt.
Step-up Authentifizierung ist ein häufiger Anwendungsfall für diese Ansprüche. Bei der Step-up-Authentifizierung verlangt Ihre Anwendung, dass sich ein Benutzer mit einer stärkeren Methode authentifiziert, bevor er einen vertraulichen Vorgang ausführt. Um zu entscheiden, ob eine Aufforderung erforderlich ist, vergleicht Ihre Anwendung die acr Stufe und den auth_time Anspruch im ID-Token des Benutzers mit der Stufe und Aktualität, die für den Vorgang erforderlich sind, und fordert Step-Up-Anfragen nur an, wenn sie noch nicht erfüllt sind. Wenn ein Step-Up erforderlich ist, leiten Sie den Benutzer zum verwalteten Anmeldeautorisierungs- oder Anmeldeendpunkt mit acr_values weiter oder rufen Sie den USER_AUTH API-Flow mit auf. TARGET_ACR_VALUES Ein Beispiel finden Sie im Step-up Authentifizierungsszenario.
Sie können ACR und AMR von jedem Amazon Cognito Cognito-Anmeldepunkt aus anfordern. Die Mechaniken für jeden Einstiegspunkt werden zusammen mit diesem Einstiegspunkt dokumentiert.
-
SDK- und API-Anmeldung — Fordere eine Zielebene im
USER_AUTHFlow mit denMAX_AGEParameternTARGET_ACR_VALUESund an. Informationen zu den Parametern und dem Step-up-Verhalten finden Sie unter. Step-up Authentifizierung mit dem USER_AUTH-Flow -
Verwaltete Anmeldung und gehostete Benutzeroberfläche — Übergeben Sie die
max_ageParameteracr_valuesund an den Endpunkten für die Autorisierung und Anmeldung. Einzelheiten finden Sie unter dem Endpunkt für die Autorisierung und dem Endpunkt für die Anmeldung. -
Verbundanmeldung — Amazon Cognito leitet die ACR- und AMR-Werte eines Verbundbenutzers aus der Antwort des Identitätsanbieters (IdP) ab und ordnet sie dem Feld zu.
AcrMappingInformationen zu Step-up Authentifizierung für Verbundbenutzer OIDC-Identitätsanbietern finden Sie unter.
Für die Anforderung der Step-up-Authentifizierung ist der Featureplan Essentials oder Plus erforderlich. Weitere Informationen finden Sie unter Anforderungen an den Funktionsplan.
Themen
Authentifizierungsebenen und -methoden
Amazon Cognito bewertet die Authentifizierungsfaktoren, die ein Benutzer ausfüllt, und drückt das Ergebnis als Authentifizierungsebene im acr Antrag und als Liste von Authentifizierungsmethoden im amr Antrag aus.
ACR-Authentifizierungsebenen
Amazon Cognito definiert vier feste Authentifizierungsebenen. Die Kombinationen der Authentifizierungsfaktoren, die jede Stufe erfüllen, sind fest und können nicht geändert werden. Sie können nur den URI-Namen jeder Ebene für Ihren Benutzerpool anpassen. Weitere Informationen finden Sie unter Konfiguration von Namen auf ACR-Ebenen.
Amazon Cognito weist dem Benutzer die höchste Authentifizierungsebene zu, der die abgeschlossenen Faktoren vollständig entsprechen.
| ACR-Stufe | Standard-ACR-Wert | Befriedigende Faktorkombinationen |
|---|---|---|
| 1 | urn:cognito:loa:1 |
Nur Passwort |
| 2 | urn:cognito:loa:2 |
Ein einziges Einmalpasswort, das per SMS oder E-Mail zugestellt wird. Stufe 2 beinhaltet keine Hauptschlüssel |
| 3 | urn:cognito:loa:3 |
Ein eigenständiger Hauptschlüssel (Plattform oder Roaming) oder ein Passwort mit einem SMS-Einmalcode oder ein Passwort mit einem E-Mail-Einmalcode |
| 4 | urn:cognito:loa:4 |
Ein Passwort mit einem zeitbasierten Einmalpasswort (TOTP) aus einer Authenticator-App |
Stufe 1 steht für reine Passwortauthentifizierung. Der Verbund erfüllt in dieser Tabelle keine Stufe. Stattdessen leitet Amazon Cognito die Authentifizierungsebene eines Verbundbenutzers aus der Antwort des Identitätsanbieters (IdP) ab. Weitere Informationen finden Sie unter Step-up Authentifizierung für Verbundbenutzer.
AMR-Werte
Der amr Anspruch ist eine Liste von Zeichenketten. Jeder Authentifizierungsfaktor, den der Benutzer ausfüllt, fügt der Liste seinen Wert hinzu. Amazon Cognito kann die folgenden Werte hinzufügen.
| Authentifizierungsmethode | AMR-Wert | Hinweise |
|---|---|---|
| Passwort | pwd |
Password-family Anmeldung, einschließlich Secure Remote Password (SRP) |
| TOTP von einer Authenticator-App | otp |
Ein zeitbasiertes Einmalpasswort aus einer App, z. B. einer Authenticator-App |
| SMS-Einmalcode | sms |
Ein Einmalcode, der per SMS zugestellt wird |
| Einmalcode per E-Mail | email_otp |
Ein Einmalcode, der per E-Mail zugestellt wird |
| Hauptschlüssel mit einem Plattformauthentifikator | swk |
Ein softwaregebundener Schlüssel, z. B. ein Hauptschlüssel, der durch ein biometrisches Gerät gesichert ist |
| Hauptschlüssel mit einem Roaming-Authentifikator | hwk |
Ein hardwaregebundener Schlüssel, z. B. ein Sicherheitsschlüssel |
| Multi-factor Kombination | mfa |
Wird hinzugefügt, wenn der Benutzer zwei oder mehr unterschiedliche Faktoren ausfüllt |
| Föderierte Anmeldung | fed |
Ein Standard-Platzhalter, den Amazon Cognito hinzufügt, wenn ein Benutzer sich über einen IdP zusammenschließt, der ACR und AMR nicht unterstützt, oder keine Werte zurückgibt, die Amazon Cognito erkennt |
ACR- und AMR-Token-Ansprüche
Amazon Cognito fügt die hinzu acr und amr behauptet, auf Zugriffstoken und ID-Token zuzugreifen. Ihre Anwendung überprüft die amr Angaben acr und Angaben im Zugriffstoken oder ID-Token, um die Authentifizierungsebene zu bewerten. Wenn ein Benutzer seine Token aktualisiert, behält Amazon Cognito die gleichen amr Werte für die neuen Zugriffs acr - und ID-Token bei, sodass der Benutzer nicht nach jeder Aktualisierung aufgefordert wird, erneut zu wechseln. Weitere Informationen zu Token-Inhalten finden Sie unter Verwenden des ID-Tokens und Verwenden des Zugriffstokens.
Das folgende Beispiel zeigt ein ID-Token, nachdem sich ein Benutzer mit einem Passwort und einem TOTP authentifiziert hat.
{ "sub": "a1b2c3d4-5678-90ab-cdef-1234567890ab", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_ExAmPlE", "aud": "abc123def456", "exp": 1759348800, "iat": 1759345200, "auth_time": 1759345200, "token_use": "id", "acr": "urn:cognito:loa:4", "amr": ["pwd", "otp", "mfa"], "email": "user@example.com", "cognito:username": "a1b2c3d4-5678-90ab-cdef-1234567890ab" }
Wenn ein Benutzer seine Token aktualisiert, legt Amazon Cognito dieselben amr Werte für die neuen Zugriffs acr - und ID-Token fest. Die Werte werden unverändert übernommen. Dieses Verhalten sorgt für eine reibungslosere Benutzererfahrung, da Benutzer nicht nach jeder Aktualisierung aufgefordert werden, erneut zu wechseln.
Durch das Aktualisieren eines Tokens wird der auth_time Anspruch nicht zurückgesetzt. Wenn Sie einen Benutzer zwingen möchten, sich nach einem bestimmten Zeitraum erneut zu authentifizieren, verwenden Sie den max_age Parameter, der die aktuelle Uhrzeit mit der Häufigkeit auth_time vergleicht, wie oft der Benutzer seine Token aktualisiert hat.
Wenn ein Benutzer die Step-up-Authentifizierung abschließt, gibt Amazon Cognito neue Zugriffs-, ID- und Aktualisierungstoken mit den aktualisierten amr Ansprüchen acr und einem neuen Gültigkeitszeitraum aus.
Konfiguration von Namen auf ACR-Ebenen
Mit dem AcrConfiguration Feld können Sie den URI-Namen jeder Authentifizierungsebene für Ihren Benutzerpool anpassen. Konfigurieren Sie dieses Feld, wenn Sie einen Benutzerpool mit der UpdateUserPoolOperation oder erstellen CreateUserPooloder aktualisieren. Die Faktorkombinationen, die die einzelnen Stufen erfüllen, bleiben unverändert. Sie passen nur die Namen an.
Für die Konfiguration benutzerdefinierter ACR-Ebenennamen mit dem AcrConfiguration Feld ist der Featureplan Essentials oder Plus erforderlich. Weitere Informationen finden Sie unter Anforderungen an den Funktionsplan.
Bei dem AcrConfiguration Feld handelt es sich um eine Karte mit allen TastenLevel1. Level4 Jeder Wert ist ein Objekt mit einer einzigen AcrValue Zeichenfolge. Sie können nur die Ebenen überschreiben, die Sie anpassen möchten. In der folgenden Beispielanforderung werden die Namen der Ebenen 2 und 3 angepasst.
{ "AcrConfiguration": { "Level2": { "AcrValue": "urn:my-standard:loa:2" }, "Level3": { "AcrValue": "urn:my-standard:loa:3" } } }
Die Antwort gibt immer die aktuelle Konfiguration zurück, wobei die Standardnamen für alle Ebenen, die Sie nicht angepasst haben, zusammengeführt werden.
{ "AcrConfiguration": { "Level1": { "AcrValue": "urn:cognito:loa:1" }, "Level2": { "AcrValue": "urn:my-standard:loa:2" }, "Level3": { "AcrValue": "urn:my-standard:loa:3" }, "Level4": { "AcrValue": "urn:cognito:loa:4" } } }
Die folgenden Validierungsregeln gelten für jede dieser RegelnAcrValue.
-
Jede
AcrValuemuss auf allen vier Ebenen einzigartig sein. Dies schließt die Standardnamen ein, die für Ebenen verwendet werden, die Sie nicht anpassen. Ein Wert, der mit dem Standardwert für eine nicht benutzerdefinierte Ebene kollidiert, wird zurückgewiesen. -
Jeder
AcrValueist eine Zeichenfolge mit 1 bis 64 Zeichen. -
Jedes
AcrValuedarf keine Leerzeichen, doppelte Anführungszeichen oder umgekehrte Schrägstriche enthalten.
Wenn Sie Ihre ACR-Ebenennamen ändern, präsentiert ein Benutzer möglicherweise später ein Zugriffstoken, dessen acr Wert keiner konfigurierten Ebene mehr entspricht. Amazon Cognito respektiert den veralteten Wert nicht und behandelt ihn als unbekanntes Level, aber das ist kein Fehler. Amazon Cognito berücksichtigt weiterhin die amr Werte des Tokens und fragt nur nach Faktoren, die nicht bereits im amr Antrag aufgeführt sind, ohne dass eine bestimmte Stufe gutgeschrieben wird.
Anforderungen an den Funktionsplan
Für die folgenden Funktionen ist der Featureplan Essentials oder Plus erforderlich.
-
Step-up-Authentifizierung wird angefordert. Dies gilt für den
TARGET_ACR_VALUESParameter onInitiateAuthund denacr_valuesParameter für die verwaltete Anmeldung. -
Konfiguration von benutzerdefinierten ACR-Ebenennamen mit dem
AcrConfigurationFeld aufCreateUserPooloderUpdateUserPool.
Das Verhalten, wenn Sie eine Step-up-Authentifizierung für einen unzureichenden Funktionsplan anfordern, hängt vom Einstiegspunkt ab.
-
Die
InitiateAuthAPI gibt aFeatureUnavailableInTierExceptionzurück. -
Der Endpunkt für die verwaltete Anmeldeautorisierung ignoriert die normale Authentifizierung im Hintergrund
acr_valuesund fährt mit der normalen Authentifizierung fort, ohne dass ein Fehler auftritt.
Weitere Informationen zu Funktionsplänen finden Sie unter. Feature-Pläne für den Benutzerpool
Ihre Aufgaben im Zusammenhang mit der Step-up-Authentifizierung
Amazon Cognito gibt Token mit der Authentifizierungsstufe aus, die der Benutzer erreicht hat. Ihre Anwendung ist für Folgendes verantwortlich.
-
Überprüfen Sie das aktuelle ID-Token des Benutzers, bevor Sie weiterleiten. Vergleichen Sie Ihre
max_ageStufe und die des ID-Tokens mit deracrStufe, die für den Vorgang erforderlich ist, und zwarauth_timeanhand der Tokens, die Ihre Anwendung bereits besitzt. Leiten Sie den Benutzer nur dann zu Amazon Cognito weiter, wenn die erforderliche Stufe oder Aktualität noch nicht erreicht ist. -
Geben Sie das richtige
TARGET_ACR_VALUESOder undacr_valuesdas richtigeMAX_AGEOder ein.max_ageAmazon Cognito handelt nur auf der Grundlage Ihrer Angaben. Es lässt sich nicht auf das Niveau oder die Frische schließen, die Sie beabsichtigen. Wenn Sie die falsche Stufe anfordern oder die Parameter weglassen, erhöht Amazon Cognito den Benutzer nicht wie beabsichtigt. -
Bestätigen Sie den
acrAnspruch in Ihrem Antrag. Nachdem Amazon Cognito Token zurückgegeben hat, muss Ihre Anwendung überprüfen, ob deracrAnspruch der Stufe entspricht, die für den Vorgang erforderlich ist, bevor der Zugriff gewährt wird. Amazon Cognito gibt das Token mit dem erreichten Level aus. Es liegt in der Verantwortung Ihrer Anwendung, durchzusetzen, dass für einen Vorgang eine bestimmte Stufe erforderlich ist. -
Translate Sie die Amazon Cognito Cognito-Stufen in andere Standards außerhalb des Tokens. Amazon Cognito berechnet die
acrundamrAnsprüche aus dem Authentifizierungsablauf. Sie können diese Ansprüche nicht mit einem Lambda-Trigger vor der Token-Generierung oder einem anderen Lambda-Trigger anpassen, überschreiben, ergänzen oder unterdrücken. Wenn Sie die Amazon Cognito Cognito-Stufen in einen anderen Standard wie NIST oder eIDAS übersetzen müssen, tun Sie dies in Ihrer Anwendungsebene.