View a markdown version of this page

Verwenden des Web-Identitätsverbunds - Amazon DynamoDB

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

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 Sicherheitsanmeldeinformationen 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

Die folgenden Ressourcen können Ihnen dabei helfen, mehr über den Web-Identitätsverbund zu erfahren:

  • Der Post Web Identity Federation verwendet 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#, die zeigen, wie Sie eine IAM-Rolle mit einer Webidentität übernehmen und wie temporäre Sicherheitsanmeldeinformationen für den Zugriff auf eine Ressource verwendet werden. AWS

  • Die AWS Mobile SDK for iOS und die AWS Mobile SDK für Android 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 behandelt den Web-Identitätsverbund und zeigt ein Beispiel dafür, wie der Web-Identitätsverbund für den Zugriff auf eine Ressource verwendet wird. AWS

Beispielrichtlinie für einen Web-Identitätsverbund

Um zu zeigen, wie Sie den Web-Identitätsverbund mit DynamoDB verwenden können, schauen Sie sich noch einmal die GameScores Tabelle an, die unter eingeführt wurde. Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle 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.) Der Rolle muss ein IAM-Richtliniendokument beigefügt 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, stellt dem Login die Amazon-App-ID zur Verfügung und beantragt die Mitgliedschaft in GameRole. AWS STS gibt temporäre AWS Anmeldeinformationen an die App zurück und ermöglicht ihr den Zugriff auf die GameScores Tabelle, vorbehaltlich des GameRole Richtliniendokuments.

Das folgende Diagramm zeigt, wie diese einzelnen Komponenten zusammenpassen.

Workflow einer Gaming-App. Die App verwendet die Amazon-ID und AWS STS zum Abrufen temporärer Anmeldeinformationen für den Zugriff auf eine DynamoDB-Tabelle.

Ü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.

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

  3. Die App ruft DynamoDB auf, um auf die Tabelle zuzugreifen. GameScores Da sie das angenommen hat GameRole, unterliegt die App der Sicherheitsrichtlinie, die dieser Rolle zugeordnet ist. 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 inVerwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle:

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.