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

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 man eine IAM Rolle bei der Webidentität übernimmt und wie man temporäre Sicherheitsanmeldedaten für den Zugriff auf eine Ressource verwendet. AWS

  • Die AWS Mobile SDK for iOS und die AWS Mobile SDK for 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 werden kann. 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 GameScoresTabelle an, die in eingeführt wurde. Verwendung von IAM Richtlinienbedingungen für eine 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 GameScoresTabelle 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 wird 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 GameScoresTabelle 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 GameRoleRichtliniendokuments, den Zugriff auf die GameScoresTabelle.

Das folgende Diagramm zeigt, wie diese einzelnen Komponenten zusammenpassen.

Der Arbeitsablauf 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.

Ü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-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 IAM Rolle eine Rolle (GameRole) annehmen und auf AWS Ressourcen zugreifen.

  3. Die App ruft DynamoDB auf, um auf die GameScoresTabelle 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 inVerwendung von IAM Richtlinienbedingungen für eine differenzierte Zugriffskontrolle:

{ "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 GameScoressind. 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.