Comment puis-je résoudre les problèmes d'authentification d'Amazon Cognito avec OpenSearch Dashboards ?

Date de la dernière mise à jour : 10/03/2022

J'essaie d'accéder à OpenSearch Dashboards à l'aide de l'authentification Amazon Cognito sur mon cluster Amazon OpenSearch Service. Cependant, je reçois une erreur ou rencontre un problème de connexion. Pourquoi ?

Résolution

J'ai saisi l'URL des tableaux de bord OpenSearch, mais ne vois pas la page de connexion.

Remarque : les tableaux de bord OpenSearch succèdent à Kibana.

Vous pouvez être redirigé depuis l'URL du tableau de bord OpenSearch vers le tableau de bord Dashboards pour plusieurs raisons :

Remarque : l'authentification Amazon Cognito n'est pas obligatoire. Pour exiger l'authentification Amazon Cognito, modifiez votre stratégie d’accès au domaine. Pour plus d'informations, consultez la rubrique Configuration des politiques d'accès.

Si vous êtes redirigé vers la page de connexion d'OpenSearch Dashboards mais que vous ne parvenez pas à vous connecter, cela signifie qu'Amazon Cognito n'est pas correctement configuré. Les démarches suivantes vous permettent de résoudre ce problème :

Erreur « Missing role » (Rôle manquant)

Si le contrôle précis des accès (FGAC) est activé sur OpenSearch Dashboards dans votre domaine OpenSearch Services, vous pouvez recevoir le message d'erreur suivant :

"Missing Role
No roles available for this user, please contact your system administrator."

Cette erreur se produit lorsqu'il existe une incohérence entre votre utilisateur IAM primaire ou principal et le rôle Amazon Cognito assumé. Le rôle qui est assumé (à partir de votre groupe d'identités Amazon Cognito) doit correspondre au rôle IAM que vous avez spécifié pour l'utilisateur primaire ou principal.

Pour que le rôle IAM de l'utilisateur principal ou lead corresponde au rôle Amazon Cognito assumé, effectuez les opérations suivantes :

1.    Accédez à la console OpenSearch Services.

2.    Choisissez votre domaine OpenSearch Services.

3.    Sélectionnez Actions.

4.    Sélectionnez Modify authentication (Modifier l'authentification).

5.    Sous Fine-grained access control (Contrôle précis des accès), choisissez Set IAM role (Définir le rôle IAM) en tant qu'utilisateur primaire ou principal. Assurez-vous de spécifier l'ARN du rôle d'authentification Amazon Cognito.

6.    (Facultatif) Si vous avez oublié l'ARN de l'utilisateur principal ou primaire (ou d'autres informations de configuration du rôle), modifiez l'utilisateur principal ou lead. Lorsque vous reconfigurez votre utilisateur principal ou lead, vous pouvez spécifier un nouvel ARN IAM.

7.    Sélectionnez Submit (Soumettre).

Erreur d'invalidité de la configuration du groupe d'identités

Une fois votre connexion authentifiée avec succès à l'aide d'Amazon Cognito, vous pouvez encore recevoir l'erreur suivante :

com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException:
Invalid identity pool configuration. Check assigned IAM roles for this pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
InvalidIdentityPoolConfigurationException; Request ID:
xxxxx-xxxx-xxxx-xxxx-xxxxx)

Ce message d'erreur apparaît lorsqu'Amazon Cognito ne dispose pas des autorisations nécessaires pour assumer un rôle IAM au nom de l'utilisateur authentifié. Modifiez la relation d'approbation pour le rôle IAM afin d'inclure les éléments suivants :

1.    Ouvrez la console Amazon IAM.

2.    Sélectionnez Rôles.

3.    Sélectionnez votre rôle IAM.

4.    Choisissez l’onglet Trust relationships (Relations d'approbation).

5.    Sélectionnez Edit trust relationship (Modifier la relation d'approbation). Assurez-vous que votre groupe d'identités Amazon Cognito peut assumer le rôle IAM.

Par exemple :

{
  "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"
      }
    }
  }]
}

6.    Sélectionnez Update Trust Policy (Mettre à jour la stratégie de confiance).

Pour plus d'informations sur la mise à jour de la politique de rôle IAM avec un contrôle précis des accès (FGAC) activé, consultez Didacticiel : Utilisateur principal IAM et Amazon Cognito.

Erreur d'incohérence de redirection

Le message d'erreur suivant peut s'afficher lorsque vous tentez d'accéder à OpenSearch Dashboards sur OpenSearch Services à l'aide d'une URL de Dashboards ou d'une URL de point de terminaison personnalisée :

"An error was encountered with the requested page"

Cette erreur se produit lorsque vous n'avez pas configuré l'URL de rappel dans les paramètres du client d'application d'Amazon Cognito.

Pour vérifier que vos paramètres du client d'application sont correctement configurés, effectuez les étapes suivantes :

1.    Accédez à la console Amazon Cognito.

2.    Sélectionnez Manage User Pools (Gérer les groupes d'utilisateurs).

3.    Sélectionnez le groupe d'utilisateurs que vous souhaitez modifier.

4.    Sur le côté gauche de la console, sélectionnez App client settings (Paramètres du client d'application).

5.    Vérifiez que la ou les URL de rappel et la ou les URL de déconnexion sont correctement configurées. Par exemple :

<dashboards-endpoint>/_dashboards/app/home

Pour un domaine où un point de terminaison personnalisé est activé, votre URL de rappel et votre URL de déconnexion se présenteront comme suit :

<domain-custom-endpoint>/_dashboards/app/home

Erreur du rôle d'autorisation de groupe d'identités Amazon Cognito

Si vous parvenez à vous connecter mais qu'OpenSearch Dashboards ne s'affiche pas, le message d'erreur suivant peut s'afficher :

User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet

Par défaut, le rôle IAM authentifié des groupes d'identités n'inclut pas les privilèges requis pour accéder à Dashboards. Vous pouvez trouver le nom du rôle authentifié et l'ajouter à la stratégie d'accès OpenSearch Services en effectuant les opérations suivantes :

1.    Accédez à la console Amazon Cognito.

2.    Sélectionnez Manage Identity Pools (Gérer les groupes d'identités).

3.    Dans le coin supérieur droit de la console, choisissez Edit identity pool (Modifier le groupe d'identités).

4.    Ajoutez votre rôle authentifié à votre stratégie d'accès au domaine OpenSearch Services.

Remarque : une bonne pratique consiste à utiliser une stratégie basée sur les ressources pour les utilisateurs authentifiés. Le rôle authentifié contrôle spécifiquement l'authentification Amazon Cognito pour Dashboards. Par conséquent, ne supprimez pas d'autres ressources de la stratégie d'accès au domaine.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?