

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.

# Configuration de l'authentification Amazon Cognito pour les tableaux de bord OpenSearch
<a name="cognito-auth"></a>

Vous pouvez authentifier et protéger votre installation par défaut des OpenSearch tableaux de bord Amazon OpenSearch Service à l'aide d'Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html). L'authentification Amazon Cognito est facultative et disponible uniquement pour les domaines utilisant Elasticsearch OpenSearch 5.1 ou version ultérieure. Si vous ne configurez pas l'authentification Amazon Cognito, vous pouvez malgré tout protéger Dashboards à l'aide d'une [stratégie d'accès basée sur l'adresse IP](ac.md#ac-types-ip), d'un [serveur proxy](dashboards.md#dashboards-proxy), de l'authentification HTTP de base ou de [SAML](saml.md).

La majeure partie du processus d'authentification se déroule dans Amazon Cognito, mais cette section fournit des directives et des exigences relatives à la configuration des ressources Amazon Cognito pour qu'elles fonctionnent OpenSearch avec les domaines de service. La [tarification standard](https://aws.amazon.com/cognito/pricing/) s'applique à toutes les ressources Amazon Cognito.

**Astuce**  
La première fois que vous configurez un domaine pour utiliser l'authentification Amazon Cognito pour les OpenSearch tableaux de bord, nous vous recommandons d'utiliser la console. Les ressources Amazon Cognito sont extrêmement personnalisables, et la console peut vous aider à identifier et comprendre les fonctions qui vous concernent.

**Topics**
+ [Conditions préalables](#cognito-auth-prereq)
+ [Configurer un domaine pour utiliser l'authentification Amazon Cognito](#cognito-auth-config)
+ [Autorisation du rôle authentifié](#cognito-auth-config-ac)
+ [Configuration des fournisseurs d'identité](#cognito-auth-identity-providers)
+ [(Facultatif) Configuration du contrôle précis des accès](#cognito-auth-granular)
+ [(Facultatif) Personnalisation de la page de connexion](#cognito-auth-customize)
+ [(Facultatif) Configuration de la sécurité avancée](#cognito-auth-advanced)
+ [Test](#cognito-auth-testing)
+ [Quotas](#cognito-auth-limits)
+ [Problèmes de configuration courants](#cognito-auth-troubleshooting)
+ [Désactivation de l'authentification Amazon Cognito pour les tableaux de bord OpenSearch](#cognito-auth-disable)
+ [Suppression de domaines utilisant l'authentification Amazon Cognito pour les tableaux de bord OpenSearch](#cognito-auth-delete)

## Conditions préalables
<a name="cognito-auth-prereq"></a>

Avant de pouvoir configurer l'authentification Amazon Cognito pour les OpenSearch tableaux de bord, vous devez remplir plusieurs conditions préalables. La console OpenSearch de service permet de rationaliser la création de ces ressources, mais la compréhension de l'objectif de chaque ressource facilite la configuration et le dépannage. L'authentification Amazon Cognito pour Dashboards nécessite les ressources suivantes :
+ [Groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) Amazon Cognito
+ [Groupes d'identités](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) Amazon Cognito
+ Rôle IAM auquel est attachée la politique `AmazonOpenSearchServiceCognitoAccess` (`CognitoAccessForAmazonOpenSearch`)

**Note**  
Le groupe d'utilisateurs et le groupe d'identités doivent se trouver dans la même Région AWS. Vous pouvez utiliser le même groupe d'utilisateurs, le même pool d'identités et le même rôle IAM pour ajouter l'authentification Amazon Cognito pour les tableaux de bord à OpenSearch plusieurs domaines de service. Pour en savoir plus, veuillez consulter la section [Quotas](#cognito-auth-limits).

### À propos du groupe d'utilisateurs
<a name="cognito-auth-prereq-up"></a>

Les groupes d'utilisateurs ont deux fonctions principales : créer et gérer un annuaire d'utilisateurs et permettre l'inscription et la connexion des utilisateurs. Pour obtenir des instructions sur la création d'un groupe d'utilisateurs, consultez [Getting started with user pools](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) dans le manuel *Amazon Cognito Developer Guide*.

Lorsque vous créez un groupe d'utilisateurs à utiliser avec OpenSearch Service, tenez compte des points suivants :
+ Votre groupe d'utilisateurs Amazon Cognito doit avoir un [nom de domaine](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-domain.html). OpenSearch Le service utilise ce nom de domaine pour rediriger les utilisateurs vers une page de connexion permettant d'accéder aux tableaux de bord. À part un nom de domaine, le groupe d'utilisateurs n'a pas besoin d'une configuration autre que celle par défaut.
+ Vous devez spécifier les [attributs standard](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) obligatoires du groupe d'utilisateurs (par exemple : nom, date de naissance, adresse e-mail et numéro de téléphone). Vous ne pouvez pas modifier ces attributs une fois que vous avez créé le groupe d'utilisateurs. Vous devez donc choisir ceux qui vous concernent en ce moment.
+ Lors de la création de votre groupe d'utilisateurs, choisissez si les utilisateurs peuvent créer leur propre compte, la fiabilité minimale des mots de passe des comptes et s'il convient d'activer l'authentification multi-facteurs. Si vous prévoyez d'utiliser un [fournisseur d'identité externe](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html), ces paramètres sont sans conséquence. Du point de vue technique, vous pouvez activer le groupe d'utilisateurs en tant que fournisseur d'identité *et* activer un fournisseur d'identité externe, mais la plupart des personnes préfèrent l'une ou l'autre méthode.

Le groupe d'utilisateurs IDs prend la forme de`region_ID`. Si vous prévoyez d'utiliser la AWS CLI ou un AWS SDK pour configurer le OpenSearch service, notez l'ID.

### À propos du groupe d'identités
<a name="cognito-auth-prereq-ip"></a>

Les groupes d'identités vous permettent d'attribuer des rôles temporaires dotés de privilèges limités aux utilisateurs une fois qu'ils se sont connectés. Pour obtenir des instructions sur la création d'un pool d'identités, consultez la section [Présentation de la console des pools d'identités](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) dans le manuel *Amazon Cognito Developer Guide*. Lorsque vous créez un pool d'identités à utiliser avec OpenSearch Service, tenez compte des points suivants : 
+ Si vous utilisez la console Amazon Cognito, vous devez cocher la case **Activer l'accès aux identités non authentifiées** pour créer le groupe d'identités. Après avoir créé le pool d'identités et configuré le domaine de OpenSearch service, Amazon Cognito désactive ce paramètre.
+ Vous n'avez pas besoin d'ajouter de [fournisseurs d'identités externes](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) au groupe d'identités. Lorsque vous configurez le OpenSearch service pour utiliser l'authentification Amazon Cognito, il configure le groupe d'identités pour qu'il utilise le groupe d'utilisateurs que vous venez de créer.
+ Une fois que vous avez créé le groupe d'identités, vous devez choisir des rôles IAM non authentifiés et authentifiés. Ces rôles spécifient les stratégies d'accès des utilisateurs avant et après qu'ils se soient connectés. Si vous utilisez la console Amazon Cognito, elle peut créer ces rôles à votre place. Une fois que vous avez créé le rôle authentifié, notez l'ARN, qui se présente sous la forme `arn:aws:iam::123456789012:role/Cognito_identitypoolnameAuth_Role`.

Le pool d'identités IDs prend la forme de`region:ID-ID-ID-ID-ID`. Si vous prévoyez d'utiliser la AWS CLI ou un AWS SDK pour configurer le OpenSearch service, notez l'ID.

### À propos du CognitoAccessForAmazonOpenSearch rôle
<a name="cognito-auth-role"></a>

OpenSearch Le service a besoin d'autorisations pour configurer les groupes d'utilisateurs et d'identités Amazon Cognito et les utiliser pour l'authentification. Vous pouvez utiliser`AmazonOpenSearchServiceCognitoAccess`, qui est une politique AWS gérée, à cette fin. `AmazonESCognitoAccess`est une ancienne politique qui a été remplacée `AmazonOpenSearchServiceCognitoAccess` lorsque le service a été renommé Amazon OpenSearch Service. Les deux politiques fournissent les autorisations Amazon Cognito minimales nécessaires pour activer l'authentification Amazon Cognito. Pour plus de détails sur les politiques, consultez [AmazonOpenSearchServiceCognitoAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonOpenSearchServiceCognitoAccess.html)le *Guide de référence des politiques AWS gérées*.

Si vous utilisez la console pour créer ou configurer votre domaine de OpenSearch service, elle crée un rôle IAM pour vous et associe la `AmazonOpenSearchServiceCognitoAccess` politique (ou la `AmazonESCognitoAccess` politique s'il s'agit d'un domaine Elasticsearch) au rôle. Le nom par défaut du rôle est `CognitoAccessForAmazonOpenSearch`.

Les politiques d'autorisation des rôles `AmazonOpenSearchServiceCognitoAccess` et `AmazonESCognitoAccess` les deux permettent au OpenSearch Service d'effectuer les actions suivantes sur tous les groupes d'identités et d'utilisateurs :
+ Action : `cognito-idp:DescribeUserPool`
+ Action : `cognito-idp:CreateUserPoolClient`
+ Action : `cognito-idp:DeleteUserPoolClient`
+ Action : `cognito-idp:UpdateUserPoolClient`
+ Action : `cognito-idp:DescribeUserPoolClient`
+ Action : `cognito-idp:AdminInitiateAuth`
+ Action : `cognito-idp:AdminUserGlobalSignOut`
+ Action : `cognito-idp:ListUserPoolClients`
+ Action : `cognito-identity:DescribeIdentityPool`
+ Action : `cognito-identity:SetIdentityPoolRoles`
+ Action : `cognito-identity:GetIdentityPoolRoles`

Si vous utilisez le AWS CLI ou l'un des AWS SDKs, vous devez créer votre propre rôle, associer la politique et spécifier l'ARN de ce rôle lorsque vous configurez votre domaine de OpenSearch service. Le rôle doit avoir la relation d'approbation suivante :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "opensearchservice.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Pour obtenir des instructions, voir [Créer un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) et [Ajouter et supprimer des autorisations d'identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le guide de l'*utilisateur IAM*.

## Configurer un domaine pour utiliser l'authentification Amazon Cognito
<a name="cognito-auth-config"></a>

Une fois les conditions requises remplies, vous pouvez configurer un domaine de OpenSearch service pour utiliser Amazon Cognito pour les tableaux de bord.

**Note**  
Amazon Cognito n'est pas disponible du tout. Régions AWS Pour obtenir la liste des régions prises en charge, consultez la section [Points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html#cognito_identity_region) pour Amazon Cognito. Il n'est pas nécessaire d'utiliser la même région pour Amazon Cognito que pour OpenSearch le service.

### Configuration de l'authentification Amazon Cognito (console)
<a name="cognito-auth-config-console"></a>

Parce qu'elle crée le `CognitoAccessForAmazonOpenSearch` rôle qui vous convient, la console offre l'expérience de configuration la plus simple. Outre les autorisations de OpenSearch service standard, vous avez besoin de l'ensemble d'autorisations suivant pour utiliser la console afin de créer un domaine qui utilise l'authentification Amazon Cognito pour les OpenSearch tableaux de bord.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/service-role/CognitoAccessForAmazonOpenSearch"
    }
  ]
}
```

------

Pour obtenir des instructions sur l'ajout d'autorisations à une identité (utilisateur, groupe d'utilisateurs ou rôle), consultez la section [Ajout d'autorisations à une identité IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

Si `CognitoAccessForAmazonOpenSearch` existe déjà, vous avez besoin de moins d'autorisations :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/service-role/CognitoAccessForAmazonOpenSearch"
    }
  ]
}
```

------

**Pour configurer l'authentification Amazon Cognito pour Dashboards (console)**

1. Ouvrez la console Amazon OpenSearch Service à l'adresse [https://console.aws.amazon.com/aos/home/](https://console.aws.amazon.com/aos/home/).

1. Sous **Domains (Domaines)**, sélectionnez le domaine que vous souhaitez configurer.

1. Choisissez **Actions**, **Edit security configuration (Modifier la configuration de sécurité)**.

1. Sélectionnez **Enable Amazon Cognito authentication (Activer l'authentification Amazon Cognito)**.

1. Pour **Région**, sélectionnez celle Région AWS qui contient votre groupe d'utilisateurs et votre groupe d'identités Amazon Cognito.

1. Pour **Cognito user pool (Groupe d'utilisateurs Cognito)**, sélectionnez un groupe d'utilisateurs ou créez-en un. Pour de plus amples informations, veuillez consulter [À propos du groupe d'utilisateurs](#cognito-auth-prereq-up).

1. Pour **Cognito identity pool (Groupe d'identités Cognito)**, sélectionnez un groupe d'identités ou créez-en un. Pour de plus amples informations, veuillez consulter [À propos du groupe d'identités](#cognito-auth-prereq-ip).
**Note**  
Les liens **Créer un groupe d'utilisateurs** et **Créer un groupe d'identités** vous dirigent vers la console Amazon Cognito pour créer ces ressources manuellement. Le processus n'est pas automatique. Pour de plus amples informations, veuillez consulter [Conditions préalables](#cognito-auth-prereq).

1. Pour **nom de rôle IAM**, utilisez la valeur par défaut `CognitoAccessForAmazonOpenSearch` (recommandé) ou entrez un nouveau nom. Pour de plus amples informations, veuillez consulter [À propos du CognitoAccessForAmazonOpenSearch rôle](#cognito-auth-role).

1. Sélectionnez **Save Changes (Enregistrer les modifications)**.

Lorsque votre domaine a terminé le traitement, consultez les étapes de configuration supplémentaires dans [Autorisation du rôle authentifié](#cognito-auth-config-ac) et [Configuration des fournisseurs d'identité](#cognito-auth-identity-providers).

### Configuration de l'authentification Amazon Cognito (AWS CLI)
<a name="cognito-auth-config-cli"></a>

Utilisez le `--cognito-options` paramètre pour configurer votre domaine OpenSearch de service. La syntaxe suivante est utilisée par les commandes `create-domain` et `update-domain-config` :

```
--cognito-options Enabled=true,UserPoolId="user-pool-id",IdentityPoolId="identity-pool-id",RoleArn="arn:aws:iam::123456789012:role/CognitoAccessForAmazonOpenSearch"
```

**Exemple**

L'exemple suivant crée un domaine dans la région `us-east-1`, qui permet l'authentification Amazon Cognito pour Dashboards à l'aide du rôle `CognitoAccessForAmazonOpenSearch` et fournit un accès au domaine à `Cognito_Auth_Role` :

```
aws opensearch create-domain --domain-name my-domain --region us-east-1 --access-policies '{ "Version": "2012-10-17",		 	 	  "Statement":[{"Effect":"Allow","Principal":{"AWS": ["arn:aws:iam::123456789012:role/Cognito_Auth_Role"]},"Action":"es:ESHttp*","Resource":"arn:aws:es:us-east-1:123456789012:domain/*" }]}' --engine-version "OpenSearch_1.0" --cluster-config InstanceType=m4.xlarge.search,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeSize=10 --cognito-options Enabled=true,UserPoolId="us-east-1_123456789",IdentityPoolId="us-east-1:12345678-1234-1234-1234-123456789012",RoleArn="arn:aws:iam::123456789012:role/CognitoAccessForAmazonOpenSearch"
```

Lorsque votre domaine a terminé le traitement, consultez les étapes de configuration supplémentaires dans [Autorisation du rôle authentifié](#cognito-auth-config-ac) et [Configuration des fournisseurs d'identité](#cognito-auth-identity-providers).

### Configuration de l'authentification Amazon Cognito ()AWS SDKs
<a name="cognito-auth-config-sdk"></a>

 AWS SDKs (sauf Android et iOS SDKs) prennent en charge toutes les opérations définies dans le [Amazon OpenSearch Service API Reference](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/Welcome.html), y compris le `CognitoOptions` paramètre des `UpdateDomainConfig` opérations `CreateDomain` et. Pour plus d'informations sur l'installation et l'utilisation du AWS SDKs, consultez la section [Kits de développement AWS logiciel](https://aws.amazon.com/code).

Lorsque votre domaine a terminé le traitement, consultez les étapes de configuration supplémentaires dans [Autorisation du rôle authentifié](#cognito-auth-config-ac) et [Configuration des fournisseurs d'identité](#cognito-auth-identity-providers).

## Autorisation du rôle authentifié
<a name="cognito-auth-config-ac"></a>

Par défaut, le rôle IAM authentifié que vous avez configuré en suivant les instructions [À propos du groupe d'identités](#cognito-auth-prereq-ip) ne dispose pas des privilèges nécessaires pour accéder OpenSearch aux tableaux de bord. Vous devez lui apporter des autorisations supplémentaires.

**Note**  
Si vous avez configuré un [contrôle d'accès détaillé](fgac.md) et que vous utilisez une politique d'accès ouverte ou basée sur IP, vous pouvez ignorer cette étape.

Vous pouvez inclure ces autorisations dans une politique [basée sur l'identité](ac.md#ac-types-identity), mais à moins que vous ne souhaitiez que les utilisateurs authentifiés aient accès à tous les domaines du OpenSearch service, une stratégie [basée sur les ressources](ac.md#ac-types-resource) attachée à un seul domaine est la meilleure approche.

Pour le `Principal`, spécifiez l'ARN du rôle authentifié Cognito que vous avez configuré conformément aux instructions figurant dans [À propos du groupe d'identités](#cognito-auth-prereq-ip).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "arn:aws:iam::111122223333:role/Cognito_identitypoolname/Auth_Role"
            ]
         },
         "Action":[
            "es:ESHttp*"
         ],
         "Resource":"arn:aws:es:us-east-1:111122223333:domain/domain-name/*"
      }
   ]
}
```

------

 Pour obtenir des instructions sur l'ajout d'une politique basée sur les ressources à un domaine OpenSearch de service, consultez. [Configuration des politiques d'accès](createupdatedomains.md#createdomain-configure-access-policies)

## Configuration des fournisseurs d'identité
<a name="cognito-auth-identity-providers"></a>

Lorsque vous configurez un domaine pour utiliser l'authentification Amazon Cognito pour les tableaux de bord, OpenSearch Service ajoute un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) au groupe d'utilisateurs et ajoute le groupe d'utilisateurs au pool d'identités en tant que fournisseur d'authentification. 

**Avertissement**  
Ne renommez pas et ne supprimez pas le client d'application.

Selon la manière dont vous avez configuré votre groupe d'utilisateurs, vous pouvez avoir besoin de créer des comptes d'utilisateur manuellement, ou les utilisateurs peuvent créer leur propre compte. Si ces paramètres sont acceptables, aucune action n'est requise de votre part. Toutefois, de nombreuses personnes préfèrent utiliser des fournisseurs d'identité externes.

Pour activer un fournisseur d'identité SAML 2.0, vous devez fournir un document de métadonnées SAML. Pour activer des fournisseurs d'identité sociaux tels que Login with Amazon, Facebook et Google, vous devez vous procurer un ID d'application et une clé secrète d'application auprès de ces fournisseurs. Vous pouvez activer n'importe quelle combinaison de fournisseurs d'identité. 

Le moyen le plus simple de configurer votre groupe d'utilisateurs est d'utiliser la console Amazon Cognito. Pour obtenir des instructions, consultez les sections [Connexion au groupe d'utilisateurs avec des fournisseurs d'identité tiers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html) et [Paramètres spécifiques à l'application avec le client d'application dans le guide du](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html) développeur *Amazon* Cognito.

## (Facultatif) Configuration du contrôle précis des accès
<a name="cognito-auth-granular"></a>

Vous avez peut-être remarqué que les paramètres du pool d'identités par défaut attribuent à chaque utilisateur qui se connecte le même rôle IAM (`Cognito_identitypoolAuth_Role`), ce qui signifie que chaque utilisateur peut accéder aux mêmes AWS ressources. Si vous souhaitez utiliser un [contrôle précis des accès](fgac.md) avec Amazon Cognito (par exemple, si vous souhaitez que les analystes de votre organisation disposent d'un accès en lecture seule à plusieurs index, mais que les développeurs disposent d'un accès en écriture à tous les index), vous avez deux options :
+ Créez des groupes d'utilisateurs et configurez votre fournisseur d'identité pour choisir le rôle IAM en fonction du jeton d'authentification de l'utilisateur (recommandé).
+ Configurez votre fournisseur d'identité pour choisir le rôle IAM en fonction d'une ou de plusieurs règles.

Pour obtenir une procédure pas à pas qui inclut un contrôle d'accès affiné, veuillez consulter [Didacticiel : configurer un domaine avec un utilisateur principal IAM et l'authentification Amazon Cognito](fgac-iam.md).

**Important**  
Tout comme le rôle par défaut, Amazon Cognito doit faire partie de la relation d'approbation de chaque rôle supplémentaire. Pour plus de détails, consultez la section [Création de rôles pour le mappage des rôles](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#creating-roles-for-role-mapping) dans le manuel *Amazon Cognito Developer Guide*.

### Groupes d'utilisateurs et jetons
<a name="cognito-auth-granular-tokens"></a>

Lorsque vous créez un groupe d'utilisateurs, vous choisissez un rôle IAM pour les membres du groupe. Pour plus d'informations sur la création de groupes, consultez la section [Ajouter des groupes à un groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html) dans le manuel *Amazon Cognito Developer Guide*.

Une fois que vous avez créé un ou plusieurs groupes d'utilisateurs, vous pouvez configurer votre fournisseur d'authentification pour affecter les utilisateurs aux rôles de leurs groupes et non au rôle par défaut du groupe d'identités. Choisissez **Choose role from token (Utiliser le rôle du jeton)**, puis **Utiliser le rôle authentifié par défaut** ou **DENY (REFUSER)** pour spécifier la façon dont le groupe d'identités doit gérer les utilisateurs qui ne font pas partie d'un groupe.

### Rules
<a name="cognito-auth-granular-rules"></a>

Les règles correspondent essentiellement à une série d'instructions `if` qu'Amazon Cognito évalue de manière séquentielle. Par exemple, si l'adresse e-mail d'un utilisateur contient `@corporate`, Amazon Cognito attribue le `Role_A` à cet utilisateur. Si l'adresse e-mail d'un utilisateur contient `@subsidiary`, il attribue `Role_B` à cet utilisateur. Sinon, il attribue à l'utilisateur le rôle authentifié par défaut.

Pour en savoir plus, consultez la section [Utilisation du mappage basé sur des règles pour attribuer des rôles aux utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#using-rules-to-assign-roles-to-users) dans le manuel *Amazon Cognito Developer* Guide.

## (Facultatif) Personnalisation de la page de connexion
<a name="cognito-auth-customize"></a>

Vous pouvez utiliser la console Amazon Cognito pour télécharger un logo personnalisé et apporter des modifications CSS à la page de connexion. Pour obtenir des instructions et une liste complète des propriétés CSS, consultez la section [Personnalisation de l'image de marque (classique) de l'interface utilisateur hébergée](https://docs.aws.amazon.com/cognito/latest/developerguide/hosted-ui-classic-branding.html) dans le manuel *Amazon Cognito* Developer Guide.

## (Facultatif) Configuration de la sécurité avancée
<a name="cognito-auth-advanced"></a>

Les groupes d'utilisateurs Amazon Cognito prennent en charge les fonctionnalités de sécurité avancée, telles que l'authentification multifacteur, la vérification des informations d'identification compromises et l'authentification adaptative. Pour en savoir plus, consultez la section [Utilisation des fonctionnalités de sécurité des groupes d'utilisateurs Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-security.html) dans le manuel du développeur *Amazon Cognito*.

## Test
<a name="cognito-auth-testing"></a>

Une fois que vous êtes satisfait de votre configuration, vérifiez que l'expérience utilisateur répond à vos attentes.

**Pour accéder aux OpenSearch tableaux de bord**

1. Accédez à `https://opensearch-domain/_dashboards` dans un navigateur web. Pour vous connecter directement à un locataire spécifique, ajoutez `?security_tenant=tenant-name` à l'URL.

1. Connectez-vous à l'aide de vos informations d'identification préférées.

1. Une fois OpenSearch les tableaux de bord chargés, configurez au moins un modèle d'index. Dashboards utilise ces modèles pour identifier les index à analyser. Entrez `*`, choisissez **Next step (Étape suivante)**, puis **Create index pattern (Créer un modèle d'index)**.

1. Pour explorer vos données, choisissez **Discover (Découvrir)**.

Si une étape de ce processus échoue, consultez [Problèmes de configuration courants](#cognito-auth-troubleshooting) pour obtenir des informations de dépannage.

## Quotas
<a name="cognito-auth-limits"></a>

Amazon Cognito comporte des limites souples sur un grand nombre de ses ressources. Si vous souhaitez activer l'authentification par tableau de bord pour un grand nombre de domaines de OpenSearch service, consultez les [quotas dans Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) Cognito [et demandez des augmentations de la limite](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) si nécessaire.

Chaque domaine OpenSearch de service ajoute un [client d'application](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) au groupe d'utilisateurs, ce qui ajoute un [fournisseur d'authentification](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) au pool d'identités. Si vous activez l'authentification par tableau de OpenSearch bord pour plus de 10 domaines, vous risquez de rencontrer la limite du « nombre maximum de fournisseurs de pool d'utilisateurs Amazon Cognito par pool d'identités ». **Si vous dépassez une limite, tous les domaines de OpenSearch service que vous essayez de configurer pour utiliser l'authentification Amazon Cognito pour les tableaux de bord peuvent rester bloqués dans un état de configuration en cours de traitement.**

## Problèmes de configuration courants
<a name="cognito-auth-troubleshooting"></a>

Les tableaux suivants répertorient les problèmes de configuration courants et les solutions correspondantes.


**Configuration du OpenSearch service**  

| Problème | Solution | 
| --- | --- | 
|  `OpenSearch Service can't create the role` (console)  | Vous ne disposez pas des autorisations IAM correctes. Ajoutez les autorisations spécifiées dans [Configuration de l'authentification Amazon Cognito (console)](#cognito-auth-config-console). | 
|  `User is not authorized to perform: iam:PassRole on resource CognitoAccessForAmazonOpenSearch` (console)  | Vous n'avez pas iam:PassRole les autorisations nécessaires pour ce [CognitoAccessForAmazonOpenSearch](#cognito-auth-role)rôle. Attachez la politique suivante à votre compte :  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/service-role/CognitoAccessForAmazonOpenSearch"
    }
  ]
}
```    Vous pouvez également attacher la politique `IAMFullAccess`. | 
|  `User is not authorized to perform: cognito-identity:ListIdentityPools on resource`  |  Vous ne disposez pas des autorisations en lecture pour Amazon Cognito. Attachez la politique `AmazonCognitoReadOnly` à votre compte.  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: OpenSearch Service must be allowed to use the passed role`  |  OpenSearch Le service n'est pas spécifié dans la relation de confiance du `CognitoAccessForAmazonOpenSearch` rôle. Vérifiez que votre rôle utilise la relation d'approbation qui est spécifiée dans [À propos du CognitoAccessForAmazonOpenSearch rôle](#cognito-auth-role). Vous pouvez aussi utiliser la console pour configurer l'authentification Amazon Cognito. La console crée un rôle pour vous.  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: User is not authorized to perform: cognito-idp:action on resource: user pool`  | Le rôle spécifié dans --cognito-options n'est pas autorisé à accéder aux ressources Amazon Cognito. Vérifiez que la AmazonOpenSearchServiceCognitoAccess politique AWS gérée est attachée au rôle. Vous pouvez aussi utiliser la console pour configurer l'authentification Amazon Cognito. La console crée un rôle pour vous. | 
| An error occurred (ValidationException) when calling the CreateDomain operation: User pool does not exist |  OpenSearch Le service ne trouve pas le groupe d'utilisateurs. Vérifiez que vous en avez créé un et qu'il a l'ID correct. Pour trouver l'ID, vous pouvez utiliser la console Amazon Cognito ou la commande suivante : AWS CLI  <pre>aws cognito-idp list-user-pools --max-results 60 --region region</pre>  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: IdentityPool not found`  |  OpenSearch Le service ne trouve pas le pool d'identités. Vérifiez que vous en avez créé un et qu'il a l'ID correct. Pour trouver l'ID, vous pouvez utiliser la console Amazon Cognito ou la commande suivante : AWS CLI  <pre>aws cognito-identity list-identity-pools --max-results 60 --region region</pre>  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: Domain needs to be specified for user pool`  | Le groupe d'utilisateurs n'a pas de nom de domaine. Vous pouvez en configurer un à l'aide de la console Amazon Cognito ou de la commande AWS CLI suivante :<pre>aws cognito-idp create-user-pool-domain --domain name --user-pool-id id</pre> | 


**Accès aux OpenSearch tableaux de bord**  

| Problème | Solution | 
| --- | --- | 
| La page de connexion n'affiche pas mes fournisseurs d'identité préférés. |  Vérifiez que vous avez activé le fournisseur d'identité pour le client OpenSearch Service app comme indiqué dans[Configuration des fournisseurs d'identité](#cognito-auth-identity-providers).  | 
|  La page de connexion ne semble pas associée à mon organisation.  |  Consultez [(Facultatif) Personnalisation de la page de connexion](#cognito-auth-customize).  | 
| Mes informations d'identification de connexion ne fonctionnent pas. |  Vérifiez que vous avez configuré le fournisseur d'identité de la façon spécifiée dans [Configuration des fournisseurs d'identité](#cognito-auth-identity-providers). Si vous utilisez le groupe d'utilisateurs comme fournisseur d'identité, vérifiez que le compte existe sur la console Amazon Cognito.  | 
|  OpenSearch Les tableaux de bord ne se chargent pas du tout ou ne fonctionnent pas correctement.  |  Le rôle authentifié par Amazon Cognito nécessite les autorisations `es:ESHttp*` pour permettre au domaine (`/*`) d'accéder à Dashboards et de l'utiliser. Vérifiez que vous avez ajouté une stratégie d'accès, comme indiqué dans [Autorisation du rôle authentifié](#cognito-auth-config-ac).  | 
|  Lorsque je me déconnecte des OpenSearch tableaux de bord depuis un onglet, les autres onglets affichent un message indiquant que le jeton d'actualisation a été révoqué.  |  Lorsque vous vous déconnectez d'une session de OpenSearch tableaux de bord en utilisant l'authentification Amazon Cognito OpenSearch , le service exécute [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)une opération qui vous déconnecte *de toutes les sessions de tableaux de* bord OpenSearch actives.   | 
| Invalid identity pool configuration. Check assigned IAM roles for this pool. | Amazon Cognito ne dispose pas des autorisations nécessaires pour assumer le rôle IAM au nom de l'utilisateur authentifié. Modifiez la relation d'approbation pour le rôle à inclure :  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "cognito-identity.amazonaws.com"
    },
    "Action": "sts:AssumeRoleWithWebIdentity",
    "Condition": {
      "StringEquals": {
        "cognito-identity.amazonaws.com:aud": "identity-pool-id"
      },
      "ForAnyValue:StringLike": {
        "cognito-identity.amazonaws.com:amr": "authenticated"
      }
    }
  }
 ]
}
```     | 
| Token is not from a supported provider of this identity pool. | Cette rare erreur peut se produire lorsque vous supprimez le client d'application client du groupe d'utilisateurs. Essayez d'ouvrir Dashboards dans une nouvelle session de navigateur. | 

## Désactivation de l'authentification Amazon Cognito pour les tableaux de bord OpenSearch
<a name="cognito-auth-disable"></a>

Utilisez la procédure suivante pour désactiver l'authentification Amazon Cognito pour Dashboards.

**Pour désactiver l'authentification Amazon Cognito pour Dashboards (console)**

1. Ouvrez la [console Amazon OpenSearch Service](https://console.aws.amazon.com/aos/home/).

1. Sous **Domains** (Domaines), sélectionnez le domaine que vous souhaitez configurer.

1. Choisissez **Actions**, **Edit security configuration (Modifier la configuration de sécurité)**.

1. Désélectionnez **Enable Amazon Cognito authentication (Activer l'authentification Amazon Cognito)**.

1. Sélectionnez **Enregistrer les modifications**.

**Important**  
Si vous n'avez plus besoin du groupe d'utilisateurs et du groupe d'identités Amazon Cognito, supprimez-les. Sinon, les frais continuent de vous être facturés.

## Suppression de domaines utilisant l'authentification Amazon Cognito pour les tableaux de bord OpenSearch
<a name="cognito-auth-delete"></a>

Pour éviter que les domaines qui utilisent l'authentification Amazon Cognito pour les tableaux de bord ne restent bloqués dans un état de configuration de **traitement**, supprimez les domaines de OpenSearch service *avant* de supprimer les groupes d'utilisateurs et d'identités Amazon Cognito associés.