View a markdown version of this page

Autorisierungsmodelle für die API- und SDK-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.

Autorisierungsmodelle für die API- und SDK-Authentifizierung

Wenn Sie mit der Entwicklung Ihrer Anwendung mit Benutzerpool-Authentifizierung beginnen, müssen Sie sich für das API-Autorisierungsmodell entscheiden, das zu Ihrem Anwendungstyp passt. Ein Autorisierungsmodell ist ein System zur Autorisierung von Anfragen mit den Authentifizierungskomponenten in den API- und SDK-Integrationen der Amazon Cognito-Benutzerpools. Amazon Cognito hat drei Autorisierungsmodelle: öffentlich IAM-authorized und tokenautorisiert.

Bei IAM-authorized Anfragen erfolgt die Autorisierung anhand einer Signatur durch eine Reihe von AWS IAM-Anmeldeinformationen im Header einer Anfrage. Authorization Bei serverseitigen Anwendungen schützt dieses Verfahren Authentifizierungsvorgänge mit IAM-Autorisierung. Bei öffentlichen (nicht authentifizierten) Authentifizierungsanfragen ist keine Autorisierung erforderlich. Dies eignet sich für clientseitige Anwendungen, die an Benutzer verteilt werden. Bei tokenautorisierten Vorgängen, die in der Regel in Kombination mit öffentlichen Vorgängen implementiert werden, erfolgt die Autorisierung über ein Sitzungstoken oder ein Zugriffstoken, das im Header der Authorization Anforderung enthalten ist. Die Amazon Cognito-Authentifizierung erfordert in der Regel, dass Sie zwei oder mehr API-Operationen der Reihe nach implementieren. Die von Ihnen verwendeten API-Operationen hängen von den Eigenschaften Ihrer Anwendung ab. Öffentliche Clients, bei denen die Anwendung an Benutzer verteilt wird, verwenden öffentliche Abläufe, bei denen Anmeldeanfragen keine Autorisierung erfordern. Token-authorized Operationen setzen die Sitzung von Benutzern in öffentlichen Anwendungen fort. Server-side Clients, bei denen die Anwendungslogik auf einem Remotesystem gehostet wird, schützen Authentifizierungsvorgänge mit IAM-Autorisierung für Anmeldeanfragen. Die folgenden API-Operationspaare und die entsprechenden SDK-Methoden entsprechen den verfügbaren Autorisierungsmodellen.

Jeder öffentliche Authentifizierungsvorgang hat irgendeine Form von serverseitigem Äquivalent, zum Beispiel UpdateUserAttributes und AdminUpdateUserAttributes. Während clientseitige Operationen vom Benutzer initiiert werden und eine Bestätigung erfordern, gehen serverseitige Operationen davon aus, dass die Änderung von einem Benutzerpooladministrator bestätigt wurde und die Änderungen sofort wirksam werden. In diesem Beispiel sendet Amazon Cognito eine Nachricht mit einem Bestätigungscode an den Benutzer, und das Zugriffstoken des Benutzers autorisiert eine VerifyUserAttribute Anfrage, die den Code übermittelt. Die serverseitige Anwendung kann sofort den Wert jedes Attributs festlegen. Allerdings gelten besondere Überlegungen, wenn Sie den Wert von E-Mail-Adressen und Telefonnummern ändern, wenn sie für die Anmeldung verwendet werden.

Einen Vergleich der API-Authentifizierung und eine vollständige Liste der API-Operationen und ihrer Autorisierungsmodelle finden Sie unter. Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten

Client-side (public) authentication

Im Folgenden finden Sie eine typische Abfolge von Anfragen in einer clientseitigen Anwendung

  1. Der öffentliche InitiateAuth Vorgang übermittelt primäre Anmeldeinformationen wie einen Benutzernamen und ein Passwort.

  2. Der vom Token autorisierte RespondToAuthChallenge Vorgang sendet ein Sitzungstoken aus der InitiateAuth Antwort und der Antwort auf eine Herausforderung, z. B. MFA. Die Autorisierung des Sitzungstokens weist auf Anfragen hin, die Teil von noch nicht abgeschlossenen Authentifizierungszyklen sind.

  3. Bei der tokenautorisierten ConfirmDevice Operation wird ein Zugriffstoken übermittelt und der Schreibvorgang ausgeführt, bei dem ein Gerät, an das sich der Benutzer erinnert, hinzugefügt wird. Die Zugriffstoken-Autorisierung weist auf Anfragen hin, die für Self-Service-Vorgänge von Benutzern nach Abschluss der Authentifizierung bestimmt sind.

Weitere Informationen erhalten Sie unter Client-side Authentifizierungsoptionen und Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten.

Server-side authentication

Im Folgenden finden Sie eine typische Abfolge von Anforderungen von einem serverseitigen Vorgang. Jede Anforderung hat einen AWS Signature Version 4-Autorisierungsheader, der mit den IAM-Computeranmeldeinformationen signiert ist, die an den Anwendungsserver ausgegeben wurden.

  1. Der AdminInitiateAuth Vorgang übermittelt primäre Anmeldeinformationen wie einen Benutzernamen und ein Passwort.

  2. AdminRespondToAuthChallengeDie Operation übermittelt die Antwort auf eine Herausforderung, zum Beispiel MFA.

  3. Die AdminUpdateDeviceStatus Operation legt fest, dass der Geräteschlüssel aus der AdminInitiateAuth Antwort gespeichert wird.

Weitere Informationen erhalten Sie unter Server-side Optionen für die Authentifizierung und Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten.

Ein Benutzer führt die Authentifizierung durch Beantwortung aufeinanderfolgender Eingabeaufforderungen durch, bis die Authentifizierung entweder fehlschlägt oder Amazon Cognito Token für den Benutzer ausgestellt. Sie können diese Schritte mit Amazon Cognito in einem Prozess wiederholen, der verschiedene Aufforderungen zur Unterstützung benutzerdefinierter Authentifizierungsabläufe beinhaltet.

Server-side Optionen für die Authentifizierung

Webanwendungen und andere serverseitige Anwendungen implementieren die Authentifizierung auf einem Remoteserver, den ein Client in einer Remote-Display-Anwendung wie einem Browser oder einer SSH-Sitzung lädt. Server-side Anwendungen weisen in der Regel die folgenden Merkmale auf.

  • Sie sind in eine Anwendung integriert, die auf einem Server in Sprachen wie Java, Ruby oder installiert ist Node.js.

  • Sie stellen eine Verbindung zu App-Clients für Benutzerpools her, die möglicherweise ein geheimes Client-Geheimnis haben, das als vertrauliche Clients bezeichnet wird.

  • Sie haben Zugriff auf AWS Anmeldeinformationen.

  • Sie rufen die verwaltete Anmeldung zur Authentifizierung auf oder verwenden IAM-authorized Operationen in der Benutzerpools-API mit einem AWS SDK.

  • Sie bedienen interne Kunden und möglicherweise öffentliche Kunden.

Server-side Bei Vorgängen mit der Benutzerpool-API können Passwörter, Einmalkennwörter oder Hauptschlüssel als primärer Anmeldefaktor verwendet werden. Für serverseitige Apps ist die Benutzerpoolauthentifizierung mit der Authentifizierung für clientseitige Apps vergleichbar, mit Ausnahme von Folgendem:

  • Die serverseitige App stellt eine AdminInitiateAuth API-Anfrage. Für diesen Vorgang sind AWS Anmeldeinformationen mit Berechtigungen wie cognito-idp:AdminInitiateAuth und cognito-idp:AdminRespondToAuthChallenge erforderlich. Der Vorgang gibt die erforderliche Abfrage oder das erforderliche Authentifizierungsergebnis zurück.

  • Wenn die Anwendung eine Herausforderung erhält, stellt sie eine AdminRespondToAuthChallenge API-Anfrage. Für den AdminRespondToAuthChallenge API-Vorgang sind auch AWS Anmeldeinformationen erforderlich.

Weitere Informationen zum Signieren von Amazon Cognito-API-Anfragen mit AWS Anmeldeinformationen finden Sie unter Signaturprozess für Version 4 in der AWS Allgemeinen Referenz.

In der AdminInitiateAuth-Antwort ChallengeParameters enthält das Attribut USER_ID_FOR_SRP – sofern vorhanden – den tatsächlichen Benutzernamen des Benutzers und keinen Alias (wie etwa E-Mail-Adresse oder Telefonnummer). In dem Aufruf an AdminRespondToAuthChallenge in den ChallengeResponses müssen Sie diesen Benutzernamen im Parameter USERNAME übergeben.

Anmerkung

Da Backend-Admin-Implementierungen den Admin-Authentifizierungsablauf verwenden, unterstützt der Flow keine gespeicherten Geräte. Wenn Sie die Geräteverfolgung aktiviert haben, ist die Administratorauthentifizierung erfolgreich, aber jeder Aufruf zum Aktualisieren des Zugriffstokens schlägt fehl.

Client-side Authentifizierungsoptionen

Mobile Apps und andere clientseitige Anwendungstypen werden auf den Geräten der Benutzer installiert und führen die Logik der Authentifizierung und der Benutzeroberfläche lokal aus. Sie weisen in der Regel die folgenden Merkmale auf.

  • Sie sind in Sprachen wie React Native, Flutter und Swift erstellt und werden auf Benutzergeräten bereitgestellt.

  • Sie stellen eine Verbindung zu App-Clients für Benutzerpools her, die kein geheimes Client-Geheimnis haben. Diese werden als öffentliche Clients bezeichnet.

  • Sie haben keinen Zugriff auf AWS Anmeldeinformationen, die IAM-authorized API-Anfragen autorisieren würden.

  • Sie rufen die verwaltete Anmeldung zur Authentifizierung auf oder verwenden öffentliche und durch Token autorisierte Operationen in der Benutzerpool-API mit einem SDK. AWS

  • Sie bedienen öffentliche Kunden und ermöglichen es jedem, sich zu registrieren und anzumelden.

Client-side Bei Vorgängen mit der Benutzerpools-API können Passwörter, Einmalkennwörter oder Hauptschlüssel als primärer Anmeldefaktor verwendet werden. Der folgende Prozess funktioniert für clientseitige Benutzeranwendungen, die Sie mit AWS Amplify oder den AWS -SDKs erstellen.

  1. Der Benutzer gibt den Benutzernamen und das Passwort in der App ein.

  2. Die App ruft die InitiateAuth-Operation mit dem Benutzernamen und den SRP-Details (Secure Remote Password) des Benutzers auf.

    Diese API-Operation gibt die Authentifizierungsparameter zurück.

    Anmerkung

    Die App generiert SRP-Details mit den Amazon Cognito SRP-Funktionen, die in AWS -SDKs integriert sind.

  3. Die App ruft die RespondToAuthChallenge-Operation auf. Wenn der Aufruf erfolgreich ist, gibt Amazon Cognito die Token des Benutzers zurück. Damit ist der Authentifizierungsablauf abgeschlossen.

    Wenn Amazon Cognito eine weitere Abfrage erfordert, gibt der Aufruf von RespondToAuthChallenge keine Token zurück. Stattdessen gibt der Aufruf eine Sitzung zurück.

  4. Wenn RespondToAuthChallenge eine Sitzung zurückgibt, ruft die App RespondToAuthChallenge erneut auf, dieses Mal mit der Sitzung und der Abfrageantwort (z. B. MFA-Code).

Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten

Amazon Cognito-Benutzerpools sind eine Kombination aus mehreren Authentifizierungstechnologien. Sie verlassen sich auf externe Identitätsanbieter (IdPs). Sie gehören IdPs zu Anwendungen, die die Authentifizierung mit OpenID Connect (OIDC) -SDKs implementieren. Sie bieten eine Authentifizierung als Aussteller von JSON-Web-Tokens (JWTs), ähnlich der OIDC-Authentifizierung, jedoch in API-Methoden, die Teil von SDKs sind. AWS Sie können auch sichere Zugangspunkte zu Ihren Anwendungen sein.

Für die Registrierung, Anmeldung und Verwaltung von Benutzern in Ihrem Benutzerpool haben Sie zwei Möglichkeiten.

  1. Zu Ihren verwalteten Anmeldeseiten und der klassischen gehosteten Benutzeroberfläche gehören die benutzerinteraktiven Endpunkte für verwaltete Anmeldeinformationen und die Verbundendpunkte, die die Rollen von IdP und Vertrauenspersonen verwalten. Sie bilden ein Paket öffentlicher Webseiten, das Amazon Cognito aktiviert, wenn Sie eine Domain für Ihren Benutzerpool auswählen. Für einen schnellen Einstieg in die Authentifizierungs- und Autorisierungsfunktionen der Amazon Cognito-Benutzerpools, einschließlich Seiten für Registrierung, Anmeldung, Passwortverwaltung und Multifaktor-Authentifizierung (MFA), verwenden Sie die integrierte Benutzeroberfläche der verwalteten Anmeldung.

    Die anderen Endpunkte des Benutzerpools erleichtern die Authentifizierung bei externen Identitätsanbietern (). IdPs Die von ihnen erbrachten Dienstleistungen beinhalten Folgendes.

    1. Service-provider Callback-Endpunkte für authentifizierte Ansprüche von Ihnen IdPs, wie und. saml2/idpresponse oauth2/idpresponse Wenn Amazon Cognito ein Zwischendienstanbieter (SP) zwischen Ihrer App und Ihrem IdP ist, repräsentieren die Callback-Endpunkte den Service.

    2. Endpunkte, die Informationen über Ihre Umgebung bereitstellen, wie oauth2/userInfo und /.well-known/jwks.json. Ihre App verwendet diese Endpunkte, wenn sie Token verifiziert oder Benutzerprofildaten mit OIDC- oder OAuth 2.0-Entwicklerbibliotheken abruft.

  2. Die Amazon Cognito-API für Benutzerpools ist eine Reihe von Tools für Ihre Web- oder Mobil-App zur Authentifizierung von Benutzern, nachdem sie Anmeldeinformationen in Ihrem eigenen benutzerdefinierten Frontend erfasst hat. Die API-Authentifizierung für Benutzerpools erzeugt die folgenden JSON-Web-Token.

    1. Ein Identitäts-Token mit überprüfbaren Attributansprüchen Ihres Benutzers.

    2. Ein Zugriffs-Token, das Ihren Benutzer autorisiert, über Token autorisierte API-Anfragen für einen AWS -Service-Endpunkt zu erstellen.

      Anmerkung

      Zugriffstoken aus der Benutzerpool-API-Authentifizierung enthalten standardmäßig nur den aws.cognito.signin.user.admin-Bereich. Um ein Zugriffstoken mit zusätzlichen Bereichen zu generieren, um beispielsweise eine Anfrage an eine Drittanbieter-API zu autorisieren, fragen Sie bei der Authentifizierung über Ihre Benutzerpool-Endpunkte Bereiche an oder fügen Sie in einer Lambda-Auslöser für die Vorab-Generierung von Token benutzerdefinierte Bereiche hinzu. Die Anpassung des Zugriffstokens erhöht Ihre Rechnung um zusätzliche Kosten. AWS

    3. Ein Aktualisierungstoken, das Anfragen nach neuen ID- und Zugriffstoken autorisiert und die Eigenschaften der Benutzeridentität und der Zugriffskontrolle aktualisiert.

Sie können einen Verbundbenutzer, der sich normalerweise über die Benutzerpool-Endpunkte anmelden würde, mit einem Benutzer verknüpfen, dessen Profil in Ihrem Benutzerpool lokal ist. Ein lokaler Benutzer existiert ausschließlich in Ihrem Benutzerpool-Verzeichnis ohne Verbund über einen externen IdP. Wenn Sie ihre Verbundidentität in einer AdminLinkProviderForUser API-Anfrage mit einem lokalen Benutzer verknüpfen, können sie sich mit der Benutzerpool-API anmelden. Weitere Informationen finden Sie unter Verknüpfen von Verbundbenutzern mit einem vorhandenen Benutzerprofil.

Die Amazon-Cognito-Benutzerpool-API hat zwei Verwendungszwecke.

  1. Sie erstellt und konfiguriert die Ressourcen für Ihre Amazon-Cognito-Benutzerpools. Sie können beispielsweise Benutzerpools erstellen, AWS Lambda Trigger hinzufügen und die Benutzerpool-Domain konfigurieren, die Ihre verwalteten Anmeldeseiten hostet.

  2. Es führt Registrierungs-, Anmelde- und andere Benutzervorgänge für lokale und verknüpfte Benutzer durch.

Beispielszenario unter Verwendung der Amazon-Cognito-Benutzerpool-API
  1. Ihr Benutzer wählt die Schaltfläche zum Erstellen eines Kontos aus, die Sie in Ihrer App erstellt haben. Der Benutzer gibt eine E-Mail-Adresse und ein Passwort ein.

  2. Ihre App sendet eine SignUp API-Anfrage und erstellt einen neuen Benutzer in Ihrem Benutzerpool.

  3. Ihre App fordert den Benutzer zur Eingabe eines E-Mail-Bestätigungscodes auf. Der Benutzer gibt den Code ein, den er in einer E-Mail-Nachricht erhalten hat.

  4. Ihre App sendet eine ConfirmSignUp API-Anfrage mit dem Bestätigungscode des Benutzers.

  5. Ihre App fordert den Benutzer zur Eingabe seines Benutzernamens und Passworts auf und der Benutzer gibt die Informationen ein.

  6. Ihre App sendet eine InitiateAuth API-Anfrage und speichert ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken. Ihre App ruft OIDC-Bibliotheken auf, um die Tokens Ihres Benutzers zu verwalten und eine dauerhafte Sitzung für diesen Benutzer zu unterhalten.

In der Amazon-Cognito-Benutzerpool-API können Sie keine Benutzer anmelden, die über einen IdP verbunden sind. Diese Benutzer müssen Sie über Ihre Benutzerpool-Endpunkte authentifizieren. Weitere Informationen zu den Benutzerpool-Endpunkten, die eine verwaltete Anmeldung beinhalten, finden Sie unterBenutzerpool-Endpunkte und verwaltete Anmeldereferenz.

Ihre Verbundbenutzer können mit der verwalteten Anmeldung beginnen und ihren IdP auswählen, oder Sie können die verwaltete Anmeldung überspringen und Ihre Benutzer zur Anmeldung direkt an Ihren IdP weiterleiten. Wenn Ihre API-Anforderung an den Autorisieren des Endpunkts einen IdP-Parameter enthält, leitet Amazon Cognito Ihren Benutzer im Hintergrund auf die Anmeldeseite des IdP weiter.

Beispielszenario mit verwalteten Anmeldeseiten
  1. Ihr Benutzer wählt die Schaltfläche zum Erstellen eines Kontos aus, die Sie in Ihrer App erstellt haben.

  2. Bei der verwalteten Anmeldung wird Ihrem Benutzer eine Liste der Anbieter sozialer Identitäten angezeigt, bei denen Sie Entwickleranmeldedaten registriert haben. Der Benutzer entscheidet sich für Apple.

  3. Ihre App leitet eine Anforderung an den Autorisieren des Endpunkts mit dem Anbieternamen SignInWithApple ein.

  4. Der Browser Ihres Benutzers öffnet die Apple-Authentifizierungsseite. Ihr Benutzer meldet sich an und autorisiert Amazon Cognito, seine Profilinformationen zu lesen.

  5. Amazon Cognito bestätigt das Apple-Zugriffstoken und fragt das Apple-Profil des Benutzers ab.

  6. Der Benutzer präsentiert Ihrer App einen Amazon-Cognito-Autorisierungscode.

  7. Die OIDC-Bibliothek in Ihrer Anwendung tauscht den Autorisierungscode mit dem aus Token-Endpunkt und speichert ein vom Benutzerpool ausgegebenes ID-Token, Zugriffstoken und Aktualisierungstoken. Ihre App verwendet OIDC-Bibliotheken, um die Token Ihres Benutzers zu verwalten und eine persistente Sitzung für diesen Benutzer aufrechtzuerhalten.

Die Benutzerpool-API und die verwalteten Anmeldeseiten unterstützen eine Vielzahl von Szenarien, die in diesem Handbuch beschrieben werden. In den folgenden Abschnitten erörtern wir, wie sich die Benutzerpool-API weiter in Klassen unterteilt, die Ihre Anforderungen in Bezug auf die Anmeldung, Registrierung und Ressourcenverwaltung unterstützen.

Liste der API-Operationen, gruppiert nach Autorisierungsmodell

Die Amazon-Cognito-Benutzerpool-API, die eine Schnittstelle für die Ressourcenverwaltung sowie eine Authentifizierungs- und Autorisierungsschnittstelle für Benutzer bildet, kombiniert die folgenden Autorisierungsmodelle bei ihren Operationen. Je nach API-Operation müssen Sie möglicherweise eine Autorisierung mit IAM-Anmeldeinformationen, einem Zugriffstoken, einem Sitzungstoken, einem Client-Schlüssel oder einer Kombination davon vornehmen. Für viele Operationen zur Authentifizierung und Autorisierung von Benutzern haben Sie die Wahl zwischen authentifizierten und nicht authentifizierten Versionen der Anforderung. Nicht authentifizierte Operationen sind eine bewährte Sicherheitsmethode für Apps, die Sie an Ihre Benutzer verteilen, z. B. mobile Apps. Dabei müssen Sie keine geheimen Schlüssel in Ihren Code aufnehmen.

Sie können Berechtigungen in IAM-Richtlinien nur für IAM-authorized Verwaltungsvorgänge und IAM-authorized Benutzeroperationen zuweisen.

IAM-authorized Verwaltungsvorgänge ändern und zeigen Ihren Benutzerpool und die App-Client-Konfiguration an, wie Sie es in der tun würden AWS-Managementkonsole.

Um beispielsweise Ihren Benutzerpool in einer UpdateUserPool API-Anforderung zu ändern, müssen Sie AWS Anmeldeinformationen und IAM-Berechtigungen angeben, um die Ressource zu aktualisieren.

Um diese Anfragen im AWS Command Line Interface (AWS CLI) oder einem AWS SDK zu autorisieren, konfigurieren Sie Ihre Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anfrage IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter Zugreifen AWS mit Ihren AWS Anmeldeinformationen im. Allgemeine AWS-Referenz Sie können auch Anforderungen direkt an die Service-Endpunkte für die Benutzerpool-API von Amazon Cognito senden. Sie müssen diese Anfragen mit AWS Anmeldeinformationen, die Sie in die Kopfzeile Ihrer Anfrage einbetten, autorisieren oder signieren. Weitere Informationen finden Sie unter Signieren von AWS API-Anfragen.

IAM-authorized Benutzeroperationen Registrierung, Anmeldung, Verwaltung, Änderung und Anzeige Ihrer Benutzer.

Sie können beispielsweise eine serverseitige Anwendungsebene haben, die ein Web-Frontend unterstützt. Bei Ihrer serverseitigen App handelt es sich um einen vertraulichen OAuth-Client, dem Sie privilegierten Zugriff auf Ihre Amazon-Cognito-Ressourcen gewähren. Um einen Benutzer in der App zu registrieren, kann Ihr Server AWS Anmeldeinformationen in eine AdminCreateUser API-Anfrage aufnehmen. Weitere Informationen zu OAuth-Client-Typen finden Sie unter Client Types in The OAuth 2.0 Authorization Framework.

Um diese Anfragen im AWS CLI oder in einem AWS SDK zu autorisieren, konfigurieren Sie Ihre serverseitige App-Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anfrage IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter Zugreifen AWS mit Ihren AWS Anmeldeinformationen im. Allgemeine AWS-Referenz Sie können auch Anforderungen direkt an die Service-Endpunkte für die Benutzerpool-API von Amazon Cognito senden. Sie müssen diese Anfragen mit AWS Anmeldeinformationen, die Sie in die Kopfzeile Ihrer Anfrage einbetten, autorisieren oder signieren. Weitere Informationen finden Sie unter Signieren von AWS API-Anfragen.

Wenn Ihr App-Client über einen geheimen Client-Schlüssel verfügt, müssen Sie Ihre IAM-Anmeldeinformationen und, je nach Operation, den Parameter SecretHash oder den Wert SECRET_HASH in AuthParameters angeben. Weitere Informationen finden Sie unter Berechnen von Werten für geheime Hashes.

Nicht authentifizierte Benutzeroperationen können zur Registrierung und Anmeldung Ihrer Benutzer sowie zum Zurücksetzen des Passworts der Benutzer genutzt werden. Verwenden Sie nicht authentifizierte oder öffentliche API-Operationen, wenn Sie möchten, dass sich jeder Internetbenutzer bei Ihrer App registrieren und anmelden kann.

Um beispielsweise einen Benutzer in Ihrer App zu registrieren, können Sie einen öffentlichen OAuth-Client verteilen, der keinen privilegierten Zugriff auf geheime Schlüssel bietet. Sie können diesen Benutzer für den nicht authentifizierten API-Vorgang registrieren. SignUp

Um diese Anfragen in einem öffentlichen Client zu senden, den Sie mit einem AWS SDK entwickelt haben, müssen Sie keine Anmeldeinformationen konfigurieren. Sie können Anforderungen auch direkt an die Service-Endpunkte für die Benutzerpool-API von Amazon Cognito ohne zusätzliche Autorisierung senden.

Wenn Ihr App-Client über einen geheimen Client-Schlüssel verfügt, müssen Sie je nach Operation den Parameter SecretHash oder den Wert SECRET_HASH in AuthParameters angeben. Weitere Informationen finden Sie unter Berechnen von Werten für geheime Hashes.

Token-authorized Benutzeroperationen: Abmelden, Verwalten von Anmeldeinformationen für Benutzer, Ändern und Anzeigen Ihrer Benutzer, nachdem sie sich angemeldet oder mit dem Anmeldevorgang begonnen haben. Verwenden Sie über Token autorisierte API-Operationen, wenn Sie keine geheimen Schlüssel in Ihrer App verteilen und Anforderungen mit den eigenen Anmeldeinformationen des Benutzers autorisieren möchten. Wenn Ihr Benutzer die Anmeldung abgeschlossen hat, müssen Sie seine über Token autorisierte API-Anforderung mit einem Zugriffstoken autorisieren. Wenn sich der Benutzer gerade in einem Anmeldevorgang befindet, müssen Sie seine über Token autorisierte API-Anforderung mit einem Sitzungstoken autorisieren, das Amazon Cognito in der Antwort auf die vorherige Anforderung zurückgegeben hat.

Vielleicht möchten Sie beispielsweise in einem öffentlichen Client das Profil eines Benutzers so aktualisieren, dass der Schreibzugriff auf das eigene Profil des Benutzers beschränkt ist. Um dieses Update durchzuführen, kann Ihr Kunde das Zugriffstoken des Benutzers in eine UpdateUserAttributes API-Anfrage aufnehmen.

Um diese Anfragen in einem öffentlichen Client zu senden, den Sie mit einem AWS SDK entwickelt haben, müssen Sie keine Anmeldeinformationen konfigurieren. Fügen Sie Ihrer Anforderung einen Parameter AccessToken oder Session hinzu. Sie können auch Anforderungen direkt an die Service-Endpunkte für die Benutzerpool-API von Amazon Cognito senden. Um eine Anforderung an einen Service-Endpunkt zu autorisieren, fügen Sie das Zugriffs- oder Sitzungstoken in den POST-Text Ihrer Anforderung ein.

Um eine API-Anforderung für eine über Token autorisierte Operation zu signieren, fügen Sie das Zugriffs-Token als Authorization-Header in die Anforderung ein, und zwar im Format Bearer <Base64-encoded access token>.

¹ RevokeToken und verwende GetTokensFromRefreshToken Aktualisierungstoken als Autorisierungsparameter. Das Aktualisierungstoken dient als Autorisierungstoken und als Zielressource.