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

Lecture de 6 minute(s)
0

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

Résolution

Lorsque vous saisissez l'URL d'OpenSearch Dashboards, la page de connexion n'apparaît pas

Une redirection de l'URL d'OpenSearch Dashboards vers le tableau de bord Dashboards peut avoir plusieurs raisons :

  • Vous avez utilisé une stratégie d'accès au domaine basée sur l'IP qui autorise l'adresse IP publique de votre périphérique local à accéder à Dashboards. Assurez-vous d'ajouter le rôle authentifié Amazon Cognito dans la stratégie d’accès au domaine. Si vous n'ajoutez pas le rôle authentifié, votre stratégie d’accès se comporte comme une stratégie normale.
  • Les demandes sont signées par un utilisateur ou un rôle Gestion des identités et des accès AWS (AWS IAM) autorisé. Lorsque vous accédez à l'URL de Dashboards, évitez d'utiliser les méthodes de proxy de Dashboards pour signer vos demandes.
  • Votre domaine OpenSearch Service se trouve dans un Virtual Private Cloud (VPC) et votre domaine est doté d'une stratégie d'accès libre. Dans ce scénario, tous les utilisateurs du VPC peuvent accéder à Dashboards et au domaine sans authentification Amazon Cognito.

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 approches suivantes vous permettent de résoudre ce problème :

Erreur « Missing role » (Rôle manquant)

Si vous avez activé le contrôle précis des accès (FGAC) sur OpenSearch Dashboards dans votre domaine OpenSearch Service, le message d'erreur suivant peut s'afficher :

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

L'erreur précédente se produit lorsqu'il existe une incohérence entre votre utilisateur lead ou principal IAM et le rôle Amazon Cognito assumé. Le rôle assumé à partir de votre groupe d'identités Amazon Cognito doit correspondre au rôle IAM que vous avez spécifié pour l'utilisateur lead ou principal.

Afin que le rôle IAM de l'utilisateur lead ou principal corresponde au rôle Amazon Cognito assumé, procédez comme suit :

  1. Ouvrez la console OpenSearch Service.

  2. Dans le volet de navigation, sous Clusters gérés, choisissezDomaines.

  3. Sélectionnez Actions.

  4. Choisissez Edit security configuration (Modifier la configuration de sécurité).

  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 :

  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"
       }
      }
    }
  ]
}
  1. Sélectionnez Update Trust Policy (Mettre à jour la politique d'approbation).

Pour plus d'informations sur la mise à jour de votre politique de rôle IAM lorsque que le contrôle précis des accès (FGAC) est activé, veuillez consulter le didacticiel Configurer un domaine avec un utilisateur principal IAM et l'authentification Amazon Cognito.

Erreur d'incohérence de redirection

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

"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.

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

  1. Ouvrez 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, sous App integration (Intégration d'application), sélectionnez le client d'application OpenSearch dans le 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 ne parvenez pas à vous connecter et qu'OpenSearch Dashboards ne s'affiche pas, il se peut que vous receviez le message d'erreur suivant :

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é pour les groupes d'identités n'inclut pas les privilèges requis pour accéder à Dashboards. Afin de trouver le nom du rôle authentifié et l'ajouter à la stratégie d’accès OpenSearch Service, procédez comme suit :

  1. Ouvrez 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 Service.

Remarque : il est recommandé d'utiliser une politique 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.


Informations connexes

Problèmes de configuration courants

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an