Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de la fédération d'identité web
Si vous écrivez une application ciblée pour un grand nombre d'utilisateurs, vous pouvez, le cas échéant, utiliser la fédération d'identité web pour l'authentification et l'autorisation. La fédération d’identité web élimine le besoin de créer des utilisateurs individuels. Au lieu de cela, les utilisateurs peuvent se connecter à un fournisseur d'identité, puis obtenir des informations d'identification de sécurité temporaires auprès de AWS Security Token Service (AWS STS). L'application peut ensuite utiliser ces informations d'identification pour accéder aux AWS services.
La fédération d'identité Web prend en charge les fournisseurs d'identité suivants :
-
Login with Amazon
-
Facebook
-
Google
Ressources supplémentaires pour la fédération d'identité web
Les ressources suivantes peuvent vous aider à en savoir plus sur la fédération d'identité web :
-
La publication Web Identity Federation using the AWS SDK for .NET
sur le blog des développeurs AWS explique comment utiliser une fédération d'identité web avec Facebook. Il inclut des extraits de code en C# qui montrent comment assumer un IAM rôle dans l'identité Web et comment utiliser des informations d'identification de sécurité temporaires pour accéder à une ressource. AWS -
L'AWS Mobile SDK for iOS
et l'AWS Mobile SDK for Android contiennent des exemples d'applications. Ces dernières incluent le code qui montre comment appeler les fournisseurs d'identité et comment utiliser les informations qu'ils fournissent pour obtenir et utiliser les informations d'identification de sécurité temporaires. -
L'article Fédération d'identité Web avec applications mobiles
traite de la fédération d'identité Web et montre un exemple d'utilisation de la fédération d'identité Web pour accéder à une AWS ressource.
Exemple de politique pour la fédération d'identité web
Pour montrer comment utiliser la fédération d'identité Web avec DynamoDB, consultez GameScoresle tableau introduit dans. Utilisation IAM de conditions politiques pour un contrôle d'accès précis Voici la clé primaire pour GameScores.
Nom de la table | Type de clé primaire | Type et nom de la clé de partition | Type et nom de la clé de tri |
---|---|---|---|
GameScores (UserId, GameTitle, ...) | Composite | Nom de l'attribut : UserId Type : String | Nom de l'attribut : GameTitle Type : String |
Supposons maintenant qu'une application de jeu pour appareils mobiles utilise cette table et qu'elle doive prendre en charge des milliers, voire des millions, d'utilisateurs. À cette échelle, il devient très difficile de gérer les utilisateurs individuels des applications et de garantir que chaque utilisateur ne peut accéder qu'à ses propres données dans le GameScorestableau. Heureusement, comme la plupart des utilisateurs possèdent des comptes avec un fournisseur d'identité tiers, tel que Facebook, Google ou Login with Amazon. Il est donc logique de tirer parti de l'un de ces fournisseurs pour les tâches d'authentification.
Pour procéder ainsi avec la fédération d'identité web, le développeur d'application doit inscrire l'application auprès d'un fournisseur d'identité (Login with Amazon, par exemple) et obtenir un ID d'application unique. Ensuite, le développeur doit créer un rôle IAM. (Dans cet exemple, ce rôle est nommé GameRole.) Un document de IAM politique doit être joint au rôle, spécifiant les conditions dans lesquelles l'application peut accéder à la GameScorestable.
Lorsqu'un utilisateur veut jouer à un jeu, il se connecte à son compte Login with Amazon depuis l'application de jeu. L'application appelle ensuite AWS Security Token Service (AWS STS), fournit l'identifiant de l'application Login with Amazon et demande d'adhésion GameRole. AWS STS renvoie des AWS informations d'identification temporaires à l'application et lui permet d'accéder au GameScorestableau, sous réserve du document GameRolede politique.
Le schéma suivant illustre comment ces éléments s'ajustent les uns aux autres.

Présentation de la fédération d'identité web
-
L'application appelle un fournisseur d'identité tiers pour authentifier l'utilisateur et l'application. Le fournisseur d'identité retourne un jeton d'identité web à l'application.
-
L'application appelle AWS STS et transmet le jeton d'identité Web en entrée. AWS STS autorise l'application et lui donne des identifiants d' AWS accès temporaires. L'application est autorisée à assumer un IAM rôle (GameRole) et à accéder aux AWS ressources conformément à la politique de sécurité du rôle.
-
L'application appelle DynamoDB pour accéder à la table. GameScores Parce qu'elle a assumé le GameRole, l'application est soumise à la politique de sécurité associée à ce rôle. Le document de politique empêche l'application d'accéder aux données qui n'appartiennent pas à l'utilisateur.
Encore une fois, voici la politique de sécurité GameRolequi a été présentée dans Utilisation IAM de conditions politiques pour un contrôle d'accès précis :
{ "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" } } } ] }
La Condition
clause détermine quels éléments GameScoressont visibles par l'application. A cette fin, elle compare l'ID de Login with Amazon aux valeurs de clé de partition UserId
dans GameScores
. Seuls les éléments appartenant à l'utilisateur actuel peuvent être traités à l'aide de l'une des actions DynamoDB répertoriées dans cette politique. Il n'est pas possible d'accéder aux autres éléments de la table. En outre, seuls les attributs spécifiques répertoriés dans la politique sont accessibles.