Verwenden der Benutzerpools API und des Autorisierungsservers - 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.

Verwenden der Benutzerpools API und des Autorisierungsservers

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. Für einen schnellen Einstieg in die Authentifizierungs- und Autorisierungsfunktionen der Amazon Cognito Cognito-Benutzerpools, einschließlich Seiten für Registrierung, Anmeldung, Passwortverwaltung und Multi-Faktor-Authentifizierung (MFA), verwenden Sie die integrierte Benutzeroberfläche der gehosteten Benutzeroberfläche. Die anderen Endpunkte des Benutzerpools erleichtern die Authentifizierung bei externen Identitätsanbietern (). IdPs Die von ihnen erbrachten Dienstleistungen beinhalten Folgendes.

    1. Callback-Endpunkte von Dienstanbietern für authentifizierte Ansprüche von Ihnen, wie und. IdPs 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 jwks.json. Ihre App verwendet diese Endpunkte, wenn sie Token verifiziert oder Benutzerprofildaten mit und 2.0-Bibliotheken abruft. AWS SDKs OAuth

  2. Die Amazon Cognito Cognito-Benutzerpools API sind eine Reihe von Tools für Ihre Web- oder Mobil-App, nachdem sie Anmeldeinformationen in Ihrem eigenen benutzerdefinierten Frontend gesammelt hat, um Benutzer zu authentifizieren. Bei der API Benutzerpool-Authentifizierung werden die folgenden JSON Web-Token erzeugt.

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

    2. Ein Zugriffstoken, das Ihren Benutzer autorisiert, tokenautorisierte API Anfragen an einen Dienstendpunkt zu erstellen.AWS

      Anmerkung

      Standardmäßig enthalten Zugriffstoken aus der API Benutzerpool-Authentifizierung nur den Bereich. aws.cognito.signin.user.admin Um ein Zugriffstoken mit zusätzlichen Bereichen zu generieren, z. B. um eine Anfrage an einen Drittanbieter zu autorisierenAPI, Bereiche während der Authentifizierung über Ihre Benutzerpool-Endpunkte anzufordern oder benutzerdefinierte Bereiche in einem hinzuzufügen. Lambda-Auslöser für die Vorab-Generierung von Token Die Anpassung des Zugriffstokens erhöht Ihre Rechnung um zusätzliche Kosten. AWS

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 föderierte Identität in einer AdminLinkProviderForUserAPIAnfrage mit einem lokalen Benutzer verknüpfen, kann sich dieser bei den Benutzerpools API anmelden. Weitere Informationen finden Sie unter Verknüpfen von Verbundbenutzern mit einem vorhandenen Benutzerprofil.

Der Amazon Cognito Cognito-Benutzerpool hat einen doppelten API Zweck. 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. Der Benutzerpool führt API auch Registrierungs-, Anmelde- und andere Benutzervorgänge für lokale und verknüpfte Benutzer durch.

Beispielszenario mit den Amazon Cognito Cognito-Benutzerpools 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 SignUpAPIAnfrage 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 ConfirmSignUpAPIAnfrage 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 InitiateAuthAPIAnfrage und speichert ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken. Ihre App ruft OIDC Bibliotheken auf, um die Token Ihres Benutzers zu verwalten und eine dauerhafte Sitzung für diesen Benutzer aufrechtzuerhalten.

In den Amazon Cognito Cognito-Benutzerpools können Sie keine Benutzer anmeldenAPI, die sich über einen IdP verbünden. 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 Benutzerpool-Endpunkte und Referenz für gehostete Benutzeroberflächen. 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 Anfrage an den einen IdP-Parameter Autorisieren des Endpunkts enthält, leitet Amazon Cognito Ihren Benutzer im Hintergrund zur IdP-Anmeldeseite 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. Der Browser Ihres Benutzers öffnet die Apple-Autorisierungsseite. OAuth 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 Token Ihres Benutzers zu verwalten und eine dauerhafte Sitzung für diesen Benutzer aufrechtzuerhalten.

Die Benutzerpools API und die Benutzerpool-Endpunkte unterstützen eine Vielzahl von Szenarien, die in diesem Handbuch beschrieben werden. In den folgenden Abschnitten wird untersucht, wie die Benutzerpools API weiter in Klassen unterteilt werden, die Ihre Anforderungen an Registrierung, Anmeldung und Ressourcenverwaltung erfüllen.

Amazon Cognito Cognito-Benutzer bündeln authentifizierte und nicht authentifizierte Operationen API

Die Amazon Cognito Cognito-BenutzerpoolsAPI, sowohl eine Ressourcenverwaltungsschnittstelle als auch eine benutzerorientierte Authentifizierungs- und Autorisierungsschnittstelle, kombinieren die Autorisierungsmodelle, die in ihren Abläufen verwendet werden. Je nach API Vorgang müssen Sie die Autorisierung möglicherweise mit IAM Anmeldeinformationen, einem Zugriffstoken, einem Sitzungstoken, einem geheimen Client-Schlüssel oder einer Kombination aus diesen bereitstellen. 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 nur in IAM Richtlinien für IAM-authentifizierte Verwaltungsvorgänge und zuweisenIAM-authentifizierte Benutzeroperationen.

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

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

Um diese Anfragen in AWS Command Line Interface (AWS CLI) oder an zu autorisieren AWS SDK, 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 in der Allgemeine AWS-Referenz. Sie können Anfragen auch direkt an die Service-Endpunkte für die Amazon Cognito Cognito-Benutzerpools senden. API 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 AWS API von Anfragen.

IAM-authentifizierte Verwaltungsvorgänge
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: Registrierung, Anmeldung, Verwaltung der Anmeldeinformationen, Änderung und Anzeige Ihrer Benutzer.

Sie können beispielsweise eine serverseitige Anwendungsebene haben, die ein Web-Frontend unterstützt. Ihre serverseitige App ist ein OAuth vertraulicher Client, dem Sie privilegierten Zugriff auf Ihre Amazon Cognito Cognito-Ressourcen anvertrauen. Um einen Benutzer in der App zu registrieren, kann Ihr Server AWS Anmeldeinformationen in eine AdminCreateUserAPIAnfrage aufnehmen. Weitere Informationen zu OAuth Clienttypen finden Sie unter Clienttypen in The OAuth 2.0 Authorization Framework.

Um diese Anfragen in AWS CLI oder an zu autorisieren AWS SDK, 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 in der. Allgemeine AWS-Referenz Sie können Anfragen auch direkt an die Service-Endpunkte für die Amazon Cognito Cognito-Benutzerpools senden. API 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 AWS API von Anfragen.

Wenn Ihr App-Client über einen geheimen Clientschlüssel verfügt, müssen Sie sowohl Ihre IAM Anmeldeinformationen als auch, je nach Vorgang, entweder den SecretHash Parameter oder den SECRET_HASH Wert in angebenAuthParameters. 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
AdminUserGlobalSignOut

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 jemand im Internet bei Ihrer App registriert und anmeldet.

Um beispielsweise einen Benutzer in Ihrer App zu registrieren, können Sie einen OAuth öffentlichen Client bereitstellen, der keinen privilegierten Zugriff auf geheime Daten gewährt. Sie können diesen Benutzer mit dem nicht authentifizierten Vorgang API registrieren. SignUp

Um diese Anfragen in einem öffentlichen Client zu senden, den Sie mit einem entwickelt haben AWS SDK, müssen Sie keine Anmeldeinformationen konfigurieren. Sie können Anfragen auch ohne zusätzliche Autorisierung direkt an die Service-Endpunkte für die Amazon Cognito Cognito-Benutzerpools API 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 tokenautorisierte API Operationen, wenn Sie keine Geheimnisse in Ihrer App verteilen möchten und Anfragen mit den eigenen Anmeldeinformationen Ihres Benutzers autorisieren möchten. Wenn Ihr Benutzer die Anmeldung abgeschlossen hat, müssen Sie seine API tokenautorisierte Anfrage mit einem Zugriffstoken autorisieren. Wenn sich Ihr Benutzer gerade in einem Anmeldevorgang befindet, müssen Sie seine tokenautorisierte API Anfrage mit einem Sitzungstoken autorisieren, das Amazon Cognito in der Antwort auf die vorherige Anfrage 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 diese Aktualisierung vorzunehmen, kann Ihr Kunde das Zugriffstoken des Benutzers in eine Anfrage aufnehmen. UpdateUserAttributesAPI

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

Um eine API Anfrage für einen durch Token autorisierten Vorgang zu signieren, fügen Sie das Zugriffstoken als Authorization Header in Ihre Anfrage ein, und zwar im folgenden 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.