

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.

# Zugriff auf Ressourcen nach erfolgreicher Anmeldung
Zugreifen auf Ressourcen nach der Anmeldung

Ihre App-Benutzer können sich entweder direkt über einen Benutzerpool anmelden oder sich über einen externen Identitätsanbieter (IdP) zusammenschließen. Der Benutzerpool verwaltet den Aufwand für die Verwaltung der Token, die bei der Anmeldung in sozialen Netzwerken über Facebook, Google, Amazon und Apple sowie von OpenID Connect (OIDC) und SAML zurückgegeben werden. IdPs Weitere Informationen finden Sie unter [JSON-Webtoken (JWTs) für den Benutzerpool verstehen](amazon-cognito-user-pools-using-tokens-with-identity-providers.md). 

Nach einer erfolgreichen Authentifizierung erhält Ihre App Benutzerpool-Token von Amazon Cognito. Sie können Benutzerpool-Token verwenden, um:
+ Rufen Sie AWS Anmeldeinformationen ab, die Anfragen nach Anwendungsressourcen AWS-Services wie Amazon DynamoDB und Amazon S3 autorisieren.
+ Stellen Sie einen temporären, widerruflichen Authentifizierungsnachweis bereit.
+ Füllen Sie Identitätsdaten in ein Benutzerprofil in Ihrer App ein.
+ Autorisieren Sie Änderungen am Profil des angemeldeten Benutzers im Benutzerpoolverzeichnis.
+ Autorisieren Sie Anfragen nach Benutzerinformationen mit einem Zugriffstoken.
+ Autorisieren Sie Anfragen an Daten, die sich hinter zugriffsgeschützten externen APIs Daten mit Zugriffstoken befinden.
+ Autorisieren Sie den Zugriff auf Anwendungsressourcen, die auf dem Client oder Server gespeichert sind, mit Amazon Verified Permissions.

Weitere Informationen erhalten Sie unter [Ein Beispiel für eine Authentifizierungssitzung](authentication.md#amazon-cognito-user-pools-authentication-flow) und [JSON-Webtoken (JWTs) für den Benutzerpool verstehen](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

![\[Übersicht über die Authentifizierung.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/scenario-authentication-cup.png)


**Topics**
+ [

# Autorisieren des Zugriffs auf Client- oder Serverressourcen mit von Amazon Verified Permissions
](scenario-backend.md)
+ [

# Zugriff auf Ressourcen mit API Gateway nach der Anmeldung
](user-pool-accessing-resources-api-gateway-and-lambda.md)
+ [

# Zugriff AWS-Services über einen Identitätspool nach der Anmeldung
](amazon-cognito-integrating-user-pools-with-identity-pools.md)

# Autorisieren des Zugriffs auf Client- oder Serverressourcen mit von Amazon Verified Permissions
Zugriff auf Ressourcen mit verifizierten Berechtigungen

Ihre App kann die Token von einem angemeldeten Benutzer an [Amazon](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html) Verified Permissions weitergeben. Verified Permissions ist ein skalierbarer, detaillierter Service zur Verwaltung und Autorisierung von Berechtigungen für von Ihnen erstellte Anwendungen. Ein Amazon Cognito Cognito-Benutzerpool kann eine Identitätsquelle für einen Richtlinienspeicher für verifizierte Berechtigungen sein. Verified Permissions trifft Autorisierungsentscheidungen für angeforderte Aktionen und Ressourcen, z. B. `GetPhoto` für`premium_badge.png`, vom Principal und seinen Attributen in Benutzerpool-Token.

Das folgende Diagramm zeigt, wie Ihre Anwendung das Token eines Benutzers in einer Autorisierungsanfrage an Verified Permissions übergeben kann.

![\[Ein Flussdiagramm einer Anwendung, die sich bei einem Amazon Cognito Cognito-Benutzerpool authentifiziert und den Zugriff auf lokale Ressourcen mit Amazon Verified Permissions autorisiert.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/access-services-local-resources.png)


**Erste Schritte mit Amazon Verified Permissions**  
Nachdem Sie Ihren Benutzerpool mit Verified Permissions integriert haben, erhalten Sie eine zentrale Quelle für detaillierte Autorisierung für all Ihre Amazon Cognito-Apps. Dadurch entfällt die Notwendigkeit einer detaillierten Sicherheitslogik, die Sie sonst zwischen all Ihren Apps programmieren und replizieren müssten. Weitere Informationen zur Autorisierung mit verifizierten Berechtigungen finden Sie unter. [Autorisierung mit Amazon Verified Permissions](amazon-cognito-authorization-with-avp.md)

Für Autorisierungsanfragen mit verifizierten Berechtigungen sind AWS Anmeldeinformationen erforderlich. Sie können einige der folgenden Techniken implementieren, um Anmeldeinformationen sicher auf Autorisierungsanfragen anzuwenden.
+ Betreiben Sie eine Webanwendung, die Geheimnisse im Server-Backend speichern kann.
+ Besorgen Sie sich authentifizierte Anmeldeinformationen für den Identitätspool.
+ Proxyieren Sie Benutzeranfragen über eine access-token-authorized API und fügen Sie der Anfrage AWS Anmeldeinformationen hinzu.

# Zugriff auf Ressourcen mit API Gateway nach der Anmeldung
Zugreifen auf API Gateway Gateway-Ressourcen

Amazon Cognito Cognito-Benutzerpools-Token werden häufig verwendet, um Anfragen an eine [API Gateway zu autorisieren.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) Die OAuth 2.0-Bereiche in Zugriffstoken können eine Methode und einen Pfad autorisieren, z. B. für. `HTTP GET` `/app_assets` ID-Token können als generische Authentifizierung für eine API dienen und Benutzerattribute an den Backend-Service übergeben. API Gateway verfügt über zusätzliche benutzerdefinierte Autorisierungsoptionen wie [JWT-Autorisierer für HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) und [Lambda-Autorisierer, die eine detailliertere Logik anwenden](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) können.

Das folgende Diagramm zeigt eine Anwendung, die Zugriff auf eine REST-API mit den 2.0-Bereichen in einem Zugriffstoken erhält. OAuth 

![\[Ein Flussdiagramm einer Anwendung, die sich bei einem Amazon Cognito Cognito-Benutzerpool authentifiziert und den Zugriff auf API-Ressourcen mit Amazon API Gateway autorisiert.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/access-services-api-gateway.png)


Ihre App muss die Token aus authentifizierten Sitzungen sammeln und sie als Inhaber-Token zu einem `Authorization` Header in der Anfrage hinzufügen. Konfigurieren Sie den Authorizer, den Sie für die API, den Pfad und die Methode zur Auswertung von Token-Inhalten konfiguriert haben. API Gateway gibt nur Daten zurück, wenn die Anfrage den Bedingungen entspricht, die Sie für Ihren Autorisierer eingerichtet haben. 

Einige mögliche Methoden, mit denen die API Gateway API den Zugriff von einer Anwendung aus genehmigen kann, sind:
+ Das Zugriffstoken ist gültig, nicht abgelaufen und enthält den richtigen OAuth 2.0-Bereich. Der [Amazon Cognito Cognito-Benutzerpool-Autorisierer für eine REST-API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) ist eine gängige Implementierung mit einer niedrigen Eintrittsbarriere. Sie können auch den Hauptteil, die Abfragezeichenfolgenparameter und die Header einer Anfrage an diesen Autorisierungstyp auswerten.
+ Das ID-Token ist gültig und nicht abgelaufen. Wenn Sie ein ID-Token an einen Amazon Cognito Cognito-Autorisierer übergeben, können Sie eine zusätzliche Validierung des ID-Token-Inhalts auf Ihrem Anwendungsserver durchführen.
+ Eine Gruppe, ein Anspruch, ein Attribut oder eine Rolle in einem Zugriffs- oder ID-Token erfüllt die Anforderungen, die Sie in einer Lambda-Funktion definieren. Ein [Lambda-Autorisierer](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) analysiert das Token im Anforderungsheader und wertet es für eine Autorisierungsentscheidung aus. Sie können in Ihrer Funktion eine benutzerdefinierte Logik erstellen oder eine API-Anfrage an [Amazon Verified Permissions](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html) stellen.

Sie können Anfragen an eine [AWS AppSync GraphQL-API](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#amazon-cognito-user-pools-authorization) auch mit Tokens aus einem Benutzerpool autorisieren.

# Zugriff AWS-Services über einen Identitätspool nach der Anmeldung
Zugreifen auf AWS Ressourcen mithilfe eines Identitätspools

Nachdem sich Ihre Benutzer mit einem Benutzerpool angemeldet haben, können sie AWS-Services mit temporären API-Anmeldeinformationen, die von einem Identitätspool ausgestellt wurden, darauf zugreifen.

Ihre Web- oder Mobil-App erhält Token aus einem Benutzerpool. Wenn Sie Ihren Benutzerpool als Identitätsanbieter für Ihren Identitätspool konfigurieren, tauscht der Identitätspool Token gegen temporäre AWS Anmeldeinformationen aus. Diese Anmeldeinformationen können auf IAM-Rollen und deren Richtlinien beschränkt werden, die Benutzern Zugriff auf eine begrenzte Anzahl von Ressourcen gewähren. AWS Weitere Informationen finden Sie unter [Identitäten-Pools – Authentifzierungsablauf](authentication-flow.md).

Das folgende Diagramm zeigt, wie sich eine Anwendung mit einem Benutzerpool anmeldet, Identitätspool-Anmeldeinformationen abruft und ein Asset von einem anfordert. AWS-Service

![\[Ein Flussdiagramm einer Anwendung, die sich bei einem Amazon Cognito Cognito-Benutzerpool authentifiziert und den Zugriff auf AWS Ressourcen mit einem Identitätspool autorisiert.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/access-services-identity-pool.png)


Sie können die Anmeldeinformationen für den Identitätspool verwenden, um:
+ Stellen Sie detaillierte Autorisierungsanfragen an Amazon Verified Permissions mit den eigenen Anmeldeinformationen Ihres Benutzers.
+ Stellen Sie eine Connect zu einer Amazon API Gateway Gateway-REST-API oder einer AWS AppSync GraphQL-API her, die Verbindungen mit IAM autorisiert.
+ Stellen Sie eine Connect zu einem Datenbank-Backend wie Amazon DynamoDB oder Amazon RDS her, das Verbindungen mit IAM autorisiert.
+ Rufen Sie Anwendungsressourcen aus einem Amazon S3 S3-Bucket ab.
+ Initiieren Sie eine Sitzung mit einem WorkSpaces virtuellen Amazon-Desktop.

Identitätspools funktionieren nicht ausschließlich innerhalb einer authentifizierten Sitzung mit einem Benutzerpool. Sie akzeptieren auch die Authentifizierung direkt von externen Identitätsanbietern und können Anmeldeinformationen für nicht authentifizierte Gastbenutzer generieren.

Weitere Informationen zur Verwendung von Identitätspools zusammen mit Benutzerpoolgruppen zur Steuerung des Zugriffs auf Ihre AWS Ressourcen finden Sie unter [Hinzufügen von Gruppen zu einem Benutzerpool](cognito-user-pools-user-groups.md) und. [Verwenden der rollenbasierten Zugriffskontrolle](role-based-access-control.md) Weitere Informationen zu Identitätspools und AWS Identity and Access Management finden Sie auch unter[Identitäten-Pools – Authentifzierungsablauf](authentication-flow.md).

## Einrichten eines Benutzerpools mit dem AWS-Managementkonsole


Erstellen Sie einen Amazon-Cognito-Benutzerpool und notieren Sie die **Benutzerpool-ID** und **App-Client-ID** für jede Ihrer Client-Apps. Weitere Informationen zum Erstellen von Benutzerpools finden Sie unter [Erste Schritte mit Benutzerpools](getting-started-user-pools.md).

## Einrichtung eines Identitätspools mit dem AWS-Managementkonsole


Das folgende Verfahren beschreibt, wie Sie den verwenden AWS-Managementkonsole , um einen Identitätspool in einen oder mehrere Benutzerpools und Client-Apps zu integrieren.

**So fügen Sie einen Identitätsanbieter (IdP) zu Amazon-Cognito-Benutzerpools hinzu:**

1. Wählen Sie **Identitätspools** in der [Amazon-Cognito-Konsole](https://console.aws.amazon.com/cognito/home) aus. Wählen Sie einen Identitätspool.

1. Wählen Sie die Registerkarte **Datenzugriff** aus.

1. Wählen Sie **Identitätsanbieter hinzufügen** aus.

1. Wählen Sie einen **Amazon-Cognito-Benutzerpool**.

1. Geben Sie eine **Benutzerpool-ID** und eine **App-Client-ID** ein.

1. Um die Rolle festzulegen, die Amazon Cognito bei der Ausgabe von Anmeldeinformationen an Benutzer anfordert, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die **Rolleneinstellungen**.

   1. Sie können Benutzern dieses IdP die **Standardrolle zuweisen, die Sie bei** der Konfiguration Ihrer **authentifizierten Rolle** eingerichtet haben, oder Sie können eine **Rolle mit Regeln auswählen**. Mit einem IdP für Amazon-Cognito-Benutzerpools können Sie auch eine **Rolle mit preferred\$1role in Token auswählen**. Weitere Informationen zur `cognito:preferred_role`-Anforderung finden Sie unter [Zuweisen von Prioritätswerten zu Gruppen](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

      1. Wenn Sie **„Rolle mit Regeln auswählen**“ ausgewählt haben, geben Sie den **Quellanspruch** aus Ihrer Benutzerauthentifizierung, den **Operator**, den Sie verwenden möchten, um den Anspruch mit der Regel zu vergleichen, den **Wert**, der zu einer Übereinstimmung mit dieser Rollenauswahl führt, und die **Rolle** ein, die Sie zuweisen möchten, wenn die **Rollenzuweisung** übereinstimmt. Wählen Sie **Weitere hinzufügen** aus, um eine zusätzliche Regel zu erstellen, die auf einer anderen Bedingung basiert.

      1. Wenn Sie **„Rolle mit bevorzugtem Rollenanspruch auswählen“ in Tokens** ausgewählt haben, stellt Amazon Cognito Anmeldeinformationen für die Rolle im Anspruch Ihres Benutzers aus. `cognito:preferred_role` Wenn kein Anspruch für eine bevorzugte Rolle vorliegt, stellt Amazon Cognito Anmeldeinformationen auf der Grundlage Ihrer **Rollenauflösung** aus.

   1. Wählen Sie eine **Rollenauflösung**. Wenn die Anforderungen Ihres Benutzers nicht Ihren Regeln entsprechen, können Sie Anmeldeinformationen verweigern oder Anmeldeinformationen für Ihre **Authentifizierte Rolle** ausgeben.

1. Um die Prinzipal-Tags zu ändern, die Amazon Cognito Benutzern zuweist, wenn es Anmeldeinformationen an Benutzer ausgibt, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die **Attribute für die Zugriffskontrolle**.
   + Um keine Prinzipal-Tags anzuwenden, wählen Sie **Inaktiv** aus.
   + Wählen Sie **Standardzuordnungen verwenden**, um Prinzipal-Tags auf der Grundlage von `sub`- und `aud`-Anforderungen anzuwenden.
   + Um Ihr eigenes benutzerdefiniertes Schema von Attributen für Prinzipal-Tags zu erstellen, wählen Sie **Benutzerdefinierte Zuordnungen verwenden**. Geben Sie dann einen **Tag-Schlüssel** ein, den Sie aus jeder **Anforderung** beziehen möchten, die Sie in einem Tag repräsentieren möchten.

1. Wählen Sie **Änderungen speichern** aus.

## Integration eines Benutzerpools in einen Identitäten-Pool


Nachdem Ihr App-Benutzer authentifiziert wurde, fügen Sie der Anmeldezuweisung im Anmeldeinformationsanbieter das Identitäts-Token des Benutzers hinzu. Der Anbietername ist von Ihrer Amazon-Cognito-Benutzerpool-ID abhängig. Er hat die folgende Struktur:

```
cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>
```

**Sie können den Wert für *<region>* aus der Benutzerpool-ID ableiten.** Wenn die Benutzerpool-ID beispielsweise lautet`us-east-1_EXAMPLE1`, dann *<region>* ist `us-east-1` die. Wenn die Benutzerpool-ID lautet`us-west-2_EXAMPLE2`, dann *<region>* ist die`us-west-2`.

------
#### [ JavaScript ]

```
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
	cognitoUser.getSession(function(err, result) {
		if (result) {
			console.log('You are now logged in.');

			// Add the User's Id Token to the Cognito credentials login map.
			AWS.config.credentials = new AWS.CognitoIdentityCredentials({
				IdentityPoolId: 'YOUR_IDENTITY_POOL_ID',
				Logins: {
					'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': result.getIdToken().getJwtToken()
				}
			});
		}
	});
}
```

------
#### [ Android ]

```
cognitoUser.getSessionInBackground(new AuthenticationHandler() {
	@Override
	public void onSuccess(CognitoUserSession session) {
		String idToken = session.getIdToken().getJWTToken();

		Map<String, String> logins = new HashMap<String, String>();
		logins.put("cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>", session.getIdToken().getJWTToken());
		credentialsProvider.setLogins(logins);
	}

});
```

------
#### [ iOS - objective-C ]

```
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"YOUR_CLIENT_ID"  clientSecret:@"YOUR_CLIENT_SECRET" poolId:@"YOUR_USER_POOL_ID"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"YOUR_IDENTITY_POOL_ID" identityProviderManager:pool];
```

------
#### [ iOS - swift ]

```
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET", poolId: "YOUR_USER_POOL_ID")
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool")
let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "YOUR_IDENTITY_POOL_ID", identityProviderManager:pool)
```

------