Gestion de l'identité des clients - AWS Conseils prescriptifs

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.

Gestion de l'identité des clients

La gestion de l'identité et de l'accès des clients (CIAM) est une technologie qui permet aux entreprises de gérer l'identité des clients. Il fournit une sécurité et une expérience utilisateur améliorée pour l'inscription, la connexion et l'accès aux applications grand public, aux portails Web ou aux services numériques proposés par une organisation. CIAMvous aide à identifier vos clients, à créer des expériences personnalisées et à déterminer l'accès approprié dont ils ont besoin pour les applications et services destinés aux clients. Une CIAM solution peut également aider une entreprise à respecter les obligations de conformité liées aux normes et cadres réglementaires du secteur. Pour plus d'informations, voir Qu'est-ce que c'est CIAM ? sur le AWS site Web.

Amazon Cognito est un service d'identité pour les applications Web et mobiles qui fournit des CIAM fonctionnalités aux entreprises de toutes tailles. Amazon Cognito inclut un répertoire d'utilisateurs, un serveur d'authentification et un service d'autorisation pour les jetons d'accès OAuth 2.0, et peut également fournir des informations d'identification temporairesAWS. Vous pouvez utiliser Amazon Cognito pour authentifier et autoriser les utilisateurs à partir de l'annuaire des utilisateurs intégré, d'un fournisseur d'identité fédéré tel que votre annuaire d'entreprise ou de fournisseurs d'identité sociale tels que Google et Facebook.

Les deux principaux composants d'Amazon Cognito sont les groupes d'utilisateurs et les groupes d'identités. Les groupes d'utilisateurs sont des annuaires d'utilisateurs qui fournissent des options d'inscription et de connexion aux utilisateurs de vos applications Web et mobiles. Les pools d'identités fournissent des AWS informations d'identification temporaires permettant à vos utilisateurs d'accéder à d'autres AWS services.

Quand utiliser Amazon Cognito

Amazon Cognito est un bon choix lorsque vous avez besoin d'une solution de gestion des utilisateurs sécurisée et rentable pour vos applications Web et mobiles. Voici quelques scénarios dans lesquels vous pourriez décider d'utiliser Amazon Cognito :

  • Authentification. Si vous prototypez une application ou souhaitez implémenter rapidement une fonctionnalité de connexion utilisateur, vous pouvez utiliser les groupes d'utilisateurs et l'interface utilisateur hébergée d'Amazon Cognito pour accélérer le développement. Vous pouvez vous concentrer sur les fonctionnalités principales de votre application pendant qu'Amazon Cognito gère l'inscription, la connexion et la sécurité des utilisateurs.

    Amazon Cognito prend en charge différentes méthodes d'authentification, notamment les noms d'utilisateur et les mots de passe, les fournisseurs d'identité sociale et les fournisseurs d'identité d'entreprise via OpenID SAML Connect (). OIDC

  • Gestion des utilisateurs Amazon Cognito prend en charge la gestion des utilisateurs, y compris l'enregistrement des utilisateurs, la vérification et le rétablissement du compte. Les utilisateurs peuvent s'inscrire et se connecter auprès de leur fournisseur d'identité préféré, et vous pouvez personnaliser le processus d'enregistrement en fonction des exigences de votre application.

  • Accès sécurisé aux AWS ressources. Amazon Cognito s'intègre IAM pour fournir un contrôle d'accès précis aux ressources. AWS Vous pouvez définir IAM des rôles et des politiques pour contrôler l'accès aux AWS services en fonction de l'identité de l'utilisateur et de l'appartenance à un groupe.

  • Identité fédérée. Amazon Cognito prend en charge l'identité fédérée, qui permet à un utilisateur de se connecter en utilisant son identité sociale ou professionnelle existante. Cela évite aux utilisateurs de créer de nouvelles informations d'identification pour votre application, ce qui améliore l'expérience utilisateur et réduit les frictions lors du processus d'inscription.

  • Applications mobiles et Web. Amazon Cognito convient parfaitement aux applications mobiles et Web. Il fournit SDKs différentes plateformes et facilite l'intégration de l'authentification et du contrôle d'accès dans le code de votre application. Il prend en charge l'accès hors ligne et la synchronisation pour les applications mobiles, afin que les utilisateurs puissent accéder à leurs données même lorsqu'ils sont hors ligne.

  • Scalabilité. Amazon Cognito est un service hautement disponible et entièrement géré qui peut être étendu à des millions d'utilisateurs. Il traite plus de 100 milliards d'authentifications par mois.

  • Sûreté. Amazon Cognito intègre plusieurs fonctionnalités de sécurité, telles que le chiffrement des données sensibles, l'authentification multifactorielle (MFA) et la protection contre les attaques Web courantes telles que les scripts intersites (XSS) et la falsification de requêtes intersites (). CSRF Amazon Cognito fournit également des fonctionnalités de sécurité avancées telles que l'authentification adaptative, la vérification de l'utilisation d'informations d'identification compromises et la personnalisation des jetons d'accès.

  • Intégration avec les AWS services existants. Amazon Cognito s'intègre parfaitement aux AWS services. Cela permet de simplifier le développement et de rationaliser la gestion des utilisateurs pour les fonctionnalités qui dépendent AWS des ressources.

Le schéma suivant illustre certains de ces scénarios.

Utilisation d'Amazon Cognito pour la gestion de l'identité et de l'accès des clients () CIAM
  1. L'application s'authentifie auprès des groupes d'utilisateurs Amazon Cognito et obtient des jetons.

  2. L'application utilise les pools d'identités Amazon Cognito pour échanger des jetons contre des informations d'identification. AWS

  3. L'application accède aux AWS services avec des informations d'identification.

Nous vous recommandons d'utiliser Amazon Cognito chaque fois que vous devez ajouter des fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs à vos applications Web ou mobiles, en particulier lorsque vous avez plusieurs fournisseurs d'identité, que vous avez besoin d'un accès sécurisé aux AWS ressources et que vous avez des exigences en matière d'évolutivité.

Considérations relatives à la conception
  • Créez un groupe d'utilisateurs ou un groupe d'identités Amazon Cognito en fonction de vos besoins.

  • Ne mettez pas à jour le profil utilisateur trop fréquemment (par exemple, à chaque demande de connexion). Si une mise à jour est requise, stockez les attributs mis à jour dans une base de données externe telle qu'Amazon DynamoDB.

  • N'utilisez pas la gestion de l'identité des employés d'Amazon Cognito.

  • Votre application doit toujours valider les JSON Web Tokens (JWTs) avant de leur faire confiance en vérifiant leur signature et leur validité. Cette validation doit être effectuée côté client sans envoyer d'APIappels au groupe d'utilisateurs. Une fois le jeton vérifié, vous pouvez faire confiance aux allégations contenues dans le jeton et les utiliser au lieu de passer des getUser API appels supplémentaires. Pour plus d'informations, consultez la section Vérification d'un jeton JSON Web dans la documentation Amazon Cognito. Vous pouvez également utiliser des JWT bibliothèques supplémentaires pour la vérification des jetons.

  • Activez les fonctionnalités de sécurité avancées d'Amazon Cognito uniquement si vous n'utilisez pas de CUSTOM_AUTH flux, de déclencheurs AWS Lambda pour des défis d'authentification personnalisés ou de connexion fédérée. Pour connaître les considérations et les limites relatives aux fonctionnalités de sécurité avancées, consultez la documentation Amazon Cognito.

  • Permet AWS WAF de protéger les groupes d'utilisateurs d'Amazon Cognito en utilisant des règles basées sur le taux et en combinant plusieurs paramètres de demande. Pour plus d'informations, consultez le billet de AWS blog Protégez votre groupe d'utilisateurs Amazon Cognito avec. AWS WAF

  • Si vous souhaitez bénéficier d'un niveau de protection supplémentaire, utilisez un CloudFront proxy Amazon pour le traitement et la validation supplémentaires des demandes entrantes, comme expliqué dans le billet de AWS blog Protégez les clients publics pour Amazon Cognito en utilisant un proxy Amazon CloudFront.

  • Tous les API appels après la connexion de l'utilisateur doivent être effectués depuis les services principaux. Par exemple, utilisez-le pour refuser AWS WAF les appels vers le backend de l'applicationUpdateUserAttribute, mais plutôt pour appeler AdminUpdateUserAttribute depuis le backend de l'application, afin de mettre à jour l'attribut utilisateur.

  • Lorsque vous créez un groupe d'utilisateurs, vous choisissez le mode de connexion des utilisateurs, par exemple avec un nom d'utilisateur, une adresse e-mail ou un numéro de téléphone. Cette configuration ne peut pas être modifiée une fois le groupe d'utilisateurs créé. De même, les attributs personnalisés ne peuvent pas être modifiés ou supprimés une fois qu'ils ont été ajoutés au groupe d'utilisateurs.

  • Nous vous recommandons d'activer l'authentification multifactorielle (MFA) dans votre groupe d'utilisateurs.

  • Amazon Cognito ne fournit actuellement pas de fonctions intégrées de sauvegarde ou d'exportation. Pour sauvegarder ou exporter les données de vos utilisateurs, vous pouvez utiliser l'architecture de référence d'exportation des profils Amazon Cognito.

  • Utilisez IAM des rôles pour un accès général aux AWS ressources. Pour des exigences d'autorisation précises, utilisez Amazon Verified Permissions. Ce service de gestion des autorisations s'intègre nativement à Amazon Cognito. Vous pouvez également utiliser la personnalisation des jetons d'accès pour enrichir les demandes spécifiques à l'application afin de déterminer le niveau d'accès et le contenu disponibles pour l'utilisateur. Si votre application utilise Amazon API Gateway comme point d'entrée, utilisez la fonctionnalité Amazon Cognito pour sécuriser Amazon API Gateway à l'aide des autorisations Amazon Verified Permissions. Ce service gère et évalue les politiques de sécurité granulaires qui font référence aux attributs et aux groupes des utilisateurs. Vous pouvez vous assurer que seuls les utilisateurs des groupes Amazon Cognito autorisés ont accès aux applications. APIs Pour plus d'informations, consultez l'article Protect API Gateway with Amazon Verified Permissions sur le site Web de la AWS communauté.

  • Utilisez-le AWS SDKs pour accéder aux données utilisateur depuis le backend en appelant et en récupérant les attributs utilisateur, les statuts et les informations de groupe. Vous pouvez stocker des données d'applications personnalisées dans les attributs utilisateur d'Amazon Cognito et les synchroniser sur tous les appareils.

Les sections suivantes présentent trois modèles d'intégration d'Amazon Cognito à d'autres AWS services : les équilibreurs de charge des applications, Amazon API Gateway et Amazon Service. OpenSearch

Intégration à un Application Load Balancer

Vous pouvez configurer un Application Load Balancer avec Amazon Cognito pour authentifier les utilisateurs de l'application, comme illustré dans le schéma suivant.

Configuration d'un Application Load Balancer avec Amazon Cognito pour la gestion de l'identification

En configurant la règle par défaut de l'HTTPSécouteur, vous pouvez transférer l'identification des utilisateurs vers l'Application Load Balancer et créer un processus d'authentification automatique. Pour plus de détails, consultez l'article Comment configurer un Application Load Balancer pour authentifier les utilisateurs via un groupe d'utilisateurs Amazon Cognito dans le Knowledge Center. AWS Si votre application est hébergée sur Kubernetes, consultez le billet de AWS blog How to use Application Load Balancer et Amazon Cognito pour authentifier les utilisateurs de vos applications Web Kubernetes. 

Intégration à Amazon API Gateway

Amazon API Gateway est un service de API passerelle entièrement géré basé sur le cloud qui facilite la création, la publication et la gestion APIs à grande échelle. Il s'agit d'un point d'entrée pour le trafic utilisateur dans les services principaux. Vous pouvez intégrer Amazon Cognito à API Gateway pour mettre en œuvre l'authentification et le contrôle d'accès, soit pour empêcher toute utilisation abusive, soit pour tout autre cas APIs de sécurité ou d'utilisation professionnelle. Vous pouvez implémenter l'authentification et le contrôle d'accès pour sécuriser API Gateway à l'aide APIs d'un autorisateur Amazon Cognito, d'Amazon Verified Permissions ou d'un autorisateur Lambda. Le tableau suivant décrit comment ces trois approches prennent en charge l'autorisation.

Type d'autorisateur Autorisation prise en charge

Autorisateur Amazon Cognito

Jeton d'accès : scopes

Jeton d'identification : validité

Autorisations vérifiées — Autorisateur Lambda

Verified Permissions effectue la validation du jeton (signature, expiration) pour le jeton configuré.

Jeton d'accès : tout attribut simple, attribut complexe, étendue ou groupe.

Jeton d'identification : tout attribut simple, attribut complexe, étendue ou groupe.

Les politiques peuvent également utiliser des données contextuelles pour une autorisation Zero Trust (par exemple, adresse IP, contexte de demande ou empreinte digitale de l'appareil).

Autorisateur Lambda personnalisé

Vous pouvez implémenter un schéma personnalisé de validation et d'autorisation des jetons.

Autorisateur Amazon Cognito

Vous pouvez intégrer Amazon Cognito à API Gateway pour implémenter l'authentification et le contrôle d'accès, comme illustré dans le schéma suivant. L'autorisateur Amazon Cognito valide le jeton JSON Web (JWT) généré par Amazon Cognito et autorise les demandes en fonction des étendues personnalisées du jeton d'accès ou d'un jeton d'identification valide. Pour en savoir plus sur la mise en œuvre, consultez Comment configurer un groupe d'utilisateurs Amazon Cognito en tant qu'autorisateur sur une passerelle ? API REST API dans la base de AWS connaissances.

Utilisation d'un autorisateur Amazon Cognito avec API Gateway pour la gestion de l'identification

Autorisations vérifiées — Autorisateur Lambda

Vous pouvez utiliser Amazon Verified Permissions pour intégrer Amazon Cognito ou votre propre fournisseur d'identité à API Gateway à des fins d'authentification et de contrôle d'accès précis. Verified Permissions prend en charge la validation des identifiants et des jetons d'accès par Amazon Cognito ou par tout autre fournisseur OpenID Connect (OIDC) et peut autoriser l'accès en fonction d'attributs de jeton simples, d'attributs de jetons complexes (tels que des tableaux ou des JSON structures), de portées et d'appartenances à des groupes. Pour commencer à sécuriser API Gateway à l'aide REST APIs d'autorisations vérifiées, consultez le billet de blog sur la AWS sécurité Authorize API Gateway APIs using Amazon Verified Permissions with Amazon Cognito ou apportez votre propre fournisseur d'identité et la vidéo Amazon Verified Permissions — Quick Start Overview and Demo.

Utilisation d'un autorisateur Lambda Verified Permissions avec API Gateway pour la gestion de l'identification

Autorisateur Lambda

Vous pouvez utiliser un autorisateur AWS Lambda pour implémenter un schéma d'autorisation personnalisé. Votre schéma peut utiliser des paramètres de demande pour déterminer l'identité de l'appelant ou utiliser une stratégie d'authentification par jeton porteur telle que OAuth ou. SAML Cette option offre une flexibilité maximale mais vous oblige à coder la logique de sécurisation de votreAPIs. Pour plus d'informations, consultez la section Utiliser les autorisateurs Lambda de API Gateway dans la API documentation de Gateway.

Intégration à Amazon OpenSearch Service

Vous pouvez utiliser Amazon Cognito pour sécuriser les domaines Amazon OpenSearch Service. Par exemple, si un utilisateur peut avoir besoin d'accéder aux OpenSearch tableaux de bord depuis Internet, comme illustré dans le schéma suivant. Dans ce scénario, Amazon Cognito peut fournir des autorisations d'accès, y compris des autorisations détaillées, en mappant les groupes et les utilisateurs Amazon Cognito aux autorisations de service internes. OpenSearch Pour plus d'informations, consultez la section Configuration de l'authentification Amazon Cognito pour les OpenSearch tableaux de bord dans la documentation du OpenSearch service.

Utiliser un Amazon Cognito pour sécuriser les domaines Amazon Service OpenSearch