Verwendung der Amazon-Cognito-Benutzerpool-API und der Benutzerpool-Endpunkte - 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 der Amazon-Cognito-Benutzerpool-API und der Benutzerpool-Endpunkte

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

  1. Zu Ihren Benutzerpool-Endpunkten gehören die gehostete Benutzeroberfläche und die Verbund-Endpunkte. Sie bilden ein Paket öffentlicher Webseiten, das Amazon Cognito aktiviert, wenn Sie eine Domain für Ihren Benutzerpool auswählen. Verwenden Sie für einen schnellen Einstieg in die Authentifizierungs- und Autorisierungsfunktionen der Amazon-Cognito-Benutzerpools, einschließlich Seiten für die Registrierung, Anmeldung, Passwortverwaltung und Multi-Faktor-Authentifizierung (MFA), die integrierte Benutzeroberfläche der gehosteten Benutzeroberfläche. Die anderen Benutzerpool-Endpunkte ermöglichen die Authentifizierung bei externen Identitätsanbietern (IdPs). Die von ihnen erbrachten Dienstleistungen beinhalten Folgendes.

    1. Callback-Endpunkte für Serviceprovider für authentifizierte Anträge Ihrer IdPs, wie saml2/idpresponse  und 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 jwks.json. Ihre App verwendet diese Endpunkte, wenn sie Token überprüft oder Benutzerprofildaten mit AWS-SDKs und OAuth-2.0-Bibliotheken abruft.

  2. Die API für Amazon-Cognito-Benutzerpools ist ein Satz von Tools für Ihre Web- oder Mobil-App, mit dem nach der Erfassung von Anmeldeinformationen in Ihrem eigenen benutzerdefinierten Frontend Benutzer authentifiziert werden können. 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 AWS-Rechnung um zusätzliche Kosten.

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 dessen Verbundidentität in einer AdminLinkProviderForUser-API-Anforderung mit einem lokalen Benutzer verknüpfen, kann er 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. Sie erstellt und konfiguriert die Ressourcen für Ihre Amazon-Cognito-Benutzerpools. Sie können beispielsweise Benutzerpools erstellen, AWS Lambda-Auslöser hinzufügen und Ihre gehostete UI-Domain konfigurieren. Die Benutzerpool-API führt auch Operationen zur Anmeldung und Registrierung sowie andere Benutzeroperationen 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 API-Anforderung SignUp 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 API-Anforderung ConfirmSignup 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 API-Anforderung InitiateAuth und speichert ein ID-Token, ein Zugriffstoken sowie 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 die gehostete Benutzeroberfläche enthalten, finden Sie unter Referenz für Benutzerpool-Verbund-Endpunkte und gehostete UI. Ihre Verbundbenutzer können zunächst in der gehosteten Benutzeroberfläche ihren IdP auswählen, Sie können aber auch die gehostete Benutzeroberfläche ü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 Benutzerpool-Endpunkten

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

  2. Sie präsentieren dem Benutzer eine Liste der Social-Identity-Anbieter, bei denen Sie Entwickleranmeldeinformationen 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. Im Browser des Benutzers wird die Apple-OAuth-Autorisierungsseite geöffnet. Der Benutzer legt fest, dass Amazon Cognito seine Profilinformationen lesen darf.

  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. Ihre App tauscht den Autorisierungscode durch den Token-Endpunkt aus 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.

Die Benutzerpool-API und die Benutzerpool–Endpunkte 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.

Authentifizierte und nicht authentifizierte API-Operationen der Amazon-Cognito-Benutzerpools

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-authentifizierte Verwaltungsoperationen und IAM-authentifizierte Benutzeroperationen zuweisen.

IAM-authentifizierte Verwaltungsoperationen können die Konfiguration Ihres Benutzerpools und Ihres App-Clients ändern und anzeigen, wie Sie dies in der AWS Management Console tun würden.

Um beispielsweise Ihren Benutzerpool mit einer API-Anforderung UpdateUserPool zu ändern, müssen Sie AWS-Anmeldeinformationen und IAM-Berechtigungen zum Aktualisieren der Ressource angeben.

Um diese Anforderungen in der AWS Command Line Interface (AWS CLI) oder einem AWS-SDK zu autorisieren, konfigurieren Sie Ihre Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anforderung IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter Zugreifen auf AWS mit Ihren AWS-Anmeldeinformationen in der 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 Anforderungen mit AWS-Anmeldeinformationen autorisieren oder signieren, die Sie in den Header Ihrer Anforderung einbetten. Weitere Informationen finden Sie unter Signieren von AWS-API-Anforderungen.

IAM-authentifizierte Verwaltungsoperationen
AddCustomAttributes
CreateGroup
CreateIdentityProvider
CreateResourceServer
CreateUserImportJob
CreateUserPool
CreateUserPoolClient
CreateUserPoolDomain
DeleteGroup
DeleteIdentityProvider
DeleteResourceServer
DeleteUserPool
DeleteUserPoolClient
DeleteUserPoolDomain
DescribeIdentityProvider
DescribeResourceServer
DescribeRiskConfiguration
DescribeUserImportJob
DescribeUserPool
DescribeUserPoolClient
DescribeUserPoolDomain
GetCSVHeader
GetGroup
GetIdentityProviderByIdentifier
GetSigningCertificate
GetUICustomization
GetUserPoolMFaconfig
ListGroups
ListIdentityProviders
ListResourceServers
ListTagsForResource
ListUserImportJobs
ListUserPoolClients
ListUserPools
ListUsers
ListUsersInGroup
SetRiskConfiguration
SetUICustomization
SetUserPoolMfaConfig
StartUserImportJob
StopUserImportJob
TagResource
UntagResource
UpdateGroup
UpdateIdentityProvider
UpdateResourceServer
UpdateUserPool
UpdateUserPoolClient
UpdateUserPoolDomain

IAM-authentifizierte Benutzeroperationen können zum Anmelden, Registrieren, Ändern und Anzeigen Ihrer Benutzer sowie zum Verwalten von deren Anmeldeinformationen verwendet werden.

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 API-Aufforderung AdminCreateUser aufnehmen. Weitere Informationen zu OAuth-Client-Typen finden Sie unter Client Types in The OAuth 2.0 Authorization Framework.

Um diese Anforderungen in der AWS CLI oder einem AWS-SDK zu autorisieren, konfigurieren Sie Ihre serverseitige App-Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anforderung IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter Zugreifen auf AWS mit Ihren AWS-Anmeldeinformationen in der 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 Anforderungen mit AWS-Anmeldeinformationen autorisieren oder signieren, die Sie in den Header Ihrer Anforderung einbetten. Weitere Informationen finden Sie unter Signieren von AWS-API-Anforderungen.

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.

IAM-authentifizierte Benutzeroperationen
AdminAddUserToGroup
AdminConfirmSignUp
AdminCreateUser
AdminDeleteUser
AdminDeleteUserAttributes
AdminDisableProviderForUser
AdminDisableUser
AdminEnableUser
AdminForgetDevice
AdminGetDevice
AdminGetUser
AdminInitiateAuth
AdminLinkProviderForUser
AdminListDevices
AdminListGroupsForUser
AdminListUserAuthEvents
AdminRemoveUserFromGroup
AdminResetUserPassword
AdminRespondToAuthChallenge
AdminSetUserMFAPReference
AdminSetUserPassword
AdminSetUserSettings
AdminUpdateAuthEventFeedback
AdminUpdateDeviceStatus
AdminUpdateUserAttributes
AdminUserLobalSignout

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 mit der nicht authentifizierten API-Operation SignUp registrieren.

Um diese Anforderungen 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.

Nicht authentifizierte Benutzeroperationen
SignUp
ConfirmSignUp
ResendConfirmationCode
ForgotPassword
ConfirmForgotPassword
InitiateAuth

Über Token autorisierte Benutzeroperationen können zum Abmelden, Ändern und Anzeigen Ihrer Benutzer sowie zur Verwaltung der Anmeldeinformationen für Ihre Benutzer verwendet werden, nachdem sich diese angemeldet bzw. den Anmeldevorgang gestartet 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. Für diese Aktualisierung kann Ihr Client das Zugriffstoken des Benutzers in eine API-Anforderung UpdateUserAttributes aufnehmen.

Um diese Anforderungen 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>.

Über Token autorisierte Benutzeroperationen AccessToken Sitzung
RespondToAuthChallenge
ChangePassword
GetUser
UpdateUserAttributes
DeleteUserAttributes
DeleteUser
ConfirmDevice
ForgetDevice
GetDevice
ListDevices
UpdateDeviceStatus
GetUserAttributeVerificationCode
VerifyUserAttribute
SetUserSettings
SetUserMFAPreference
GlobalSignout
AssociateSoftwareToken
UpdateAuthEventFeedback
VerifySoftwareToken
RevokeToken¹

¹ RevokeToken verwendet ein Aktualisierungstoken als Parameter. Das Aktualisierungstoken dient als Autorisierungstoken und als Zielressource.