Accès à des services AWS à l'aide d'un groupe d'identités après la connexion - Amazon Cognito

Accès à des services AWS à l'aide d'un groupe d'identités après la connexion

Vous pouvez permettre à vos utilisateurs de se connecter via un groupe d'utilisateurs, puis d'accéder à des services AWS à l'aide d'un groupe d'identités.

Après une authentification réussie, votre application mobile ou web recevra d'Amazon Cognito des jetons de groupe d'utilisateurs. Vous pouvez utiliser ces jetons pour récupérer des informations d'identification AWS qui permettent à votre application d'accéder à d'autres services AWS. Pour plus d'informations, consultez Démarrage avec les groupes d'identités Amazon Cognito (identités fédérées).


        Accès aux informations d'identification AWS par le biais d'un groupe d'utilisateurs avec un groupe d'identités

Pour plus d'informations sur l'utilisation de groupes d'identités avec des groupes d'utilisateurs pour contrôler l'accès à vos ressources AWS, consultez Ajout de groupes à un groupe d'utilisateurs et Contrôle d'accès basé sur les rôles. Consultez également Concepts de groupes d'identités (identités fédérées) pour plus d'informations sur les groupes d'identité et AWS Identity and Access Management.

Configuration d'un groupe d'utilisateurs avec AWS Management Console

Créez un groupe d'utilisateurs Amazon Cognito et prenez note des identifiants indiqués dans les champs User Pool ID (ID du groupe d'utilisateurs) et App Client ID (ID du client d'application) pour chacune de vos applications client. Pour plus d'informations sur la création de groupes d'utilisateurs, consultez Démarrage avec les groupes d'utilisateurs.

Configuration d'un groupe d'identités avec AWS Management Console

La procédure suivante décrit comment utiliser AWS Management Console pour intégrer un groupe d'identités avec un ou plusieurs groupes d'utilisateurs et applications clientes.

Original console

Pour configurer un groupe d'identités

  1. Ouvrez la console Amazon Cognito. Si vous y êtes invité, saisissez vos informations d'identification AWS.

  2. Choisissez Manage Identity groupes (Gérer les groupes d'identité).

  3. Sélectionnez le nom du groupe d'identités pour lequel vous souhaitez activer les groupes d'utilisateurs Amazon Cognito en tant que fournisseur.

  4. Sur la page Dashboard (Tableau de bord), sélectionnez Edit identity pool (Modifier le groupe d'identités).

  5. Développez la section Authentication providers (Fournisseurs d'authentification).

  6. Sélectionnez Cognito.

  7. Saisissez l'ID de groupe d'utilisateurs.

  8. Saisissez l'ID du client d'application. Il doit s'agir du même ID d'application client que celui que vous avez reçu lorsque vous avez créé l'application dans la section Your User Pools (Vos groupes d'utilisateurs) de la AWS Management Console pour Amazon Cognito.

  9. Si vous avez des groupes d'applications ou d'utilisateurs supplémentaires, choisissez Ajouter un autre fournisseur, puis saisissez l'ID de groupe d'utilisateurs et l'ID du client d'application pour chaque application dans chaque groupe d'utilisateurs.

  10. Lorsque vous n'avez plus d'autres applications ou pools d'utilisateurs à ajouter, choisissez Enregistrer les modifications. Si l'opération réussit, le message Modifications enregistrées apparaît sur la page Tableau de bord.

New console

Pour configurer un groupe d'identités

  1. Accédez à la console Amazon Cognito. Si vous y êtes invité, saisissez vos informations d'identification AWS.

  2. Sélectionnez Identités fédérées.

  3. Sélectionnez le nom du groupe d'identités pour lequel vous souhaitez activer les groupes d'utilisateurs Amazon Cognito en tant que fournisseur.

  4. Sur la page Dashboard (Tableau de bord), sélectionnez Edit identity pool (Modifier le groupe d'identités).

  5. Développez la section Authentication providers (Fournisseurs d'authentification).

  6. Sélectionnez Cognito.

  7. Saisissez l'ID de groupe d'utilisateurs.

  8. Saisissez l'ID du client d'application. Il doit s'agir du même ID d'application client que celui que vous avez reçu lorsque vous avez créé l'application dans la section Groupes d'utilisateurs de la console.

  9. Si vous avez des groupes d'applications ou d'utilisateurs supplémentaires, choisissez Ajouter un autre fournisseur, puis saisissez l'ID de groupe d'utilisateurs et l'ID du client d'application pour chaque application dans chaque groupe d'utilisateurs.

  10. Lorsque vous n'avez plus d'autres applications ou pools d'utilisateurs à ajouter, choisissez Enregistrer les modifications. Si l'opération réussit, le message Modifications enregistrées apparaît sur la page Tableau de bord.

Intégration d'un groupe d'utilisateurs à un groupe d'identités

Une fois que l'utilisateur de l'application est authentifié, ajoutez son jeton d'identité à la carte de connexions dans le fournisseur d'informations d'identification. Le nom de ce fournisseur dépend de l'ID du groupe d'utilisateurs Amazon Cognito. Sa structure est la suivante :

cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>

La valeur <region> est la même que celle de la région de la section User Pool ID (ID de groupe d'utilisateurs). Par exemple, cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789.

JavaScript
var cognitoUser = userPool.getCurrentUser(); if (cognitoUser != null) { cognitoUser.getSession(function(err, result) { if (result) { console.log('You are now logged in.'); // Add the User's Id Token to the Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'YOUR_IDENTITY_POOL_ID', Logins: { 'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': result.getIdToken().getJwtToken() } }); } }); }
Android
cognitoUser.getSessionInBackground(new AuthenticationHandler() { @Override public void onSuccess(CognitoUserSession session) { String idToken = session.getIdToken().getJWTToken(); Map<String, String> logins = new HashMap<String, String>(); logins.put("cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>", session.getIdToken().getJWTToken()); credentialsProvider.setLogins(logins); } });
iOS - objective-C
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil]; AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"YOUR_CLIENT_ID" clientSecret:@"YOUR_CLIENT_SECRET" poolId:@"YOUR_USER_POOL_ID"]; [AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"]; AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"]; AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"YOUR_IDENTITY_POOL_ID" identityProviderManager:pool];
iOS - swift
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil) let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET", poolId: "YOUR_USER_POOL_ID") AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool") let pool = AWSCognitoIdentityUserPool(forKey: "UserPool") let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "YOUR_IDENTITY_POOL_ID", identityProviderManager:pool)