Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Identitäten-Pools – Authentifzierungsablauf

Fokusmodus
Identitäten-Pools – Authentifzierungsablauf - 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.

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.

Mit Amazon Cognito erstellen Sie eindeutige, geräte- und plattformübergreifend konsistente IDs für Ihre Endbenutzer. Amazon Cognito stellt Ihrer Anwendung auch temporäre Anmeldeinformationen mit eingeschränkten Rechten für den Zugriff auf Ressourcen zur Verfügung. AWS Auf dieser Seite werden die Grundlagen der Authentifizierung in Amazon Cognito und der Lebenszyklus einer Identität im Identitätspool erklärt.

Authentifzierungsablauf – externer Anbieter

Bei einer Benutzerauthentifizierung mit Amazon Cognito wird für den Bootstrap der Anmeldeinformationen ein Prozess mit mehreren Schritten verwendet. Amazon Cognito bietet zwei verschiedene Authentifizierungsflüsse für öffentliche Anbieter: erweitert und standardmäßig.

Sobald Sie einen dieser Abläufe abgeschlossen haben, können Sie AWS-Services gemäß den Zugriffsrichtlinien Ihrer Rolle auf andere zugreifen. Standardmäßig erstellt die Amazon-Cognito-Konsole Rollen mit Zugriff auf den Amazon-Cognito-Sync-Speicher und auf Amazon Mobile Analytics. Mehr Informationen zum Erteilen von weiteren Zugriffsberechtigungen finden Sie unter IAM-Rollen.

Identitätspools akzeptieren die folgenden Artefakte von Anbietern:

Anbieter Authentifizierungsartefakt
Amazon-Cognito-Benutzerpool ID-Token
OpenID Connect (OIDC) ID-Token
SAML 2.0 SAML-Assertion
Sozialer Anbieter Zugriffstoken

Erweiterter (vereinfachter) Authentifzierungsablauf

Wenn Sie den erweiterten Authflow verwenden, legt Ihre App in einer Anfrage zunächst einen Authentifizierungsnachweis von einem autorisierten Amazon Cognito Cognito-Benutzerpool oder einem GetIdexternen Identitätsanbieter vor.

  1. Ihre Anwendung präsentiert in einer GetID-Anfrage einen Authentifizierungsnachweis — ein JSON-Webtoken oder eine SAML-Assertion — von einem autorisierten Amazon Cognito Cognito-Benutzerpool oder einem externen Identitätsanbieter.

  2. Ihr Identitätspool gibt eine Identitäts-ID zurück.

  3. Ihre Anwendung kombiniert die Identitäts-ID mit demselben Authentifizierungsnachweis in einer GetCredentialsForIdentityAnfrage.

  4. Ihr Identitätspool gibt AWS Anmeldeinformationen zurück.

  5. Ihre Anwendung signiert AWS API-Anfragen mit den temporären Anmeldeinformationen.

Die erweiterte Authentifizierung verwaltet die Logik der IAM-Rollenauswahl und des Abrufs von Anmeldeinformationen in Ihrer Identitätspool-Konfiguration. Sie können Ihren Identitätspool so konfigurieren, dass er eine Standardrolle auswählt und die Prinzipien der attributebasierten Zugriffskontrolle (ABAC) oder der rollenbasierten Zugriffskontrolle (RBAC) auf die Rollenauswahl anwendet. Die AWS Anmeldeinformationen für die erweiterte Authentifizierung sind eine Stunde lang gültig.

Reihenfolge der Vorgänge bei der erweiterten Authentifizierung
  1. GetId

  2. GetCredentialsForIdentity

Ein Diagramm, das den Ablauf der erweiterten Authentifizierung zeigt

Klassischer Standardauthentifizierungsablauf

Wenn Sie den grundlegenden Authflow verwenden,

  1. Ihre Anwendung präsentiert in einer GetID-Anfrage einen Authentifizierungsnachweis — ein JSON-Webtoken oder eine SAML-Assertion — von einem autorisierten Amazon Cognito Cognito-Benutzerpool oder einem externen Identitätsanbieter.

  2. Ihr Identitätspool gibt eine Identitäts-ID zurück.

  3. Ihre Anwendung kombiniert die Identitäts-ID mit demselben Authentifizierungsnachweis in einer GetOpenIdTokenAnfrage.

  4. GetOpenIdTokengibt ein neues OAuth 2.0-Token zurück, das von Ihrem Identitätspool ausgestellt wurde.

  5. Ihre Anwendung präsentiert das neue Token in einer AssumeRoleWithWebIdentityAnfrage.

  6. AWS Security Token Service (AWS STS) gibt AWS Anmeldeinformationen zurück.

  7. Ihre Anwendung signiert AWS API-Anfragen mit den temporären Anmeldeinformationen.

Der grundlegende Workflow gibt Ihnen eine genauere Kontrolle über die Anmeldeinformationen, die Sie an Ihre Benutzer verteilen. Die GetCredentialsForIdentity-Anforderung des erweiterten Authentifizierungsablaufs fordert eine Rolle basierend auf dem Inhalt eines Zugriffstokens an. Die AssumeRoleWithWebIdentity Anfrage im klassischen Workflow gewährt Ihrer App eine bessere Möglichkeit, Anmeldeinformationen für jede AWS Identity and Access Management Rolle anzufordern, die Sie mit einer ausreichenden Vertrauensrichtlinie konfiguriert haben. Sie können auch eine benutzerdefinierte Rollensitzungsdauer anfordern.

In Benutzerpools, die keine Rollenzuordnungen haben, können Sie sich mit dem Basic-Authflow anmelden. Für diese Art von Identitätspool gibt es keine Standardrolle mit Authentifizierung oder ohne Authentifizierung und keine konfigurierte rollen- oder attributbasierte Zugriffskontrolle. Wenn Sie versuchenGetOpenIdToken, einen Identitätspool mit Rollenzuordnungen zu verwenden, wird die folgende Fehlermeldung angezeigt.

Basic (classic) flow is not supported with RoleMappings, please use enhanced flow.
Reihenfolge der Vorgänge bei der Standardauthentifizierung
  1. GetId

  2. GetOpenIdToken

  3. AssumeRoleWithWebIdentity

Ein Diagramm, das den Ablauf der Standardauthentifizierung zeigt

Authentifzierungsablauf für entwicklerauthentifizierte Identitäten

Wenn Sie Entwicklerauthentifizierte Identitäten verwenden, nutzt der Client einen anderen Authentifzierungsablauf, der Code außerhalb von Amazon Cognito enthält, um den Benutzer in Ihrem eigenen Authentifizierungssystem zu validieren. Code außerhalb von Amazon Cognito ist als solcher markiert.

Erweiterter Authentifzierungsablauf

Reihenfolge der Vorgänge bei der erweiterten Authentifizierung bei einem Entwickleranbieter
  1. Anmeldung über den Entwickleranbieter (Code außerhalb von Amazon Cognito)

  2. Validierung der Benutzeranmeldung (Code außerhalb von Amazon Cognito)

  3. GetOpenIdTokenForDeveloperIdentity

  4. GetCredentialsForIdentity

Ein Diagramm, das den Ablauf der vom Entwickler authentifizierten erweiterten Authentifizierung zeigt
Reihenfolge der Vorgänge bei der Standardauthentifizierung mit einem Entwickleranbieter
  1. Implementieren Sie Logik außerhalb des Identitätspools, um sich anzumelden und eine Entwickler-Anbieter-ID zu generieren.

  2. Rufen Sie gespeicherte serverseitige Anmeldeinformationen ab. AWS

  3. Senden Sie die ID des Entwickler-Anbieters in einer GetOpenIdTokenForDeveloperIdentityAPI-Anfrage, die mit autorisierten AWS Anmeldeinformationen signiert ist.

  4. Fordern Sie Anmeldeinformationen für die Anwendung an mit AssumeRoleWithWebIdentity.

Ein Diagramm, das den Ablauf der vom Entwickler authentifizierten Standardauthentifizierung zeigt

Welchen Authentifzierungsablauf sollte ich verwenden?

Der erweiterte Ablauf ist die sicherste Wahl mit dem geringsten Aufwand für Entwickler:

  • Der verbesserte Ablauf reduziert die Komplexität, Größe und Geschwindigkeit von API-Anfragen.

  • Ihre Anwendung muss keine zusätzlichen API-Anfragen an stellen AWS STS.

  • Ihr Identitätspool bewertet Ihre Benutzer im Hinblick auf die IAM-Rollenanmeldedaten, die sie erhalten sollten. Sie müssen keine Logik für die Rollenauswahl in Ihren Client einbetten.

Wichtig

Wenn Sie einen neuen Identitätspool erstellen, sollten Sie als bewährte Methode die Standardauthentifizierung (klassische Authentifizierung) nicht standardmäßig aktivieren. Um die Standardauthentifizierung zu implementieren, bewerten Sie zunächst die Vertrauensbeziehungen Ihrer IAM-Rollen für Webidentitäten. Integrieren Sie dann die Logik für die Rollenauswahl in Ihren Client und schützen Sie den Client vor Änderungen durch Benutzer.

Der grundlegende Authentifizierungsablauf delegiert die Logik der IAM-Rollenauswahl an Ihre Anwendung. In diesem Ablauf validiert Amazon Cognito die authentifizierte oder nicht authentifizierte Sitzung Ihres Benutzers und gibt ein Token aus, mit dem Sie Anmeldeinformationen austauschen können. AWS STS Benutzer können die Token der Standardauthentifizierung gegen alle IAM-Rollen austauschen, die Ihrem Identitätspool vertrauen, oder gegen den Status authentifiziert/nicht authentifiziert. amr

Machen Sie sich auch darüber im Klaren, dass die Entwicklerauthentifizierung eine Abkürzung für die Validierung der Identitätsanbieter-Authentifizierung ist. Amazon Cognito vertraut den AWS Anmeldeinformationen, die eine GetOpenIdTokenForDeveloperIdentityAnfrage autorisieren, ohne dass der Inhalt der Anfrage zusätzlich überprüft wird. Schützen Sie die Geheimnisse, die die Entwicklerauthentifizierung autorisieren, vor dem Zugriff durch Benutzer.

Übersicht über API-Befehle

GetId

Der GetId-API-Aufruf ist der erste zur Einrichtung einer neuen Identität in Amazon Cognito erforderliche Aufruf.

Nicht authentifizierter Zugriff

Amazon Cognito kann nicht authentifizierten Gästen Zugriff auf Ihre Anwendungen gewähren. Wenn diese Funktion im Identitätspool aktiviert ist, können die Benutzer über die GetId-API jederzeit eine neue Identitäts-ID anfordern. Diese Identitäts-ID wird von der Anwendung für nachfolgende Aufrufe an Amazon Cognito zwischengespeichert. Das AWS Mobilgerät SDKs und das AWS SDK für JavaScript den Browser verfügen über Anbieter für Anmeldeinformationen, die dieses Caching für Sie übernehmen.

Authentifizierter Zugriff

Wenn Sie Ihre Anwendung mit Unterstützung für einen öffentlichen Login-Anbieter (Facebook, Google+, Login with Amazon oder Sign in with Apple) konfiguriert haben, können Benutzer auch Tokens (OAuth oder OpenID Connect) angeben, die sie bei diesen Anbietern identifizieren. Bei der Verwendung in einem GetId-Aufruf erstellt Amazon Cognito entweder eine neue authentifizierte Identität oder gibt die Identität zurück, die bereits mit dieser bestimmten Anmeldung verknüpft ist. Amazon Cognito führt hierzu die Validierung des Tokens beim Anbieter durch und stellt Folgendes sicher:

  • Das Token ist gültig und vom konfigurierten Anbieter;

  • Das Token ist nicht abgelaufen;

  • Das Token entspricht der durch den Anbieter erstellten Anwendungs-ID (z. B. Facebook-App-ID);

  • Das Token entspricht der Benutzer-ID.

GetCredentialsForIdentity

Die GetCredentialsForIdentity-API kann aufgerufen werden, nachdem eine Identitäts-ID eingerichtet wurde. Dieser Vorgang entspricht also funktionell dem Aufrufen GetOpenIdToken. AssumeRoleWithWebIdentity

Damit Amazon Cognito AssumeRoleWithWebIdentity für Sie aufrufen kann, müssen Ihrem Identitäten-Pool IAM-Rollen zugewiesen sein. Sie können dies über die Amazon-Cognito-Konsole oder manuell über die SetIdentityPoolRoles-Operation tun.

GetOpenIdToken

Stellen Sie eine GetOpenIdToken-API-Anfrage, nachdem Sie eine Identitäts-ID eingerichtet haben. Zwischenspeichern Sie die Identität IDs nach Ihrer ersten Anfrage und starten Sie nachfolgende (klassische) Basissitzungen für diese Identität mitGetOpenIdToken.

Die Antwort auf eine GetOpenIdToken-API-Anfrage ist ein Token, das Amazon Cognito generiert. Sie können dieses Token als WebIdentityToken-Parameter in einer AssumeRoleWithWebIdentity-Anfrage einreichen.

Bevor Sie das OpenID-Token einreichen, überprüfen Sie es in Ihrer App. Sie können OIDC-Bibliotheken in Ihrem SDK oder einer Bibliothek wie aws-jwt-verifyum zu bestätigen, dass Amazon Cognito das Token ausgestellt hat. Die Signaturschlüssel-ID oderkid, des OpenID-Tokens ist eine der in der Amazon Cognito Cognito-Identität aufgeführten jwks_uri Dokument †. Diese Schlüssel können sich ändern. Ihre Funktion, die Amazon-Cognito-Identitätstokens überprüft, sollte ihre Schlüsselliste regelmäßig aus dem Dokument jwks_uri aktualisieren. Amazon Cognito legt die Aktualisierungsdauer im Cache-Control-Antwort-Header jwks_uri fest, die derzeit auf ein max-age von 30 Tagen festgelegt ist.

Nicht authentifizierter Zugriff

Um ein Token für eine nicht authentifizierte Identität abzurufen, benötigen Sie nur die Identitäts-ID. Es ist nicht möglich, ein nicht authentifiziertes Token für authentifizierte oder von Ihnen deaktivierte Identitäten zu erhalten.

Authentifizierter Zugriff

Wenn Sie eine authentifizierte Identität haben, müssen Sie mindestens ein gültiges Token für eine Anmeldung übergeben, die dieser Identität bereits zugeordnet ist. Alle während des GetOpenIdToken-Aufrufs übergebenen Token müssen dieselbe zuvor erwähnte Validierung bestehen; Wenn eines der Token fehlschlägt, schlägt der gesamte Aufruf fehl. Die Antwort des GetOpenIdToken-Aufrufs umfasst auch die Identitäts-ID. Der Grund hierfür ist, dass die von Ihnen übergebene Identitäts-ID u. U. nicht identisch mit der ID ist, die zurückgegeben wird.

Verknüpfen von Anmeldungen

Wenn Sie ein Token für eine Anmeldung übergeben, die noch keiner Identität zugewiesen ist, gilt die Anmeldung als mit der zugehörigen Identität „verknüpft“. Sie können nur eine Anmeldung pro öffentlichem Anbieter verknüpfen. Wenn Sie versuchen, mehr als eine Anmeldung mit einem öffentlichen Anbieter zu verknüpfen, wird eine ResourceConflictException-Fehlermeldung ausgelöst. Wenn eine Anmeldung nur mit einer vorhandenen Identität verknüpft ist, stimmt die vom GetOpenIdToken-Aufruf zurückgegebene Identitäts-ID mit der übergebenen ID überein.

Zusammenführen von Identitäten

Wenn Sie ein Token für eine Anmeldung übergeben, die derzeit nicht mit der angegebenen, sondern mit einer anderen Identität verknüpft ist, werden die beiden Identitäten zusammengeführt. Nach dem Zusammenführen wird eine Identität zurückgegeben. parent/owner of all associated logins and the other is disabled. In this case, the identity ID of the parent/owner Sie müssen Ihren lokalen Cache aktualisieren, wenn dieser Wert abweicht. Die Anbieter im AWS Mobilgerät SDKs oder JavaScript im AWS SDK für den Browser führen diesen Vorgang für Sie durch.

GetOpenIdTokenForDeveloperIdentity

Dieser GetOpenIdTokenForDeveloperIdentityVorgang ersetzt die Verwendung von GetIdund GetOpenIdTokenvom Gerät, wenn vom Entwickler authentifizierte Identitäten verwendet werden. Da Ihre Anwendung Anfragen für diesen API-Vorgang mit AWS Anmeldeinformationen signiert, vertraut Amazon Cognito darauf, dass die in der Anfrage angegebene Benutzer-ID gültig ist. Die Entwicklerauthentifizierung ersetzt die Token-Validierung, die Amazon Cognito mit externen Anbietern durchführt.

Die Payload für diese API umfasst eine logins Map. Diese Map muss den Schlüssel Ihres Entwickleranbieters und einen Wert als Kennung für den Benutzer in Ihrem System enthalten. Wenn die Benutzer-ID noch nicht mit einer vorhandenen Identität verknüpft ist, erstellt Amazon Cognito eine neue Identität und gibt die neue Identitäts-ID sowie ein OpenID-Connect-Token für diese Identität zurück. Wenn die Benutzer-ID bereits verknüpft ist, gibt Amazon Cognito die bereits vorhandene Identitäts-ID und ein OpenID-Connect-Token zurück. Zwischenspeichern Sie die Entwickleridentität IDs nach Ihrer ersten Anfrage und starten Sie nachfolgende (klassische) Basissitzungen für diese Identität mitGetOpenIdTokenForDeveloperIdentity.

Die Antwort auf eine GetOpenIdTokenForDeveloperIdentity-API-Anfrage ist ein Token, das Amazon Cognito generiert. Sie können dieses Token als WebIdentityToken-Parameter in einer AssumeRoleWithWebIdentity-Anfrage einreichen.

Bevor Sie das OpenID-Connect-Token einreichen, überprüfen Sie es in Ihrer App. Sie können OIDC-Bibliotheken in Ihrem SDK oder einer Bibliothek wie aws-jwt-verifyum zu bestätigen, dass Amazon Cognito das Token ausgestellt hat. Die Signaturschlüssel-ID, oder kid, des OpenID-Connect-Tokens ist eine der im jwks_uri-Dokument von Amazon Cognito Identity aufgeführten IDs. Diese Schlüssel können sich ändern. Ihre Funktion, die Amazon-Cognito-Identitätstokens überprüft, sollte ihre Schlüsselliste regelmäßig aus dem Dokument jwks_uri aktualisieren. Amazon Cognito legt die Aktualisierungsdauer im cache-control-Antwort-Header jwks_uri fest, die derzeit auf ein max-age von 30 Tagen festgelegt ist.

Verknüpfen von Anmeldungen

Wenn zusätzliche Anmeldungen übergeben werden, die nicht bereits mit einer Identität verknüpft sind, erfolgt wie bei den externen Anbietern eine implizite Verknüpfung dieser Anmeldungen mit dieser Identität. Wenn Sie die Anmeldung eines externen Anbieters mit einer Identität verknüpfen, kann der Benutzer den Authentifizierungsablauf des externen Anbieters für diesen Anbieter verwenden. Er kann jedoch den Namen Ihres Entwickleranbieters in der Anmeldungsübersicht nicht verwenden, wenn er GetId oder GetOpenIdToken aufruft.

Zusammenführen von Identitäten

Bei entwicklerauthentifizierten Identitäten unterstützt Amazon Cognito sowohl die implizite Zusammenführung als auch die explizite Zusammenführung über die MergeDeveloperIdentities-API. Bei dieser expliziten Zusammenführung können Sie zwei Identitäten mit Benutzer-IDs in Ihrem System als eine einzelne Identität kennzeichnen. Wenn Sie die Quell- und Ziel-Benutzer-IDs angeben, werden sie von Amazon Cognito zusammengeführt. Wenn Sie das nächste Mal ein OpenID-Connect-Token für eine der Benutzer-IDs anfragen, wird die gleiche Identitäts-ID zurückgegeben.

AssumeRoleWithWebIdentity

Sobald Sie ein OpenID Connect-Token haben, können Sie dieses über die AssumeRoleWithWebIdentityAPI-Anfrage an AWS Security Token Service (AWS STS) gegen temporäre AWS Anmeldeinformationen eintauschen.

Da es keine Einschränkung für die Anzahl der Identitäten gibt, die Sie erstellen können, ist es wichtig, die Ihren Benutzern erteilten Benutzerberechtigungen zu verstehen. Richten Sie verschiedene IAM-Rollen für Ihre Anwendung ein: eine für nicht authentifizierte Benutzer und eine für authentifizierte Benutzer. Die Amazon Cognito Cognito-Konsole kann Standardrollen erstellen, wenn Sie Ihren Identitätspool zum ersten Mal einrichten. Für diese Rollen wurden praktisch keine Berechtigungen erteilt. Passen Sie sie an Ihre Bedürfnisse an.

Weitere Informationen zu Vertrauensstellungen und Berechtigungen für Rollen.

† Das Standarddokument jwks_uri von Amazon Cognito Identity enthält in den meisten AWS-Regionen Informationen über die Schlüssel, mit denen Tokens für Identitätspools signiert werden. Die folgenden Regionen haben unterschiedliche jwks_uri-Dokumente.

Amazon Cognito Identity JSON web key URIs in other AWS-Regionen
AWS-Region Pfad zum jwks_uri-Dokument
AWS GovCloud (US-West) https://cognito-identity.us-gov-west-1.amazonaws.com/.well-known/jwks_uri
China (Peking) https://cognito-identity---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/.well-known/jwks_uri
Opt-in-Regionen wie Europa (Mailand) und Afrika (Kapstadt) https://cognito-identity.Region.amazonaws.com/.well-known/jwks_uri

Sie können die jwks_uri auch vom Aussteller oder dem iss, den Sie im OpenID-Token von Amazon Cognito erhalten, extrapolieren. Der Discovery-Endpunkt nach OIDC-Standard <issuer>/.well-known/openid-configuration listet einen Pfad zur jwks_uri für Ihr Token auf.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.