Qu’est-ce qu’Amazon Cognito ? - 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.

Qu’est-ce qu’Amazon Cognito ?

Amazon Cognito est une plateforme d’identité pour les applications Web et mobiles. Il s’agit d’un annuaire d’utilisateurs, d’un serveur d’authentification et d’un service d’autorisation pour les jetons d’accès OAuth 2.0 et les informations d’identification AWS. Avec Amazon Cognito, vous pouvez authentifier et autoriser les utilisateurs à partir de l’annuaire d’utilisateurs intégré, de votre annuaire d’entreprise et de fournisseurs d’identité grand public tels que Google et Facebook.

Les deux composants qui suivent constituent Amazon Cognito. Ils fonctionnent indépendamment ou en tandem, en fonction des besoins d’accès de vos utilisateurs.

Groupes d’utilisateurs

Créez un groupe d’utilisateurs lorsque vous souhaitez authentifier et autoriser les utilisateurs à accéder à votre application ou à votre API. Les groupes d’utilisateurs sont des annuaires d’utilisateurs permettant à la fois la création, la gestion et l’authentification des utilisateurs en libre-service et pilotées par l’administrateur. Votre groupe d’utilisateurs peut être un annuaire indépendant et un fournisseur d’identité (IdP) OIDC, ainsi qu’un fournisseur de services intermédiaire (SP) auprès de fournisseurs tiers d’identités du personnel et des clients. Vous pouvez fournir une authentification unique (SSO) dans votre application pour les identités du personnel de votre organisation dans les IdP SAML 2.0 et OIDC avec des groupes d’utilisateurs. Vous pouvez également fournir l’authentification unique dans votre application pour l’identité des clients de votre organisation dans les magasins d’identité publics OAuth 2.0 Amazon, Google, Apple et Facebook. Pour plus d’informations sur CIAM (gestion de l’identité et de l’accès des clients), consultez Qu’est-ce que CIAM ?.

Les groupes d’utilisateurs ne nécessitent pas d’intégration à une réserve d’identités. À partir d’un groupe d’utilisateurs, vous pouvez émettre des jetons Web JSON authentifiés (JWT) directement vers une application, un serveur Web ou une API.

Réserves d’identités

Configurez une réserve d’identités Amazon Cognito lorsque vous souhaitez autoriser des utilisateurs authentifiés ou anonymes à accéder à vos ressources AWS. Une réserve d’identités fournit des informations d’identification AWS à votre application afin de fournir des ressources aux utilisateurs. Vous pouvez authentifier les utilisateurs auprès d’un fournisseur d’identité de confiance, tel qu’un groupe d’utilisateurs ou un service SAML 2.0. Il peut également éventuellement émettre des informations d’identification pour les utilisateurs invités. Les réserves d’identités utilisent un contrôle d’accès basé à la fois sur les rôles et sur les attributs pour gérer l’autorisation d’accès de vos utilisateurs à vos ressources AWS.

Les réserves d’identités ne nécessitent pas d’intégration à un groupe d’utilisateurs. Une réserve d’identités peut accepter des champs standard authentifiés émanant directement des fournisseurs d’identité du personnel et des consommateurs.

Un groupe d’utilisateurs et une réserve d’identités Amazon Cognito utilisés conjointement

Dans le diagramme au début de cette rubrique, vous utilisez Amazon Cognito pour authentifier votre utilisateur, puis lui accorder l’accès à un Service AWS.

  1. L’utilisateur de votre application se connecte via un groupe d’utilisateurs et reçoit des jetons OAuth 2.0.

  2. Votre application échange un jeton de groupe d’utilisateurs avec une réserve d’identités pour des informations d’identification AWS temporaires que vous pouvez utiliser avec les API AWS et l’AWS Command Line Interface (AWS CLI).

  3. Votre application attribue la session d’informations d’identification à votre utilisateur et fournit un accès autorisé à des Services AWS comme Amazon S3 et Amazon DynamoDB.

Pour d’autres exemples utilisant des réserves d’identités et des groupes d’utilisateurs, consultez Scénarios Amazon Cognito courants.

Dans Amazon Cognito, l’obligation de sécurité du cloud dans le cadre du modèle de responsabilité partagée est conforme à SOC 1-3, PCI DSS et ISO 27001, et est éligible HIPAA-BAA. Dans Amazon Cognito, vous pouvez concevoir votre sécurité dans le cloud afin d’être conforme à SOC 1-3, ISO 27001 et HIPAA-BAA, mais pas PCI DSS. Pour plus d’informations, consultez Services AWS concernés. Consultez également Considérations sur les données régionales.

Caractéristiques d’Amazon Cognito

Groupes d’utilisateurs

Un groupe d’utilisateurs Amazon Cognito est un annuaire d’utilisateurs. Avec un groupe d’utilisateurs, vos utilisateurs peuvent se connecter à votre application web ou mobile via Amazon Cognito, ou se fédérer via un fournisseur d’identité tiers. Les utilisateurs fédérés et locaux ont un profil utilisateur dans votre groupe d’utilisateurs.

Les utilisateurs locaux sont ceux qui se sont inscrits ou que vous avez créés directement dans votre groupe d’utilisateurs. Vous pouvez gérer et personnaliser ces profils utilisateur dans la AWS Management Console, un kit SDK AWS ou l’AWS Command Line Interface (AWS CLI).

Les groupes d’utilisateurs Amazon Cognito acceptent les jetons et les assertions provenant de fournisseurs d’identité tiers et collectent les attributs utilisateur dans un JWT qu’ils envoient à votre application. Vous pouvez standardiser votre application sur un ensemble de jetons JWT tandis qu’Amazon Cognito gère les interactions avec les fournisseurs d’identité, en mappant leurs champs standard à un format de jeton central.

Un groupe d’utilisateurs Amazon Cognito peut être un fournisseur d’identité autonome. Amazon Cognito s’inspire de la norme OpenID Connect (OIDC) pour générer des JWT à des fins d’authentification et d’autorisation. Lorsque vous connectez des utilisateurs locaux, votre groupe d’utilisateurs fait autorité pour ces utilisateurs. Vous avez accès aux fonctionnalités suivantes quand vous authentifiez des utilisateurs locaux.

  • Implémentez votre propre interface Web qui appelle l’API des groupes d’utilisateurs Amazon Cognito pour authentifier, autoriser et gérer vos utilisateurs.

  • Configurez une authentification multifactorielle (MFA) pour vos utilisateurs. Amazon Cognito prend en charge la MFA avec un mot de passe unique à durée limitée (TOTP) et par SMS.

  • Sécurisez l’accès à partir de comptes utilisateurs contrôlés par des personnes malveillantes.

  • Créez vos propres flux d’authentification personnalisés en plusieurs étapes.

  • Recherchez des utilisateurs dans un autre annuaire et migrez-les vers Amazon Cognito.

Un groupe d’utilisateurs Amazon Cognito peut également jouer le double rôle de fournisseur de services (SP) pour vos fournisseurs d’identités et de fournisseur d’identités pour votre application. Les groupes d’utilisateurs Amazon Cognito peuvent se connecter à des fournisseurs d’identités particuliers tels que Facebook et Google, ou à des fournisseurs d’identités du personnel tels qu’Okta et Active Directory Federation Services (ADFS).

Avec les jetons OAuth 2.0 et OpenID Connect (OIDC) émis par un groupe d’utilisateurs Amazon Cognito, vous pouvez

  • Accepter un jeton d’identification dans votre application qui authentifie un utilisateur et fournit les informations nécessaires pour configurer le profil de l’utilisateur

  • Accepter un jeton d’accès dans votre API avec les étendues OIDC qui autorisent les appels d’API de vos utilisateurs.

  • Récupérer des informations d’identification AWS à partir d’une réserve d’identités Amazon Cognito.

Fonctionnalités des groupes d’utilisateurs Amazon Cognito
Fonctionnalité Description
OIDC IdP Issue ID tokens to authenticate users
Authorization server Issue access tokens to authorize user access to APIs
SAML 2.0 SP Transform SAML assertions into ID and access tokens
OIDC SP Transform OIDC tokens into ID and access tokens
OAuth 2.0 SP Transform ID tokens from Apple, Facebook, Amazon, or Google to your own ID and access tokens
Authentication frontend service Sign up, manage, and authenticate users with the hosted UI
API support for your own UI Create, manage and authenticate users through API requests in supported AWS SDKs¹
MFA Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹
Security monitoring & response Secure against malicious activity and insecure passwords¹
Customize authentication flows Build your own authentication mechanism, or add custom steps to existing flows¹
Groups Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools
Customize ID tokens Customize your ID tokens with new, modified, and suppressed claims
Customize user attributes Assign values to user attributes and add your own custom attributes

¹ La fonctionnalité est disponible uniquement pour les utilisateurs locaux.

Pour plus d’informations sur les groupes d’utilisateurs, consultez Démarrage avec les groupes d'utilisateurs et la référence d’API des groupes d’utilisateurs Amazon Cognito.

Réserves d’identités

Une réserve d’identités est un ensemble d’identifiants ou d’identités uniques que vous attribuez à vos utilisateurs ou invités et que vous autorisez à recevoir des informations d’identification AWS temporaires. Lorsque vous présentez une preuve d’authentification à une réserve d’identités sous la forme de champs standard fiables émanant d’un fournisseur d’identité (IdP) sociale SAML 2.0, OpenID Connect (OIDC) ou OAuth 2.0, vous associez votre utilisateur à une identité figurant dans la réserve d’identités. Le jeton que votre réserve d’identités crée pour l’identité peut récupérer des informations d’identification de session temporaires à partir d’AWS Security Token Service (AWS STS).

Pour compléter les identités authentifiées, vous pouvez également configurer une réserve d’identités pour autoriser l’accès à AWS sans authentification d’un fournisseur d’identité. Vous pouvez proposer votre propre preuve d’authentification personnalisée ou ne pas vous authentifier. Vous pouvez accorder des informations d’identification AWS temporaires à tout utilisateur de l’application qui en fait la demande, avec des identités non authentifiées. Les réserves d’identités acceptent également les champs standard et émettent des informations d’identification en fonction de votre propre schéma personnalisé, avec des identités authentifiées par le développeur.

Avec les réserves d’identités Amazon Cognito, vous pouvez intégrer les politiques IAM de deux manières dans votre Compte AWS. Vous pouvez utiliser ces deux fonctionnalités ensemble ou individuellement.

Contrôle d’accès basé sur les rôles

Lorsque votre utilisateur transmet les champs standard à votre réserve d’identités, Amazon Cognito choisit le rôle IAM qu’il demande. Pour personnaliser les autorisations du rôle en fonction de vos besoins, vous devez appliquer des politiques IAM à chaque rôle. Par exemple, si votre utilisateur démontre qu’il fait partie du service marketing, il reçoit des informations d’identification pour un rôle avec des politiques adaptées aux besoins d’accès du service marketing. Amazon Cognito peut demander un rôle par défaut, un rôle basé sur des règles qui interrogent les champs standard de votre utilisateur ou un rôle basé sur l’appartenance de votre utilisateur à un groupe d’utilisateurs. Vous pouvez également configurer la politique de confiance du rôle afin qu’IAM ne fasse confiance qu’à votre réserve d’identités pour générer des sessions temporaires.

Attributs pour le contrôle d’accès

Votre réserve d’identités lit les attributs à partir des champs standard de votre utilisateur et les mappe sur les balises de principal dans le cadre de la session temporaire de votre utilisateur. Vous pouvez ensuite configurer vos politiques basées sur les ressources IAM pour autoriser ou refuser l’accès aux ressources en fonction des principaux IAM qui contiennent les balises de session de votre réserve d’identités. Par exemple, si votre utilisateur montre qu’il fait partie du service marketing, AWS STS attribue la balise Department: marketing à sa session. Votre compartiment Amazon S3 autorise les opérations de lecture basées sur une condition aws:PrincipalTag qui nécessite une valeur marketing pour la balise Department.

Fonctionnalités des réserves d’identités Amazon Cognito
Fonctionnalité Description
Amazon Cognito user pool SP Exchange an ID token from your user pool for web identity credentials from AWS STS
SAML 2.0 SP Exchange SAML assertions for web identity credentials from AWS STS
OIDC SP Exchange OIDC tokens for web identity credentials from AWS STS
OAuth 2.0 SP Exchange OAuth tokens from Amazon, Facebook, Google, Apple, and Twitter for web identity credentials from AWS STS
Custom SP With AWS credentials, exchange claims in any format for web identity credentials from AWS STS
Unauthenticated access Issue limited-access web identity credentials from AWS STS without authentication
Role-based access control Choose an IAM role for your authenticated user based on their claims, and configure your roles to only be assumed in the context of your identity pool
Attribute-based access control Convert claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags

Pour plus d’informations sur les groupes d’utilisateurs, consultez Démarrage avec les groupes d'identités Amazon Cognito (identités fédérées) et la référence d’API des groupes d’identités Amazon Cognito.

Comparaison des groupes d’utilisateurs et des réserves d’identités Amazon Cognito

Fonctionnalité Description Groupes d’utilisateurs Réserves d’identités
OIDC IdP Issue OIDC ID tokens to authenticate app users
API authorization server Issue access tokens to authorize user access to APIs, databases, and other resources that accept OAuth 2.0 authorization scopes
IAM web identity authorization server Generate tokens that you can exchange with AWS STS for temporary AWS credentials
SAML 2.0 SP & OIDC IdP Issue customized OIDC tokens based on claims from a SAML 2.0 IdP
OIDC SP & OIDC IdP Issue customized OIDC tokens based on claims from an OIDC IdP
OAuth 2.0 SP & OIDC IdP Issue customized OIDC tokens based on scopes from OAuth 2.0 social providers like Apple and Google
SAML 2.0 SP & credentials broker Issue temporary AWS credentials based on claims from a SAML 2.0 IdP
OIDC SP & credentials broker Issue temporary AWS credentials based on claims from an OIDC IdP
OAuth 2.0 SP & credentials broker Issue temporary AWS credentials based on scopes from OAuth 2.0 social providers like Apple and Google
Amazon Cognito user pool SP & credentials broker Issue temporary AWS credentials based on OIDC claims from an Amazon Cognito user pool
Custom SP & credentials broker Issue temporary AWS credentials based on developer IAM authorization
Authentication frontend service Sign up, manage, and authenticate users with the hosted UI
API support for your own authentication UI Create, manage and authenticate users through API requests in supported AWS SDKs¹
MFA Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹
Security monitoring & response Protect against malicious activity and insecure passwords¹
Customize authentication flows Build your own authentication mechanism, or add custom steps to existing flows¹
Groups Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools
Customize ID tokens Customize your ID tokens with new, modified, and suppressed claims
AWS WAF web ACLs Monitor and control requests to your authentication environment with AWS WAF
Customize user attributes Assign values to user attributes and add your own custom attributes
Unauthenticated access Issue limited-access web identity credentials from AWS STS without authentication
Role-based access control Choose an IAM role for your authenticated user based on their claims, and configure your roles to only be assumed in the context of your identity pool
Attribute-based access control Transform user claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags

¹ La fonctionnalité est disponible uniquement pour les utilisateurs locaux.

Démarrer avec Amazon Cognito

Pour le guide des principales tâches et savoir par où commencer, consultez Démarrage avec Amazon Cognito.

Pour des vidéos, des articles, de la documentation et des exemples d’applications, consultez Ressources pour les développeurs Amazon Cognito.

Pour utiliser Amazon Cognito, vous devez avoir un compte AWS. Pour de plus amples informations, veuillez consulter Utilisation de la console Amazon Cognito.

Disponibilité par région

Amazon Cognito est disponible dans plusieurs régions AWS à travers le monde. Dans chaque région, Amazon Cognito est réparti sur plusieurs zones de disponibilité. Ces zones de disponibilité sont physiquement isolées mais sont reliées par des connexions réseau privées, à latence faible, à débit élevé et à forte redondance. Ces zones de disponibilité permettent à AWS de fournir des services, notamment Amazon Cognito, avec des niveaux très élevés de disponibilité et de redondance, tout en réduisant au minimum la latence.

Pour obtenir une liste de toutes les régions où Amazon Cognito est actuellement disponible, consultez Régions et points de terminaison AWS du Référence générale d'Amazon Web Services. Pour plus d’informations sur le nombre de zones de disponibilité disponibles dans chaque région, consultez Infrastructure mondiale AWS.

Tarification Amazon Cognito

Pour plus d’informations sur la tarification Amazon Cognito, consultez Tarification Amazon Cognito.