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.
Accédez aux services AWS depuis une application ASP.NET Core à l'aide des pools d'identités Amazon Cognito
Créée par Bibhuti Sahu (AWS) et Marcelo Barbosa (AWS)
Environnement : PoC ou pilote | Technologies : sécurité, identité, conformité ; applications Web et mobiles | Services AWS : Amazon Cognito |
Récapitulatif
Ce modèle explique comment configurer les groupes d'utilisateurs et les groupes d'identités Amazon Cognito, puis permettre à une application ASP.NET Core d'accéder aux ressources AWS après une authentification réussie.
Amazon Cognito fournit des fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs pour vos applications Web et mobiles. Les deux principaux composants d'Amazon Cognito sont les groupes d'utilisateurs et les groupes d'identités.
Un groupe d'utilisateurs est un répertoire d'utilisateurs dans Amazon Cognito. Avec un groupe d'utilisateurs, vos utilisateurs peuvent se connecter à votre application web ou mobile via Amazon Cognito. Vos utilisateurs peuvent également se connecter via des fournisseurs d'identité sociale tels que Google, Facebook, Amazon ou Apple, et via des fournisseurs d'identité SAML.
Les groupes d'identités Amazon Cognito (identités fédérées) vous permettent de créer des identités uniques pour vos utilisateurs et de les fédérer avec des fournisseurs d'identité. Avec un pool d'identités, vous pouvez obtenir des informations d'identification AWS temporaires à privilèges limités pour accéder à d'autres services AWS. Avant de commencer à utiliser votre nouveau pool d'identités Amazon Cognito, vous devez attribuer un ou plusieurs rôles AWS Identity and Access Management (IAM) afin de déterminer le niveau d'accès que vous souhaitez accorder aux utilisateurs de votre application à vos ressources AWS. Les groupes d'identités définissent deux types d'identités : les identités authentifiées et celles qui ne le sont pas. Chaque type d'identité peut se voir attribuer son propre rôle dans IAM. Les identités authentifiées appartiennent aux utilisateurs authentifiés par un fournisseur de connexion public (groupes d'utilisateurs Amazon Cognito, Facebook, Google, SAML ou tout autre fournisseur OpenID Connect) ou par un fournisseur de développement (votre propre processus d'authentification principal), tandis que les identités non authentifiées appartiennent généralement aux utilisateurs invités. Lorsqu'Amazon Cognito reçoit une demande d'utilisateur, le service détermine si la demande est authentifiée ou non, détermine quel rôle est associé à ce type d'authentification, puis utilise la politique associée à ce rôle pour répondre à la demande.
Conditions préalables et limitations
Prérequis
Un compte AWS avec des autorisations Amazon Cognito et IAM
Accès aux ressources AWS que vous souhaitez utiliser
ASP.NET Core 2.0.0 ou version ultérieure
Architecture
Pile technologique
Amazon Cognito
Noyau ASP.NET
Architecture cible
![](images/pattern-img/0152c4af-3e42-4ab0-9f03-3350cdb09e69/images/bd12b499-e6de-454e-a2ef-175a8b5ab9c8.png)
Outils
Outils, kits de développement logiciel et services AWS
Visual Studio ou Visual Studio Code
Amazon. AspNetCore.Identity.Cognito
(1.0.4) — paquet NuGet AWSSDK.S3 (3.3.110.32
) — paquet NuGet
Code
Le fichier .zip joint contient des exemples de fichiers illustrant les éléments suivants :
Comment récupérer un jeton d'accès pour l'utilisateur connecté
Comment échanger un jeton d'accès contre des informations d'identification AWS
Comment accéder au service Amazon Simple Storage Service (Amazon S3) avec les informations d'identification AWS
Rôle IAM pour les identités authentifiées
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*", "s3:ListAllMyBuckets*" ], "Resource": [ "*" ] } ] }
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez un groupe d'utilisateurs. |
| Developer |
Ajoutez un client d'application. | Vous pouvez créer une application pour utiliser les pages Web intégrées pour l'inscription et la connexion de vos utilisateurs.
| Developer |
Tâche | Description | Compétences requises |
---|---|---|
Créer un groupe d'identités . |
| Developer |
Attribuez des rôles IAM au pool d'identités. | Vous pouvez modifier les rôles IAM pour les utilisateurs authentifiés et non authentifiés, ou conserver les valeurs par défaut, puis choisir Autoriser. Pour ce modèle, nous modifierons le rôle IAM authentifié et fournirons l'accès à. | Developer |
Copiez l'ID du pool d'identités. | Lorsque vous sélectionnez Autoriser à l'étape précédente, la page Getting started with Amazon Cognito s'affiche. Sur cette page, vous pouvez soit copier l'ID du pool d'identités depuis la section Obtenir les informations d'identification AWS, soit choisir Modifier le pool d'identités en haut à droite et copier l'ID du pool d'identités sur l'écran qui s'affiche. | Developer |
Tâche | Description | Compétences requises |
---|---|---|
Clonez l'exemple d'application Web ASP.NET Core. |
| Developer |
Ajoutez des dépendances. | Ajoutez une NuGet dépendance pour | Developer |
Ajoutez les clés et les valeurs de configuration à appsettings.json. | Incluez le code du | Developer |
Créez un nouvel utilisateur et connectez-vous. | Créez un nouvel utilisateur dans le groupe d'utilisateurs Amazon Cognito et vérifiez qu'il existe sous Utilisateurs et groupes dans le groupe d'utilisateurs. | Developer |
Créez une nouvelle page Razor appelée MyS3Buckets. | Ajoutez une nouvelle page ASP.NET Core Razor à votre exemple d'application et remplacez le contenu de | Developer |
Résolution des problèmes
Problème | Solution |
---|---|
Après avoir ouvert l'exemple d'application depuis le GitHub référentiel, une erreur s'affiche lorsque vous essayez d'ajouter le NuGet package au projet Samples. | Dans le |