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.
Anwendungsspezifische Einstellungen mit App-Clients
Ein Benutzerpool-App-Client ist eine Konfiguration innerhalb eines Benutzerpools, die mit einer Mobil- oder Webanwendung interagiert, welche sich bei Amazon Cognito authentifiziert. App-Clients können authentifizierte und nicht authentifizierte API Operationen aufrufen und einige oder alle Attribute Ihrer Benutzer lesen oder ändern. Ihre App muss sich bei Operationen gegenüber dem App-Client identifizieren, um sich zu registrieren, anzumelden und mit vergessenen Passwörtern umzugehen. Diese API Anfragen müssen die Selbstidentifikation mit einer App-Client-ID und die Autorisierung mit einem optionalen geheimen Client-Schlüssel beinhalten. Sie müssen alle App-Clients IDs oder Geheimnisse schützen, sodass nur autorisierte Client-Apps diese nicht authentifizierten Operationen aufrufen können. Wenn Sie Ihre App so konfigurieren, dass authentifizierte API Anfragen mit AWS Anmeldeinformationen signiert werden, müssen Sie Ihre Anmeldeinformationen außerdem vor Benutzereinsicht schützen.
Sie können mehrere Apps für einen Benutzerpool erstellen. Ein App-Client kann mit der Codeplattform einer App oder einem separaten Mandanten in Ihrem Benutzerpool verknüpft sein. Beispielsweise können Sie eine App für eine serverseitige Anwendung und eine Android-App erstellen. Jede Anwendung hat eine eigene App-Client-ID.
Sie können Einstellungen für die folgenden Benutzerpoolfunktionen auf App-Client-Ebene anwenden:
-
Gehostete Benutzeroberfläche IdPs, Arten von ZuschüssenURLs, Rückrufe und Anpassung
Arten von App-Clients
Wenn Sie einen App-Client in Amazon Cognito erstellen, können Sie Optionen auf der Grundlage der OAuth Standardclienttypen öffentlicher Client und vertraulicher Client vorab ausfüllen. Konfigurieren eines vertraulichen Clients mit einem Clientschlüssel. Weitere Informationen zu Clienttypen finden Sie unter IETFRFC6749
- Öffentlicher Client
-
Ein öffentlicher Client läuft in einem Browser oder auf einem mobilen Gerät. Da er keine vertrauenswürdigen serverseitigen Ressourcen hat, hat es auch keinen Clientschlüssel.
- Vertraulicher Client
-
Ein vertraulicher Client verfügt über serverseitige Ressourcen, denen ein geheimer Client-Schlüssel für nicht API authentifizierte Operationen anvertraut werden kann. Die App wird möglicherweise als Daemon- oder Shell-Skript auf Ihrem Backend-Server ausgeführt.
- Clientschlüssel
-
Ein geheimer Client-Schlüssel oder ein Client-Passwort ist eine feste Zeichenfolge, die Ihre App bei allen API Anfragen an den App-Client verwenden muss. Ihr App-Client muss einen Clientschlüssel haben, um
client_credentials
-Erteilungen auszuführen. Weitere Informationen finden Sie unter IETFRFC6749 #2 .3.1.Nach der Erstellung einer App können die Schlüssel nicht mehr geändert werden. Sie können eine neue App mit einem neuen Schlüssel erstellen, wenn Sie den Schlüssel rotieren möchten. Ferner sind Sie in der Lage, eine Anwendung zu löschen und so den Zugriff über Apps zu blockieren, welche die jeweilige App-Client-ID verwenden.
Sie können einen vertraulichen Client und einen Clientschlüssel mit einer öffentlichen App verwenden. Verwenden Sie einen CloudFront Amazon-Proxy, um einen SECRET_HASH
In-Transit hinzuzufügen. Weitere Informationen finden Sie im AWS
Blog unter Schützen öffentlicher Clients für Amazon Cognito mithilfe eines CloudFront Amazon-Proxys
JSONWeb-Token
Amazon Cognito-App-Clients können JSON Web-Token (JWTs) der folgenden Typen ausgeben.
- Identitätstoken (ID)
-
Eine überprüfbare Aussage, dass Ihr Benutzer in Ihrem Benutzerpool authentifiziert wurde. OpenID Connect (OIDC) hat die ID-Token-Spezifikation
zu den in OAuth 2.0 definierten Standards für Zugriffs- und Aktualisierungstoken hinzugefügt. Das ID-Token enthält Identitätsinformationen wie Benutzerattribute, die Ihre App verwenden kann, um ein Benutzerprofil zu erstellen und Ressourcen bereitzustellen. Weitere Informationen finden Sie unter Grundlegendes zum Identitätstoken (ID). - Zugriffstoken
-
Eine überprüfbare Erklärung zu den Zugriffsrechten Ihres Benutzers. Das Zugriffstoken enthält Bereiche
, eine Funktion von OIDC und OAuth 2.0. Ihre App kann Back-End-Ressourcen Bereiche präsentieren und nachweisen, dass Ihr Benutzerpool einen Benutzer oder eine Maschine für den Zugriff auf Daten aus eigenen Benutzerdaten oder deren eigenen Benutzerdaten autorisiert hat. API Ein Zugriffstoken mit benutzerdefinierten Bereichen, häufig aus einer Erteilung von M2M-Client-Anmeldeinformationen, autorisiert den Zugriff auf einen Ressourcenserver. Weitere Informationen finden Sie unter Das Zugriffstoken verstehen. - Aktualisierungs-Token
-
Eine verschlüsselte Erklärung zur Erstauthentifizierung, die Ihre App Ihrem Benutzerpool präsentieren kann, wenn die Token Ihrer Benutzer ablaufen. Eine Anforderung für ein Aktualisierungstoken gibt neue, noch nicht abgelaufene Zugriffs- und ID-Token zurück. Weitere Informationen finden Sie unter Grundlegendes zum Aktualisierungstoken.
Sie können den Ablauf dieser Token für jeden App-Client auf der Registerkarte App-Integration Ihres Benutzerpools in der Amazon-Cognito-Konsole
App-Client-Bedingungen
Die folgenden Begriffe sind verfügbare Eigenschaften von App-Clients in der Amazon-Cognito-Konsole.
- Rückruf erlaubt URLs
-
Ein Rückruf URL gibt an, wohin der Benutzer nach einer erfolgreichen Anmeldung weitergeleitet wird. Wählen Sie mindestens einen Rückruf aus. URL Der Rückruf mussURL:
-
Sei ein AbsolutURI.
-
Vorab bei einem Client registriert worden sein.
-
Sie darf keine Fragment-Komponente enthalten.
Siehe OAuth2.0 — Endpunkt der Umleitung
. Amazon Cognito fordert
HTTPS
stattHTTP
, außer nur für Testzwecke fürhttp://localhost
.App-Callbacks URLs wie diese
myapp://example
werden ebenfalls unterstützt. -
- Abmelden erlaubt URLs
-
Eine Abmeldung URL gibt an, wohin Ihr Benutzer nach dem Abmelden weitergeleitet werden soll.
- Festlegen von Lese- und Schreibberechtigungen
-
Ihr Benutzerpool kann viele Kunden haben, von denen jeder seinen eigenen App-Client hat und IdPs. Sie können Ihren App-Client so konfigurieren, dass er nur Lese- und Schreibzugriff auf die Benutzerattribute hat, die für die App relevant sind. In Fällen wie der machine-to-machine (M2M-) Autorisierung können Sie Zugriff auf keines Ihrer Benutzerattribute gewähren.
Überlegungen zur Konfiguration der Lese- und Schreibberechtigungen für Attribute
-
Wenn Sie einen App-Client erstellen und die Lese- und Schreibberechtigungen für Attribute nicht anpassen, gewährt Amazon Cognito Lese- und Schreibberechtigungen für alle Benutzerpool-Attribute.
-
Sie können Schreibzugriff für unveränderliche benutzerdefinierte Attribute gewähren. Ihr App-Client kann Werte in unveränderliche Attribute schreiben, wenn Sie einen Benutzer erstellen oder registrieren. Danach können Sie keine Werte mehr in unveränderliche benutzerdefinierte Attribute für den Benutzer schreiben.
-
App-Clients müssen Schreibzugriff auf die erforderlichen Attribute in Ihrem Benutzerpool haben. Die Amazon-Cognito-Konsole legt die erforderlichen Attribute automatisch als schreibbar fest.
-
Sie können einem App-Client nicht erlauben, Schreibzugriff auf
email_verified
oderphone_number_verified
zu haben. Ein Benutzerpool-Administrator kann diese Werte ändern. Ein Benutzer kann den Wert dieser Attribute nur durch Attributüberprüfung ändern.
-
- Authentifizierungsabläufe
-
Die Methoden, die Ihr App-Client für die Anmeldung zulässt. Ihre App kann die Authentifizierung mit Benutzername und Passwort, Secure Remote Password (SRP), benutzerdefinierte Authentifizierung mit Lambda-Triggern und Token-Aktualisierung unterstützen. Verwenden Sie als bewährte Sicherheitspraxis die SRP Authentifizierung als primäre Anmeldemethode. Die gehostete Benutzeroberfläche meldet Benutzer automatisch mit SRP an.
- Benutzerdefinierte Bereiche
-
Ein benutzerdefinierter Bereich ist ein Bereich, den Sie unter Resource Servers (Ressourcen-Server) für Ihre eigenen Ressourcenserver definieren. Das Format ist
resource-server-identifier
/scope
. Siehst duBereiche, M2M und APIs mit Ressourcenservern. - Standardumleitung URI
-
Ersetzt den
redirect_uri
Parameter in Authentifizierungsanfragen für Benutzer durch Drittanbieter IdPs. Konfigurieren Sie diese App-Client-Einstellung mit demDefaultRedirectURI
Parameter einer CreateUserPoolClientUpdateUserPoolClientAPIOR-Anforderung. Dies URL muss auch Mitglied desCallbackURLs
für Ihren App-Client sein. Amazon Cognito leitet authentifizierte Sitzungen dorthin um, wenn: URL-
Ihrem App-Client ist ein Identitätsanbieter zugewiesen und mehrere Rückrufe URLs definiert. Ihr Benutzerpool leitet Authentifizierungsanfragen an den Autorisierungsserver zur Standardumleitung weiter, URI wenn sie keinen
redirect_uri
Parameter enthalten. -
Ihrem App-Client ist ein Identitätsanbieter zugewiesen und ein Callback URLs definiert. In diesem Szenario ist es nicht erforderlich, einen Standard-Callback URL zu definieren. Anfragen, die keinen
redirect_uri
Parameter enthalten, leiten zu dem einen verfügbaren Callback URL weiter.
-
- Identitätsanbieter
-
Sie können einige oder alle externen Identitätsanbieter (IdPs) Ihres Benutzerpools auswählen, um Ihre Benutzer zu authentifizieren. Ihr App-Client kann auch nur lokale Benutzer in Ihrem Benutzerpool authentifizieren. Wenn Sie Ihrem App-Client einen IdP hinzufügen, können Sie Autorisierungslinks für den IdP generieren und ihn auf Ihrer Anmeldeseite der gehosteten Benutzeroberfläche anzeigen. Sie können mehrere zuweisen IdPs, müssen jedoch mindestens einen zuweisen. Weitere Informationen zur Verwendung von Extern IdPs finden Sie unterHinzufügen einer Benutzerpool-Anmeldung über einen Drittanbieter.
- OpenID-Connect-Bereiche
-
Wählen Sie einen oder mehrere der folgenden
OAuth
-Bereiche aus, um die Zugriffsprivilegien, die für Zugriffs-Token eingestellt werden können, festzulegen.-
Der
openid
-Bereich gibt an, dass Sie ein ID-Token und die eindeutige ID eines Benutzers abrufen möchten. Außerdem werden alle oder einige Benutzerattribute angefordert, je nachdem welche zusätzlichen Bereiche in der Anfrage enthalten sind. Amazon Cognito gibt kein ID-Token zurück, es sei denn, Sie fordern denopenid
-Bereich an. Deropenid
-Bereich autorisiert Ansprüche auf strukturelle ID-Tokens wie Ablauf und Schlüssel-ID und bestimmt die Benutzerattribute, die Sie in einer Antwort von userInfo Endpunkt erhalten.-
Wenn
openid
der einzige angeforderte Bereich ist, füllt Amazon Cognito das ID-Token mit allen Benutzerattributen, die der aktuelle App-Client lesen kann. DieuserInfo
-Antwort auf ein Zugriffs-Token mit nur diesem Bereich gibt alle Benutzerattribute zurück. -
Wenn Sie
openid
mit anderen Bereichen wiephone
,email
oderprofile
anfordern, geben das ID-Token unduserInfo
die eindeutige ID des Benutzers und die durch die zusätzlichen Bereiche definierten Attribute zurück.
-
-
Der
phone
-Bereich genehmigt den Zugriff aufphone_number
undphone_number_verified
-Anfragen. Dieser Bereich kann ausschließlich mit demopenid
-Bereich beantragt werden. -
Der
email
-Bereich genehmigt den Zugriff aufemail
undemail_verified
-Anfragen. Dieser Bereich kann ausschließlich mit demopenid
-Bereich beantragt werden. -
Der
aws.cognito.signin.user.admin
Geltungsbereich gewährt Zugriff auf Amazon Cognito Cognito-Benutzerpools, API für die Zugriffstoken erforderlich sind, z. B. UpdateUserAttributesund VerifyUserAttribute. -
Der
profile
-Bereich gewährt Zugriff auf alle Benutzerattribute, die vom Client gelesen werden können. Dieser Bereich kann ausschließlich mit demopenid
-Bereich beantragt werden.
Weitere Informationen zu Bereichen finden Sie in der Liste der OIDCStandardbereiche
. -
- OAuthArten von Zuschüssen
-
Ein OAuth Grant ist eine Authentifizierungsmethode, mit der Benutzerpool-Token abgerufen werden. Amazon Cognito unterstützt die folgenden Arten von Erteilungen. Um diese OAuth Zuschüsse in Ihre App zu integrieren, müssen Sie Ihrem Benutzerpool eine Domain hinzufügen.
Erteilung des Autorisierungscodes
Durch die Gewährung des Autorisierungscodes wird ein Code generiert, den Ihre App bei der/beim Token-Endpunkt gegen Benutzerpool-Token eintauschen kann. Wenn Sie einen Autorisierungscode austauschen, erhält Ihre App die ID, den Zugriff und die Aktualisierungs-Token. Dieser OAuth Ablauf erfolgt, wie die implizite Gewährung, in den Browsern Ihrer Benutzer. Die Gewährung eines Autorisierungscodes ist die sicherste Art von Erteilung, die Amazon Cognito bietet, da Token in den Sitzungen Ihrer Benutzer nicht sichtbar sind. Stattdessen generiert Ihre App die Anfrage, die Token zurückgibt, und kann sie im geschützten Speicher zwischenspeichern. Weitere Informationen finden Sie unter Autorisierungscode in IETFRFC6749 #1 .3.1
Anmerkung
Als bewährte Sicherheitsmethode in Apps für öffentliche Clients sollten Sie nur den OAuth Ablauf für die Gewährung von Autorisierungscodes aktivieren und Proof Key for Code Exchange () implementieren, um den Tokenaustausch einzuschränken. PKCE Mit kann ein Client nur dann einen Autorisierungscode austauschenPKCE, wenn er dem Token-Endpunkt dasselbe Geheimnis zur Verfügung gestellt hat, das in der ursprünglichen Authentifizierungsanfrage angegeben wurde. Weitere Informationen dazu finden Sie PKCE unter IETFRFC7636
. Implizite Erteilung
Durch die implizite Erteilung wird der Browsersitzung Ihres Benutzers direkt aus der/dem Autorisieren des Endpunkts ein Zugriffs- und ID-Token, jedoch kein Aktualisierungstoken, zur Verfügung gestellt. Eine implizite Gewährung macht eine separate Anfrage an den Token-Endpunkt überflüssig, ist jedoch nicht mit Aktualisierungstoken kompatibel PKCE und gibt auch keine Aktualisierungstoken zurück. Diese Art der Erteilung eignet sich für Testszenarien und Anwendungsarchitekturen, bei denen Autorisierungscode-Erteilungen nicht abgeschlossen werden können. Weitere Informationen finden Sie unter Impliziter Zuschuss in IETFRFC6749
#1 .3.2. Sie können die Autorisierungscode-Erteilung und die implizite Codeerteilung in einem App-Client aktivieren und dann beide Erteilungen nach Bedarf verwenden. Erteilung von Client-Anmeldeinformationen
Die Gewährung von Kundenanmeldedaten gilt für machine-to-machine (M2M-) Kommunikation. Autorisierungscode- und implizite Erteilungen geben Token an authentifizierte menschliche Benutzer aus. Kundenanmeldedaten gewähren eine bereichsabhängige Autorisierung von einem nicht interaktiven System zu einem. API Ihre App kann Kundenanmeldeinformationen direkt vom Token-Endpunkt anfordern und erhält ein Zugriffstoken. Weitere Informationen finden Sie unter Client-Anmeldeinformationen in IETFRFC6749
#1 .3.4. Sie können die Gewährung von Client-Anmeldeinformationen nur in App-Clients aktivieren, die über einen geheimen Client-Schlüssel verfügen und die weder Autorisierungscode- noch implizite Erteilungen unterstützen. Anmerkung
Da Sie den Prozess für Client-Anmeldeinformationen nicht als Benutzer aufrufen, können Sie mit dieser Erteilung nur benutzerdefinierte Bereiche zu Zugriffstoken hinzufügen. Ein benutzerdefinierter Bereich ist ein Bereich, den Sie für Ihre eigenen Ressourcenserver definieren. Standardbereiche wie
openid
undprofile
gelten nicht für nichtmenschliche Benutzer.Da es sich bei ID-Token um eine Überprüfung von Benutzerattributen handelt, sind sie für die M2M-Kommunikation nicht relevant und werden nicht durch Erteilungen für Kundenanmeldeinformationen ausgestellt. Siehe Bereiche, M2M und APIs mit Ressourcenservern.
Bei Zuschüssen mit Kundendaten fallen zusätzliche Kosten auf Ihre AWS Rechnung an. Weitere Informationen finden Sie unter Amazon Cognito – Preise
.
Erstellen eines App-Clients
Aktualisierung eines Benutzerpool-App-Clients (AWS CLI und AWS API)
Geben Sie am den AWS CLI folgenden Befehl ein:
aws cognito-idp update-user-pool-client --user-pool-id "
MyUserPoolID
" --client-id "MyAppClientID
" --allowed-o-auth-flows-user-pool-client --allowed-o-auth-flows "code" "implicit" --allowed-o-auth-scopes "openid" --callback-urls "["https://example.com
"]" --supported-identity-providers "["MySAMLIdP", "LoginWithAmazon"]"
Wenn der Befehl erfolgreich ist, wird eine Bestätigung AWS CLI zurückgegeben:
{ "UserPoolClient": { "ClientId": "
MyClientID
", "SupportedIdentityProviders": [ "LoginWithAmazon", "MySAMLIdP" ], "CallbackURLs": [ "https://example.com
" ], "AllowedOAuthScopes": [ "openid" ], "ClientName": "Example", "AllowedOAuthFlows": [ "implicit", "code" ], "RefreshTokenValidity": 30, "AuthSessionValidity": 3, "CreationDate": 1524628110.29, "AllowedOAuthFlowsUserPoolClient": true, "UserPoolId": "MyUserPoolID
", "LastModifiedDate": 1530055177.553 } }
Weitere Informationen finden Sie in der AWS CLI Befehlsreferenz: update-user-pool-client.
AWS API: UpdateUserPoolClient
Informationen über einen Benutzerpool-App-Client abrufen (AWS CLI und AWS API)
aws cognito-idp describe-user-pool-client --user-pool-id
MyUserPoolID
--client-idMyClientID
Weitere Informationen finden Sie in der AWS CLI Befehlsreferenz: describe-user-pool-client.
AWS API: DescribeUserPoolClient
Auflisten aller App-Client-Informationen in einem Benutzerpool (AWS CLI und AWS API)
aws cognito-idp list-user-pool-clients --user-pool-id "
MyUserPoolID
" --max-results 3
Weitere Informationen finden Sie in der AWS CLI Befehlsreferenz: list-user-pool-clients.
AWS API: ListUserPoolClients
Löschen eines Benutzerpool-App-Clients (AWS CLI und AWS API)
aws cognito-idp delete-user-pool-client --user-pool-id "
MyUserPoolID
" --client-id "MyAppClientID
"
Weitere Informationen finden Sie in der AWS CLI Befehlsreferenz: delete-user-pool-client
AWS API: DeleteUserPoolClient