

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 des Web-Identitätsverbunds
<a name="WIF"></a>

Wenn Sie eine Anwendung schreiben, die für eine große Anzahl von Benutzern bestimmt ist, können Sie optional den *Web-Identitätsverbund* für die Authentifizierung und Autorisierung verwenden. Mit dem Web-Identitätsverbund ist es nicht mehr erforderlich, einzelne -Benutzer zu erstellen. Stattdessen können sich Benutzer bei einem Identitätsanbieter anmelden und dann temporäre Sicherheitsanmeldedaten von AWS -Security-Token-Service (AWS STS) abrufen. Die App kann diese Anmeldeinformationen dann verwenden, um auf AWS Dienste zuzugreifen.

Ein Web-Identitätsverbund unterstützt die folgenden Identitätsanbieter:
+ Login with Amazon
+ Facebook
+ Google

## Weitere Ressourcen für den Web-Identitätsverbund
<a name="WIF.AdditionalResources"></a>

Die folgenden Ressourcen können Ihnen dabei helfen, mehr über den Web-Identitätsverbund zu erfahren:
+ Der Post [Web Identity Federation verwendet AWS SDK für .NET](https://aws.amazon.com/blogs/developer/web-identity-federation-using-the-aws-sdk-for-net) im AWS Entwicklerblog um zu erläutern, wie der Web-Identitätsverbund mit Facebook verwendet wird. Sie enthält Codefragmente in C\$1, die zeigen, wie eine IAM-Rolle mit Webidentität übernommen wird und wie temporäre Sicherheitsanmeldedaten für den Zugriff auf eine Ressource verwendet werden. AWS 
+ Die [AWS Mobile SDK for iOS](https://aws.amazon.com/sdkforios/) und die [AWS Mobile SDK für Android](https://aws.amazon.com/sdkforandroid/) enthalten Beispiel-Apps. Sie enthalten Code, der zeigt, wie die Identitätsanbieter aufgerufen werden und wie dann die Informationen von diesen Anbietern verwendet werden, um temporäre Sicherheitsanmeldeinformationen zu beziehen und zu nutzen.
+ Der Artikel [Web Identity Federation with Mobile Applications](https://aws.amazon.com/articles/4617974389850313) behandelt den Web-Identitätsverbund und zeigt ein Beispiel dafür, wie der Web-Identitätsverbund für den Zugriff auf eine Ressource verwendet werden kann. AWS 

## Beispielrichtlinie für einen Web-Identitätsverbund
<a name="WIF.Example"></a>

Um zu zeigen, wie Sie den Web-Identitätsverbund mit DynamoDB verwenden können, schauen Sie sich noch einmal die *GameScores*Tabelle an, die in eingeführt wurde. [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md) Hier ist der Primärschlüssel für. *GameScores*


****  

| Tabellenname | Primärschlüsseltyp | Partitions-Schlüsselname und -Typ | Sortierschlüsselname und -Typ | 
| --- | --- | --- | --- | 
| GameScores (UserId, GameTitle, ...) | Zusammengesetzt | Name des Attributs: UserId Typ: Zeichenfolge | Name des Attributs: GameTitle Typ: Zeichenfolge | 

Angenommen, dass eine mobile Spielanwendung diese Tabelle verwendet und diese Anwendung Tausenden oder sogar Millionen von Benutzern unterstützen muss. Bei dieser Größenordnung wird es sehr schwierig, einzelne App-Benutzer zu verwalten und sicherzustellen, dass jeder Benutzer nur auf seine eigenen Daten in der *GameScores*Tabelle zugreifen kann. Glücklicherweise verfügen viele Benutzer bereits über Konten bei einem externen Identitätsanbieter wie Facebook, Google oder Login with Amazon. So ist es durchaus sinnvoll, einen dieser Anbieter für die Authentifizierungsaufgaben zu nutzen.

Um dies mit dem Web-Identitätsverbund durchzuführen, muss der Anwendungsentwickler die Anwendung bei einem Identitätsanbieter (wie Login with Amazon) registrieren und eine eindeutige Anwendungs-ID erhalten. Als nächstes muss der Entwickler eine IAM-Rolle erstellen. (In diesem Beispiel ist diese Rolle benannt *GameRole*.) An die Rolle muss ein IAM-Richtliniendokument angehängt sein, in dem die Bedingungen angegeben sind, unter denen die App auf die *GameScores*Tabelle zugreifen kann.

Wenn ein Benutzer ein Spiel spielen möchte, meldet er sich mit seinem „Login with Amazon“-Konto bei der Spielanwendung an. Die App ruft dann AWS -Security-Token-Service (AWS STS) auf, gibt das Login mit der Amazon-App-ID an und fordert die Mitgliedschaft bei an *GameRole*. AWS STS gibt temporäre AWS Anmeldeinformationen an die App zurück und ermöglicht ihr, vorbehaltlich des *GameRole*Richtliniendokuments, den Zugriff auf die *GameScores*Tabelle.

Das folgende Diagramm zeigt, wie diese einzelnen Komponenten zusammenpassen.

![\[Workflow einer Gaming-App. Die App verwendet Amazon ID und AWS STS um temporäre Anmeldeinformationen für den Zugriff auf eine DynamoDB-Tabelle zu erhalten.\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/wif-overview.png)


**Übersicht eines Web-Identitätsverbunds**

1. Die Anwendung ruft einen externen Identitätsanbieter auf, um den Benutzer und die Anwendung zu authentifizieren. Der Identitätsanbieter gibt ein Web-Identitäts-Token an die Anwendung zurück.

1. Die App ruft das Web-Identity-Token auf AWS STS und übergibt es als Eingabe. AWS STS autorisiert die App und gibt ihr temporäre AWS Zugangsdaten. Die App darf gemäß der Sicherheitsrichtlinie der Rolle eine IAM-Rolle (*GameRole*) annehmen und auf AWS Ressourcen zugreifen.

1. Die App ruft DynamoDB auf, um auf die *GameScores*Tabelle zuzugreifen. Da sie das übernommen hat *GameRole*, unterliegt die App den Sicherheitsrichtlinien, die mit dieser Rolle verknüpft sind. Das Richtliniendokument verhindert, dass die Anwendung auf Daten zugreift, die dem Benutzer nicht gehören.

Hier ist noch einmal die Sicherheitsrichtlinie dafür *GameRole*, die gezeigt wurde in[Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md):

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAccessToOnlyItemsMatchingUserID",
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:BatchGetItem",
            "dynamodb:Query",
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:BatchWriteItem"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${www.amazon.com:user_id}"
               ],
               "dynamodb:Attributes":[
                  "UserId",
                  "GameTitle",
                  "Wins",
                  "Losses",
                  "TopScore",
                  "TopScoreDateTime"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

Die `Condition` Klausel bestimmt, welche Elemente in der App sichtbar *GameScores*sind. Dies geschieht durch das Vergleichen von Login with Amazon mit den `UserId`-Partitions-Schlüsselwerten in `GameScores`. Nur die Elemente des aktuellen Benutzers können verarbeitet werden, indem Sie eine der DynamoDB-Aktionen verwenden, die in dieser Richtlinie aufgeführt sind. Auf andere Elemente in der Tabelle kann nicht zugegriffen werden. Außerdem kann nur auf die spezifischen Attribute, die in der Richtlinie aufgeführt sind, zugegriffen werden.