Configuration d'un client d'application pour un groupe d'utilisateurs. - Amazon Cognito

Configuration d'un client d'application pour un groupe d'utilisateurs.

Après avoir créé un groupe d'utilisateurs, vous pouvez configurer un client d'application afin d'utiliser les pages web intégrées pour inscrire et connecter les utilisateurs. Pour la terminologie, consultez Terminologie des paramètres du client d'application.

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

  2. Sélectionnez Gérer les groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs existant dans la liste ou créez un nouveau groupe d'utilisateurs.

  4. Dans la barre de navigation sur le côté gauche de la page, choisissez Clients d'application sous Paramètres généraux.

  5. Choisissez Ajouter un client d'application.

  6. Saisissez le nom de votre application.

  7. Sauf si cela est requis par votre flux d'autorisation, désélectionnez l'option Générer la clé secrète du client. La clé secrète du client est utilisée par les applications disposant d'un composant côté serveur pouvant sécuriser cette clé secrète.

  8. (Facultatif) Modifiez les paramètres d'expiration du jeton.

  9. Sélectionnez des options de configuration de flux d'authentification. Pour plus d'informations, consultez Flux d'authentification d'un groupe d'utilisateurs.

  10. Choisissez une configuration de sécurité. Nous vous recommandons de sélectionner Activé.

  11. (Facultatif) Choisissez Définir les autorisations de lecture et d'écriture pour les attributs.

  12. Choisissez Create app client.

  13. Saisissez l'ID du client d'application.

  14. Sélectionnez Revenir aux détails du groupe.

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

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs existant dans la liste ou créez un nouveau groupe d'utilisateurs.

  4. Cliquez sur l'onglet Intégration d'applications.

  5. Sous Clients d'application, sélectionnez Créer un client d'application.

  6. Sélectionnez un type d'application : Client public,Client confidentiel ou Autre. Un client public fonctionne généralement à partir des appareils de vos utilisateurs et utilise des API non authentifiées et authentifiées par jeton. Un client confidentiel fonctionne généralement à partir d'une application sur un serveur central en lequel vous avez confiance avec des secrets client et des informations d'identification d'API, et utilise des en-têtes d'autorisation et des informations d'identification AWS Identity and Access Management pour signer les demandes. Si votre cas d'utilisation est différent des paramètres préconfigurés du client d'application pour un client public ou un client confidentiel, sélectionnez Autre.

  7. Saisissez un nom de client d'application.

  8. Sélectionnez le flux d'authentification que vous souhaitez autoriser dans votre client d'application. Pour plus d'information, consultez Flux d'authentification d'un groupe d'utilisateurs.

  9. (Facultatif) Configurez l'expiration du jeton.

    1. Spécifiez le délai d'expiration du jeton d'actualisation du client d'application. La valeur par défaut est de 30 jours. Vous pouvez le remplacer par toute valeur comprise entre 1 heure et 10 ans.

    2. Spécifiez le délai d'expiration du jeton d'accès du client d'application. La valeur par défaut est 1 heure. Vous pouvez la remplacer par toute valeur comprise entre 5 minutes et 24 heures.

    3. Spécifiez le délai d'expiration du jeton d'identification du client d'application. La valeur par défaut est 1 heure. Vous pouvez la remplacer par toute valeur comprise entre 5 minutes et 24 heures.

      Important

      Si vous utilisez l'interface utilisateur hébergée et configurez des jetons de moins d'une heure, l'utilisateur final sera en mesure d'utiliser des jetons basés sur le cookie de sa session qui est actuellement fixée à une heure.

  10. Choisissez Générer un secret client pour qu'Amazon Cognito génère un code secret client pour vous. Les secrets des clients sont généralement associés à des clients confidentiels.

  11. Indiquez si vous voulez activer la révocation de jetons pour ce client d'application. Cela augmentera la taille des jetons émis par Amazon Cognito. Pour plus d'informations, consultez Révocation des jetons.

  12. Indiquez si vous voulez Empêcher les messages d'erreur révélant l'existence de l'utilisateur ce client d'application. Amazon Cognito répondra aux demandes de connexion des utilisateurs inexistants avec un message générique indiquant que le nom d'utilisateur ou le mot de passe était incorrect.

  13. (Facultatif) Configurez Autorisations de lecture et d'écriture des attributs pour ce client d'application. Votre client d'application peut avoir l'autorisation de lire et d'écrire uniquement un sous-ensemble limité du schéma attribut de votre groupe d'utilisateurs. Pour de plus amples informations, veuillez consultez Autorisations et portées des attributs.

  14. Choisissez Créer.

  15. Notez l'ID du client. Cela permettra d'identifier le client de l'application lors des demandes d'inscription et de connexion.

Vous pouvez utiliser l'AWS CLI pour mettre à jour, créer, modifier, décrire et supprimer votre client d'application pour groupe d'utilisateurs.

Remplacez « MyUsergroupeID » et « MyAppClientID » par votre groupe d'utilisateurs et les valeur de votre ID de client d'application dans ces exemples. De la même manière, les valeurs de vos paramètres peuvent être différentes de celles utilisées dans ces exemples.

Note

Utilisez le format JSON pour les URL de rappel et de déconnexion afin d'empêcher la CLI de les traiter comme des fichiers de paramètre à distance :

--callback-urls "["https://example.com"]"

--logout-urls "["https://example.com"]"

Mise à jour d'un client d'application pour un groupe d'utilisateurs (AWS CLI et API AWS)

Dans le AWS CLI, saisissez la commande suivante :

aws cognito-idp update-user-pool-client --user-pool-id "MyUserPoolID" --client-id "MyAppClientID" --allowed-o-auth-flows-user-pool-client --allowed-o-auth-flows "code" "implicit" --allowed-o-auth-scopes "openid" --callback-urls "["https://example.com"]" --supported-identity-providers "["MySAMLIdP", "LoginWithAmazon"]"

Si la commande est réussie, l'AWS CLI renvoie une confirmation :

{ "UserPoolClient": { "ClientId": "MyClientID", "SupportedIdentityProviders": [ "LoginWithAmazon", "MySAMLIdP" ], "CallbackURLs": [ "https://example.com" ], "AllowedOAuthScopes": [ "openid" ], "ClientName": "Example", "AllowedOAuthFlows": [ "implicit", "code" ], "RefreshTokenValidity": 30, "CreationDate": 1524628110.29, "AllowedOAuthFlowsUserPoolClient": true, "UserPoolId": "MyUserPoolID", "LastModifiedDate": 1530055177.553 } }

Pour plus d'informations, consultez la référence de la commande AWS CLI : update-user-pool-client.

API AWS : UpdateUserPoolClient

Création d'un client d'application d'un groupe d'utilisateurs (AWS CLI et API AWS)

aws cognito-idp create-user-pool-client --user-pool-id MyUserPoolID --client-name myApp

Pour plus d'informations, consultez la référence de la commande AWS CLI : create-user-pool-client.

API AWS : CreateUserPoolClient

Collecte d'informations sur un client d'application d'un groupe d'utilisateurs (AWS CLI et API AWS)

aws cognito-idp describe-user-pool-client --user-pool-id MyUserPoolID --client-id MyClientID

Pour plus d'informations, consultez la référence de la commande AWS CLI : describe-user-pool-client.

API AWS : DescribeUserPoolClient

Liste de l'ensemble des informations sur un client d'application dans un groupe d'utilisateurs (AWS CLI et API AWS)

aws cognito-idp list-user-pool-clients --user-pool-id "MyUserPoolID" --max-results 3

Pour plus d'informations, consultez la référence de la commande AWS CLI : list-user-pool-clients.

API AWS : ListUserPoolClients

Suppression d'un client d'application d'un groupe d'utilisateurs (AWS CLI et API AWS)

aws cognito-idp delete-user-pool-client --user-pool-id "MyUserPoolID" --client-id "MyAppClientID"

Pour plus d'informations, consultez la référence de la commande AWS CLI : delete-user-pool-client.

API AWS : DeleteUserPoolClient

Terminologie des paramètres d'un client d'application

Les termes et définitions suivants peuvent vous aider à configurer votre client d'application.

Enabled Identity Providers

Vous pouvez choisir votre fournisseur d'identité (IdP) pour authentifier vos utilisateurs. Ce service peut être effectué par votre groupe d'utilisateurs ou par un tiers tel que Facebook. Avant de pouvoir utiliser un fournisseur d'identité (IdP), vous devez l'activer. Vous pouvez activer plusieurs fournisseurs d'identité, mais vous devez en activer au moins un. Pour plus de détails sur l'utilisation de fournisseurs d'identité externes, consultez Ajout de la connexion du groupe d'utilisateurs via un tiers.

Callback URL(s)

Une URL de rappel indique où l'utilisateur doit être redirigé lorsque la connexion aboutit. Choisissez au moins une URL de rappel. L'URL de rappel doit :

  • Être un URI absolu.

  • Être pré-enregistré auprès d'un client.

  • Ne pas inclure un composant de fragment.

Veuillez consulter OAuth 2.0 - Point de terminaison de redirection.

Amazon Cognito exige HTTPS plutôt que HTTP, sauf pour http://localhost à des fins de test uniquement.

Les URL de rappel d'application comme myapp://example sont également prises en charge.

Sign out URL(s)

Une URL de déconnexion indique où l'utilisateur doit être redirigé après la déconnexion.

Flux OAuth autorisés

Le flux Authorization code grant (Octroi de code d'autorisation) établit un flux d'octroi de codes, qui fournit une réponse sous forme de code d'autorisation. Ce code peut être échangé contre des jetons d'accès avec le Point de terminaison TOKEN. Étant donné que les jetons ne sont jamais exposés directement à un utilisateur final, ils sont moins susceptibles d'être compromis. Toutefois, une application personnalisée est requise au niveau du backend pour échanger le code d'autorisation contre des jetons de groupe d'utilisateurs.

Note

Pour des raisons de sécurité, nous vous recommandons vivement d'utiliser ce flux Octroi de code d'autorisation uniquement avec PKCE pour les applications mobiles.

Le flux Octroi implicite permet au client d'obtenir le jeton d'accès (et, éventuellement, le jeton d'identification, en fonction des portées) directement à partir de Point de terminaison AUTORISATION. Choisissez ce flux uniquement si votre application ne peut pas initier le flux Octroi de code d'autorisation. Pour plus d'informations, consultez la page des spécifications OAuth 2.0.

Vous pouvez activer Authorization code grant (Octroi de code d'autorisation) et Implicit code grant (Octroi de code implicite), puis utiliser chaque octroi selon vos besoins.

Le flux Client credentials (Informations d'identification client) est utilisé pour des communications machine à machine. Il vous permet de demander un jeton d'accès pour accéder à vos propres ressources. Utilisez ce flux lorsque votre application demande le jeton pour elle-même et non pas pour un utilisateur.

Note

Dans la mesure où le flux d'informations d'identification n'est pas utilisé au nom d'un utilisateur, seules les règles personnalisées peuvent être utilisées avec ce flux. Une règle personnalisée est une règle que vous définissez pour votre propre serveur de ressources. Veuillez consulter Définition des serveurs de ressources de votre groupe d'utilisateurs.

Allowed OAuth Scopes

Choisissez un ou plusieurs des paramètres scope OAuth suivants pour spécifier les privilèges d'accès qui peuvent être demandés pour les jetons d'accès.

  • Le paramètre scope phone accorde l'accès aux réclamations phone_number et phone_number_verified. Cette portée peut uniquement être demandée avec le paramètre scope openid.

  • Le paramètre scope email accorde l'accès aux réclamations email et email_verified. Cette portée peut uniquement être demandée avec le paramètre scope openid.

  • Le paramètre scope openid renvoie tous les attributs d'utilisateur dans le jeton d'identification pouvant être lus par le client. Le jeton d'ID n'est pas renvoyé si le paramètre de portée openid n'est pas demandé par le client.

  • La portée aws.cognito.signin.user.admin accorde l'accès aux opérations de l'API du groupe d'utilisateurs Amazon Cognito qui nécessitent des jetons d'accès, tels que UpdateUserAttributes et VerifyUserAttribute.

  • Le paramètre scope profile accorde l'accès à tous les attributs utilisateurs pouvant être lus par le client. Cette portée peut uniquement être demandée avec le paramètre scope openid.

Portées personnalisées autorisées

Une règle personnalisée est une règle que vous définissez pour votre propre serveur de ressources dans le Serveur de ressources. Le format est ressource-serveur-identificateur/portée. Veuillez consulter Définition des serveurs de ressources de votre groupe d'utilisateurs.

Pour plus d'informations sur les portées OAuth, consultez la liste des portées OIDC standard.