Utilisation de l'interface utilisateur Amazon Cognito hébergée pour la connexion et l'inscription - Amazon Cognito

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 l'interface utilisateur Amazon Cognito hébergée pour la connexion et l'inscription

Avec Amazon Cognito, vous pouvez allouer une interface utilisateur d'authentification hébergée que vous pouvez ajouter à votre application pour gérer les flux de travail d'inscription et de connexion. L'interface utilisateur hébergée d'Amazon Cognito est le fondement d'autres fonctionnalités telles que la possibilité de se connecter directement à votre groupe d'utilisateurs via Facebook, Amazon, Google et Apple, ainsi que via OpenID Connect (OIDC) et les fournisseurs d'identité SAML.

Pour configurer l'interface utilisateur hébergée, vous pouvez utiliser AWS Amplify ou la console Amazon Cognito.

Configuration de l'interface utilisateur hébergée avec AWS Amplify

Si vous utilisez AWS Amplify pour ajouter l'authentification à votre application web ou mobile, vous pouvez configurer votre interface utilisateur hébergée à l'aide de l'interface de ligne de commande (CLI) et des bibliothèques du cadre AWS Amplify. Pour ajouter l'authentification à votre application, utilisez l'interface de ligne de commande AWS Amplify pour ajouter la catégorie Auth à votre projet. Ensuite, dans votre code client, vous utilisez les bibliothèques AWS Amplify pour authentifier les utilisateurs avec votre groupe d'utilisateurs Amazon Cognito. Vous pouvez afficher une interface utilisateur hébergée prédéfinie ou fédérer des utilisateurs via un point de terminaison OAuth 2.0 qui redirige vers un fournisseur de connexion par réseaux sociaux, tel que Facebook, Google, Amazon ou Apple. Lorsqu'un utilisateur s'est authentifié avec le fournisseur social, AWS Amplify crée un nouvel utilisateur dans votre groupe d'utilisateurs si nécessaire, et fournit le jeton OIDC de l'utilisateur à votre application.

Pour plus d'informations, consultez la documentation relative au cadre AWS Amplify de votre plate-forme d'application :

Configuration de l'interface utilisateur hébergée avec la console Amazon Cognito

  1. Accédez à la console Amazon Cognito. Il se peut que vous soyez invité à saisir vos informations d'identification AWS.

  2. Gérez 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 Add an app client.

  6. Attribuez un nom à 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. Choisissez Create app client.

  9. Prenez note de l'ID du client d'application.

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

  11. Configurez l'application.

    1. Dans la barre de navigation sur le côté gauche de la page de la console, choisissez App client settings (Paramètres du client d'application).

    2. Sélectionnez Cognito User Pool (Groupe d'utilisateurs Cognito) en tant que l'un des Fournisseurs d'identité activés.

      Note

      Pour pouvoir se connecter avec des fournisseurs d'identité (IdP) externes tels que Facebook, Amazon, Google ou Apple, ou via des fournisseurs d'identité OpenID Connect (OIDC) ou SAML, vous devez d'abord les configurer selon la description suivante, puis revenir à la page Paramètres du client d'application pour les activer.

    3. Saisissez une URL de rappel qui sera utilisée par le serveur d'autorisation Amazon Cognito après l'authentification des utilisateurs. Pour une application Web, l'URL doit commencer par https://, comme https://www.exemple.com.

      Pour une application iOS ou Android, vous pouvez utiliser une URL de rappel telle que myapp://.

    4. Sélectionnez Authorization code grant (Octroi de code d'autorisation) pour renvoyer un code d'autorisation qui est ensuite remplacé par des jetons de groupe d'utilisateurs. É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. Pour des raisons de sécurité, nous vous recommandons d'utiliser ce flux d'octroi de code d'autorisation avec une PKCE (Proof Key for Code Exchange) pour les applications mobiles.

      Sous Flux OAuth autorisés, sélectionnez Implicit grant (Octroi implicite) pour récupérer les jetons Web JSON (JWT) du groupe d'utilisateurs depuis Amazon Cognito. Vous pouvez utiliser ce flux lorsqu'il n'y a pas de backend disponible pour échanger un code d'autorisation contre des jetons. C'est également utile pour déboguer les jetons.

      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.

      Sélectionnez toutes les Règles OAuth autorisées, sauf si vous souhaitez spécifiquement en exclure une.

      Note

      Sélectionnez Informations d'identification du client uniquement si votre application doit demander des jetons d'accès pour elle-même et non pas pour un utilisateur.

    5. Sélectionnez Save Changes.

  12. Configurez un domaine.

    1. À la page Domain name (Nom de domaine), saisissez un préfixe de domaine disponible.

    2. Notez cette adresse de domaine complète.

    3. Sélectionnez Save Changes.

Pour afficher votre page de connexion

Vous pouvez afficher l'interface utilisateur hébergée avec une page Web de connexion à l'URL suivante. Notez le response_type. Dans ce cas, response_type=code pour l'octroi de code d'autorisation.

https://<your_domain>/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>

Vous pouvez afficher la page Web d'interface utilisateur de connexion hébergée à l'URL suivante pour l'octroi de code implicite où response_type = token. Après une connexion réussie, Amazon Cognito renvoie des jetons de groupe d'utilisateurs à la barre d'adresse de votre navigateur Web.

https://<your_domain>/login?response_type=token&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>

Vous pouvez trouver les jetons d'identité JWT (JSON Web Token) juste après le paramètre #idtoken= dans la réponse.

Voici un exemple de réponse à partir d'une demande d'octroi implicite. Votre chaîne de jetons d'identité sera beaucoup plus longue.

https://www.example.com/#id_token=123456789tokens123456789&expires_in=3600&token_type=Bearer

Vous pouvez décoder et vérifier les jetons de groupe d'utilisateurs à l'aide de AWS Lambda, consultez Decode and verify Amazon Cognito JWT tokens sur le site web GitHub AWS.

Les jetons de groupe d'utilisateurs Amazon Cognito sont signés à l'aide d'un algorithme RS256.

Vous devrez peut-être patienter quelques minutes pour actualiser votre navigateur avant que les modifications effectuées dans la console ne s'affichent.

Votre domaine s'affiche dans la page Domain name (Nom de domaine). Votre ID de client d'application et votre URL de rappel s'affichent à la page App client settings (Paramètres de client d'application).

Note

La page web de connexion hébergée par Amazon Cognito ne prend pas en charge le flux d'authentification personnalisé.