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.
-
Accédez à la console Amazon Cognito
. Si vous y êtes invité, saisissez vos informations d'identification AWS. -
Choisissez Groupes d'utilisateurs.
-
Choisissez un groupe d'utilisateurs existant dans la liste ou créez-en un.
-
Choisissez l'onglet App integration (Intégration d'applications).
-
Sous Clients d'application, sélectionnez Créer un client d'application.
-
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.
-
Saisissez un nom de client d'application.
-
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.
-
Configurez la Durée de la session d'authentification. Il s'agit du temps dont disposent vos utilisateurs pour terminer chaque défi d'authentification avant l'expiration de leur jeton de session.
-
(Facultatif) Configurez l'expiration du jeton.
-
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.
-
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.
-
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.
-
-
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.
-
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.
-
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.
-
(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 consulter Autorisations et périmètres des attributs.
-
Choisissez Créer.
-
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, "AuthSessionValidity": 3, "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-namemyApp
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-idMyClientID
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 queHTTP
, sauf pourhttp://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 de jeton. É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 d’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 à la fois 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
Comme vous n'appelez pas le flux d'informations d'identification client en tant qu'utilisateur, ce flux vous permet uniquement de renseigner les portées personnalisées pour le jeton d'accès. Une règle personnalisée est une règle que vous définissez pour votre propre serveur de ressources. Consultez 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éclamationsphone_number
etphone_number_verified
. Cette portée peut uniquement être demandée avec le paramètre scopeopenid
. -
Le paramètre scope
email
accorde l'accès aux réclamationsemail
etemail_verified
. Cette portée peut uniquement être demandée avec le paramètre scopeopenid
. -
La portée
openid
déclare que vous souhaitez récupérer des portées conformes à la spécification OpenID Connect. Amazon Cognito ne renvoie pas de jeton d'identification à moins que vous ne demandiez la portéeopenid
. -
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 scopeopenid
.
-
- 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
. Consultez Définition des serveurs de ressources de votre groupe d'utilisateurs.
Pour plus d'informations sur les périmètres OAuth, consultez la liste des périmètres OIDC standard