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 mit der Amazon Cognito Cognito-Benutzerpool-API anmelden, können Sie die Aktivitätsprotokolle Ihrer Benutzer aus dem Bedrohungsschutz 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 Ihre Anwendung mit einem Authentifizierungsablauf für vertrauenswürdige Geräte konfigurieren. In diesem Ablauf kann Ihre Anwendung Benutzern die Möglichkeit bieten, sich bis zu einem späteren Zeitpunkt ohne MFA anzumelden, je nach den Sicherheitsanforderungen Ihrer App oder den Präferenzen Ihrer Benutzer. Am Ende dieses Zeitraums muss Ihre Anwendung den Gerätestatus auf Nicht gespeichert ändern und der Benutzer muss sich mit MFA anmelden, bis er bestätigt, dass er sich ein Gerät merken möchte. 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. Sie müssen Ihren Benutzer dann erneut auffordern, einen MFA-Code einzureichen und das Gerät so einrichten, dass es nach erfolgreicher Authentifizierung wieder gespeichert wird.

  1. Gespeicherte Geräte können MFA nur in Benutzerpools mit aktivem MFA überschreiben.

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 Ihren Benutzerpool im Anmeldemenü Ihres Benutzerpools unter Geräteverfolgung so, dass er sich Geräte merkt. 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 zukünftigen erfolgreichen Geräteanmeldungen keine MFA-Aufforderung zurück.

User opt-in (Benutzer-Opt-in)

Wenn Ihre App das Gerät eines Benutzers bestätigt, unterdrückt Ihr Benutzerpool nicht automatisch eine MFA-Aufforderung. 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 die Einstellungen für gespeicherte Geräte auch in einer CreateUserPooloder UpdateUserPoolAPI-Anfrage für Ihren Benutzerpool konfigurieren. Weitere Informationen finden Sie in der DeviceConfigurationUnterkunft.

Die Benutzerpool-API von Amazon Cognito 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 AdminForgetDeviceentfernen Sie das bestätigte Gerät eines Benutzers aus seinem Profil.

API-Operationen, deren Namen mit Admin beginnen, sind für die Verwendung in serverseitigen Apps vorgesehen und müssen mit IAM-Anmeldeinformationen autorisiert werden. Weitere Informationen finden Sie unter Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten.

Geräteschlüssel abrufen

Jedes Mal, wenn sich Ihr Benutzer mit der Benutzerpools-API anmeldet und keinen Geräteschlüssel als DEVICE_KEY in die Authentifizierungsparameter einbezieht, 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 InitiateAuthAPI-Anfrage.

  2. Beantworten Sie alle Authentifizierungsherausforderungen so lange, RespondToAuthChallengebis Sie JSON-Webtoken (JWTs) erhalten haben, 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: eine Salt- und eine Passwortverifizierung. Diese Funktion ist in SDKs diesen SRP-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 das Zugriffstoken, den Geräteschlüssel, den Gerätenamen und das SRP-Geheimnis Ihres Benutzers in einer ConfirmDeviceAPI-Anfrage 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 UpdateDeviceStatusAPI-Anfrage mit dem Zugriffstoken, dem Geräteschlüssel und Ihrem Benutzer. "DeviceRememberedStatus": "remembered"

  8. Wenn Sie Amazon Cognito angewiesen haben, das Gerät zu speichern, wird der Benutzer bei der nächsten Anmeldung anstelle einer MFA-Anfrage mit einer DEVICE_SRP_AUTH-Aufgabe 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 übermittelt, wenn er sich mit demselben Geräteschlüssel anmeldet. Die Geräteauthentifizierung ersetzt lediglich die MFA-Authentifizierungsaufgabe durch eine Geräteauthentifizierungsaufgabe. 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 InitiateAuthAPI-Anfrage. 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 InitiateAuthAPI-Anfrage. 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 RespondToAuthChallengeAPI-Anfrage ein ChallengeName von 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 Sie mit Ihrer SRP-Bibliothek die Parameter PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME und DEVICE_KEY und übermitteln Sie sie. Versenden Sie sie in einer zusätzlichen RespondToAuthChallenge-Anfrage.

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

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 der 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 Geltungsbereich aws.cognito.signin.user.admin enthalten. Amazon Cognito fügt allen Zugriffstoken, die Sie mit der Benutzerpool-API von Amazon Cognito generieren, einen Antrag für diesen Bereich hinzu. Drittanbieter IdPs müssen Geräte und MFA für ihre Benutzer, die sich bei Amazon Cognito authentifizieren, separat verwalten. Bei der verwalteten Anmeldung können Sie den aws.cognito.signin.user.admin Geltungsbereich anfordern, aber die verwaltete Anmeldung fügt automatisch Geräteinformationen zu den Benutzerprotokollen mit erweiterter Sicherheit hinzu und bietet nicht an, sich Geräte zu merken.

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 GetDeviceAPI-Anfrage ein.

  • Um die Geräteinformationen Ihres Benutzers in einer vertraulichen Client-App anzuzeigen, signieren Sie eine AdminGetDeviceAPI-Anfrage 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 API-Anfrage ein. ListDevices

  • Unterschreiben Sie in einer App für vertrauliche Clients eine AdminListDevicesAPI-Anfrage 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 sollten 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, die MFA erneut abzuschließen. 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 den Geräteschlüssel und das Zugriffstoken Ihres Benutzers in einer API-Anfrage ein. ForgetDevice

  • Reichen Sie in einer vertraulichen Client-App den Geräteschlüssel und das Zugriffstoken Ihres Benutzers in einer API-Anfrage ein. AdminForgetDevice