Verwendung von Benutzergeräten in Ihrem Benutzerpool - 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.

Verwendung von Benutzergeräten in Ihrem Benutzerpool

Wenn Sie Benutzer des lokalen Benutzerpools bei den Amazon Cognito Cognito-Benutzerpools anmeldenAPI, können Sie die Aktivitätsprotokolle Ihrer Benutzer aus den erweiterten Sicherheitsfunktionen jedem ihrer Geräte zuordnen und Ihren Benutzern optional ermöglichen, die Multi-Faktor-Authentifizierung (MFA) zu überspringen, wenn sie sich auf einem vertrauenswürdigen Gerät befinden. Amazon Cognito fügt der Antwort auf jede Anmeldung, die noch keine Geräteinformationen enthält, einen Geräteschlüssel hinzu. Der Geräteschlüssel hat das Format Region_UUID. Mit einem Geräteschlüssel, einer Secure Remote Password (SRP) -Bibliothek und einem Benutzerpool, der die Geräteauthentifizierung ermöglicht, können Sie Benutzer in Ihrer App auffordern, dem aktuellen Gerät zu vertrauen, und bei der Anmeldung nicht mehr nach einem MFA Code fragen.

Einrichten von gespeicherten Geräten

Mit Amazon Cognito-Benutzerpools können Sie jedes Gerät Ihrer Benutzer mit einer eindeutigen Gerätekennung verknüpfen, also einem Geräteschlüssel. Wenn Sie den Geräteschlüssel vorlegen und die Geräteauthentifizierung bei der Anmeldung durchführen, können Sie zwei Funktionen nutzen.

  1. Mit den erweiterten Sicherheitsfunktionen können Sie die Benutzeraktivitäten auf bestimmten Geräten zu Sicherheits- und Analysezwecken überwachen. Wenn sich Benutzer anmelden, bietet Ihre App die Möglichkeit, alle Benutzer und ihre Geräte zu authentifizieren und Geräteinformationen zu ihren Aktivitätsprotokollen hinzuzufügen.

  2. Das Speichern von Geräten unterstützt auch eine Authentifizierung für vertrauenswürdige Geräte, bei der sich Ihre Benutzer entscheiden können, sich MFA erst zu einem späteren Zeitpunkt anzumelden, je nach den Sicherheitsanforderungen Ihrer App oder den Einstellungen Ihrer Benutzer. Ihre Anwendung könnte Ihre Benutzer beispielsweise dazu auffordern, einem Gerät 30, 60 oder 90 Tage lang zu vertrauen. Sie können dieses Datum in einem benutzerdefinierten Attribut speichern und an diesem Datum den gespeicherten Status ihres Geräts ändern. Anschließend müssen Sie Ihren Benutzer erneut zur Eingabe eines MFA Codes auffordern und das Gerät so einrichten, dass es nach erfolgreicher Authentifizierung wieder gespeichert wird.

    Gespeicherte Geräte können MFA nur in Benutzerpools mit MFA aktivem Status überschrieben werden.

Wenn sich ein Benutzer mit einem gespeicherten Gerät anmeldet, müssen Sie während des Authentifizierungsvorgangs eine zusätzliche Geräteauthentifizierung durchführen. Weitere Informationen finden Sie unter Anmelden mit einem Gerät.

Konfigurieren Sie die Gerätespeicherung in Ihrem Benutzerpool auf der Registerkarte Anmeldeerfahrung unter Geräteverfolgung. Wenn Sie die Funktionalität der gespeicherten Geräte über die Amazon-Cognito-Konsole einrichten, haben Sie drei Optionen: Immer, Benutzerabonnement und Nein.

Don’t remember (Nicht speichern)

Ihr Benutzerpool fordert Benutzer nicht auf, sich an Geräte zu erinnern, wenn sie sich anmelden.

Always remember (Immer speichern)

Wenn Ihre App das Gerät eines Benutzers bestätigt, erinnert sich Ihr Benutzerpool immer an das Gerät und gibt bei future erfolgreichen Geräteanmeldungen keine Anfragen zurückMFA.

User opt-in (Benutzer-Opt-in)

Wenn Ihre App das Gerät eines Benutzers bestätigt, unterdrückt MFA Ihr Benutzerpool Anfragen nicht automatisch. Fordern Sie Ihre Benutzer auf, auszuwählen, ob sie sich an ihr Gerät erinnern möchten.

Wenn Sie Always remember oder User Opt-In wählen, generiert Amazon Cognito jedes Mal, wenn sich ein Benutzer von einem unbekannten Gerät aus anmeldet, einen Gerätekennungsschlüssel und ein Geheimnis. Der Geräteschlüssel ist die erste Kennung, die Ihre App an Ihren Benutzerpool sendet, wenn Ihr Benutzer die Geräteauthentifizierung durchführt.

Bei jedem bestätigten Benutzergerät, unabhängig davon, ob es automatisch erinnert oder angemeldet wurde, können Sie den Gerätekennungsschlüssel und das Geheimnis verwenden, um ein Gerät bei jeder Benutzeranmeldung zu authentifizieren.

Sie können in einer Oder-Anfrage auch Einstellungen für gespeicherte Geräte für Ihren Benutzerpool konfigurieren. CreateUserPoolUpdateUserPoolAPI Weitere Informationen finden Sie in der DeviceConfigurationUnterkunft.

Der Amazon Cognito Cognito-Benutzerpool API bietet zusätzliche Funktionen für gespeicherte Geräte.

  1. ListDevicesund AdminListDevicesgibt eine Liste der Geräteschlüssel und ihrer Metadaten für einen Benutzer zurück.

  2. GetDeviceund AdminGetDevicegibt den Geräteschlüssel und die Metadaten für ein einzelnes Gerät zurück.

  3. UpdateDeviceStatusund AdminUpdateDeviceStatuslegen Sie das Gerät eines Benutzers als gespeichert oder nicht gespeichert fest.

  4. ForgetDeviceund das bestätigte Gerät eines Benutzers aus seinem Profil AdminForgetDeviceentfernen.

APIOperationen, deren Namen mit beginnen, Admin sind für serverseitige Apps vorgesehen und müssen mit IAM Anmeldeinformationen autorisiert werden. Weitere Informationen finden Sie unter Verwenden der Benutzerpools API und des Autorisierungsservers.

Geräteschlüssel abrufen

Jedes Mal, wenn sich Ihr Benutzer bei den Benutzerpools anmeldet API und keinen Geräteschlüssel in die Authentifizierungsparameter einbeziehtDEVICE_KEY, gibt Amazon Cognito in der Antwort einen neuen Geräteschlüssel zurück. Platzieren Sie den Geräteschlüssel in Ihrer öffentlichen clientseitigen App im App-Speicher, damit Sie ihn in zukünftige Anfragen aufnehmen können. Legen Sie in Ihrer vertraulichen serverseitigen App ein Browser-Cookie oder ein anderes clientseitiges Token mit dem Geräteschlüssel Ihres Benutzers fest.

Bevor sich Ihr Benutzer mit seinem vertrauenswürdigen Gerät anmelden kann, muss Ihre App den Geräteschlüssel bestätigen und zusätzliche Informationen bereitstellen. Generieren ConfirmDeviceSie eine Anfrage an Amazon Cognito, die das Gerät Ihres Benutzers mit dem Geräteschlüssel, einem benutzerfreundlichen Namen, einer Kennwortverifizierung und einem Salt bestätigt. Wenn Sie Ihren Benutzerpool für die Opt-in-Geräteauthentifizierung konfiguriert haben, beantwortet Amazon Cognito Ihre ConfirmDevice-Anfrage mit der Aufforderung, dass Ihr Benutzer wählen muss, ob das aktuelle Gerät gespeichert werden soll. Antworten Sie in einer Anfrage mit der Auswahl Ihres Benutzers. UpdateDeviceStatus

Wenn Sie das Gerät Ihres Benutzers bestätigen, es aber nicht als gespeichert festlegen, speichert Amazon Cognito die Zuordnung, fährt aber mit der geräteunabhängigen Anmeldung fort, wenn Sie den Geräteschlüssel angeben. Geräte können Protokolle generieren, die für die Benutzersicherheit und die Fehlerbehebung nützlich sind. Ein bestätigtes Gerät, das nicht gespeichert wurde, nutzt die Anmeldefunktion nicht, wohl aber die Funktion der Sicherheitsüberwachungsprotokolle. Wenn Sie erweiterte Sicherheitsfunktionen für Ihren App-Client aktivieren und einen Geräte-Footprint in Ihrer Anfrage codieren, ordnet Amazon Cognito Benutzerereignisse dem bestätigten Gerät zu.

So rufen Sie einen neuen Geräteschlüssel ab
  1. Starten Sie die Anmeldesitzung Ihres Benutzers mit einer InitiateAuthAPIAnfrage.

  2. Beantworten Sie alle Authentifizierungsherausforderungen so lange, RespondToAuthChallengebis Sie JSON Web-Tokens (JWTs) erhalten, die die Anmeldesitzung Ihres Benutzers als abgeschlossen kennzeichnen.

  3. Notieren Sie in Ihrer App die Werte, die Amazon Cognito in NewDeviceMetadata in seiner RespondToAuthChallenge- oder InitiateAuth-Antwort zurückgibt: DeviceGroupKey und DeviceKey.

  4. Generieren Sie ein neues SRP Geheimnis für Ihren Benutzer: einen Salt- und einen Passwort-Verifier. Diese Funktion ist in SDKs diesen SRP Provider-Bibliotheken verfügbar.

  5. Fordern Sie den Benutzer zur Eingabe eines Gerätenamens auf oder generieren Sie einen anhand der Geräteeigenschaften des Benutzers.

  6. Geben Sie in einer ConfirmDeviceAPIAnfrage das Zugriffstoken, den Geräteschlüssel, den Gerätenamen und das SRP Geheimnis Ihres Benutzers an. Wenn in Ihrem Benutzerpool die Option Always remember aktiviert ist, ist die Registrierung Ihres Benutzers abgeschlossen.

  7. Wenn Amazon Cognito ConfirmDevice mit "UserConfirmationNecessary": true beantwortet hat, fordern Sie Ihren Benutzer auf, auszuwählen, ob das Gerät gespeichert werden soll. Wenn sie bestätigen, dass sie sich das Gerät merken möchten, generieren Sie eine UpdateDeviceStatusAPIAnfrage mit dem Zugriffstoken, dem Geräteschlüssel und "DeviceRememberedStatus": "remembered" Ihres Benutzers.

  8. Wenn Sie Amazon Cognito angewiesen haben, sich das Gerät zu merken, wird es bei der nächsten Anmeldung nicht mit einer MFA Aufforderung, sondern mit einer DEVICE_SRP_AUTH Aufforderung konfrontiert.

Anmelden mit einem Gerät

Nachdem Sie das Gerät eines Benutzers so konfiguriert haben, dass es gespeichert wird, verlangt Amazon Cognito nicht mehr, dass er einen MFA Code einreicht, wenn er sich mit demselben Geräteschlüssel anmeldet. Die Geräteauthentifizierung ersetzt lediglich die Aufforderung zur MFA -Authentifizierung durch eine Aufforderung zur Geräteauthentifizierung. Sie können Ihre Benutzer nicht nur mit Geräteauthentifizierung anmelden. Ihre Benutzer müssen zuerst die Authentifizierung mit ihrem Passwort oder einer benutzerdefinierten Aufgabe abschließen. Im Folgenden wird der Authentifizierungsprozess für einen Benutzer auf einem gespeicherten Gerät beschrieben.

Um die Geräteauthentifizierung in einem Flow durchzuführen, der Lambda-Trigger für benutzerdefinierte Authentifizierungsherausforderungen verwendet, übergeben Sie einen DEVICE_KEY Parameter in Ihrer InitiateAuthAPIAnfrage. Nachdem Ihr Benutzer alle Aufgaben erfolgreich gemeistert und die CUSTOM_CHALLENGE-Aufgabe den issueTokens-Wert true zurückgegeben hat, gibt Amazon Cognito eine letzte DEVICE_SRP_AUTH-Aufgabe zurück.

So melden Sie sich mit einem Gerät an
  1. Rufen Sie den Geräteschlüssel Ihres Benutzers aus dem Client-Speicher ab.

  2. Starten Sie die Anmeldesitzung Ihres Benutzers mit einer InitiateAuthAPIAnfrage. Wählen Sie einen AuthFlow aus USER_SRP_AUTH, REFRESH_TOKEN_AUTH, USER_PASSWORD_AUTH oder CUSTOM_AUTH aus. Fügen Sie in AuthParameters den Geräteschlüssel Ihres Benutzers zum DEVICE_KEY-Parameter hinzu und ergänzen Sie die anderen erforderlichen Parameter für das ausgewählte Anmeldeverfahren.

    1. Sie können DEVICE_KEY auch in den Parametern einer PASSWORD_VERIFIER-Antwort an eine Authentifizierungsaufgabe übermitteln.

  3. Schließen Sie Aufgaben ab, bis Sie in der Antwort eine DEVICE_SRP_AUTH-Aufgabe erhalten.

  4. Senden Sie in einer RespondToAuthChallengeAPIAnfrage ein ChallengeName of DEVICE_SRP_AUTH und Parameter für USERNAMEDEVICE_KEY, undSRP_A.

  5. Amazon Cognito reagiert mit einer DEVICE_PASSWORD_VERIFIER-Aufgabe. Diese Aufgabenantwort enthält Werte für SECRET_BLOCK und SRP_B.

  6. Generieren und senden Sie mit Ihrer SRP Bibliothek PASSWORD_CLAIM_SIGNATUREPASSWORD_CLAIM_SECRET_BLOCK,TIMESTAMP,USERNAME, und DEVICE_KEY Parameter. Versenden Sie sie in einer zusätzlichen RespondToAuthChallenge-Anfrage.

  7. Schließe zusätzliche Herausforderungen ab, bis du die des Benutzers erhältstJWTs.

Der folgende Pseudocode zeigt, wie Sie Werte für Ihre Antwort auf die DEVICE_PASSWORD_VERIFIER-Aufgabe berechnen.

PASSWORD_CLAIM_SECRET_BLOCK = SECRET_BLOCK TIMESTAMP = Tue Sep 25 00:09:40 UTC 2018 PASSWORD_CLAIM_SIGNATURE = Base64(SHA256_HMAC(K_USER, DeviceGroupKey + DeviceKey + PASSWORD_CLAIM_SECRET_BLOCK + TIMESTAMP)) K_USER = SHA256_HASH(S_USER) S_USER = (SRP_B - k * gx)(a + ux) x = SHA256_HASH(salt + FULL_PASSWORD) u = SHA256_HASH(SRP_A + SRP_B) k = SHA256_HASH(N + g)

Geräte anzeigen, aktualisieren und vergessen

Mit Amazon Cognito API können Sie die folgenden Funktionen in Ihrer App implementieren.

  1. Informationen über das aktuelle Gerät eines Benutzers anzeigen.

  2. Eine Liste aller Geräte Ihres Benutzers anzeigen.

  3. Ein Gerät verwerfen.

  4. Den gespeicherten Status eines Geräts aktualisieren.

Die Zugriffstoken, die die API Anfragen in den folgenden Beschreibungen autorisieren, müssen den aws.cognito.signin.user.admin Umfang enthalten. Amazon Cognito fügt allen Zugriffstoken, die Sie mit den Amazon Cognito Cognito-Benutzerpools generieren, einen Anspruch auf diesen Bereich hinzu. API Drittanbieter IdPs müssen Geräte und MFA deren Benutzer, die sich bei Amazon Cognito authentifizieren, separat verwalten. Auf der gehosteten Benutzeroberfläche können Sie den Bereich aws.cognito.signin.user.admin anfordern, aber die gehostete Benutzeroberfläche fügt automatisch Geräteinformationen zu erweiterten Sicherheitsbenutzerprotokollen hinzu und bietet nicht an, Geräte zu speichern.

Informationen zu einem Gerät anzeigen

Sie können Informationen über das Gerät eines Benutzers abfragen, um festzustellen, ob es derzeit noch verwendet wird. Möglicherweise möchten Sie gespeicherte Geräte deaktivieren, nachdem 90 Tage lang keine Anmeldung stattgefunden hat.

  • Um die Geräteinformationen Ihres Benutzers in einer öffentlichen Client-App anzuzeigen, reichen Sie den Zugriffs- und Geräteschlüssel Ihres Benutzers in einer Anfrage ein. GetDeviceAPI

  • Um die Geräteinformationen Ihres Benutzers in einer vertraulichen Client-App anzuzeigen, unterschreiben Sie eine AdminGetDeviceAPIAnfrage mit AWS Anmeldeinformationen und geben Sie den Benutzernamen, den Geräteschlüssel und den Benutzerpool Ihres Benutzers ein.

Eine Liste aller Geräte Ihres Benutzers anzeigen

Sie können eine Liste aller Geräte Ihrer Benutzer und ihrer Eigenschaften anzeigen. Möglicherweise möchten Sie beispielsweise überprüfen, ob das aktuelle Gerät mit einem gespeicherten Gerät übereinstimmt.

  • Reichen Sie in einer öffentlichen Client-App das Zugriffstoken Ihres Benutzers in einer Anfrage ein. ListDevicesAPI

  • Unterschreiben Sie in einer App für vertrauliche Clients eine AdminListDevicesAPIAnfrage mit AWS Anmeldeinformationen und geben Sie den Benutzernamen und den Benutzerpool Ihres Benutzers ein.

Ein Gerät verwerfen

Sie können den Geräteschlüssel eines Benutzers löschen. Sie können dies tun, wenn Sie feststellen, dass Ihr Benutzer ein Gerät nicht mehr verwendet, oder wenn Sie ungewöhnliche Aktivitäten feststellen und einen Benutzer auffordern möchten, den Vorgang erneut abzuschließenMFA. Um das Gerät später erneut zu registrieren, müssen Sie einen neuen Geräteschlüssel generieren und speichern.

  • Reichen Sie in einer öffentlichen Client-App auf Anfrage den Geräteschlüssel und das Zugriffstoken Ihres Benutzers ein. ForgetDeviceAPI

  • Reichen Sie in einer App für vertrauliche Clients auf Anfrage den Geräteschlüssel und das Zugriffstoken Ihres Benutzers ein. AdminForgetDeviceAPI