Les membres de mon organisation reçoivent un message « La connexion externe n'est pas autorisée » lorsqu'ils essaient d'accéder à Amazon QuickSight - Amazon QuickSight

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.

Les membres de mon organisation reçoivent un message « La connexion externe n'est pas autorisée » lorsqu'ils essaient d'accéder à Amazon QuickSight

   Public cible : QuickSight administrateurs Amazon 

Lorsqu'un membre de votre organisation se connecte à Amazon à l' QuickSight aide de AssumeRoleWithWebIdentity, QuickSight mappe un seul utilisateur basé sur des rôles à un seul identifiant externe. Dans certains cas, cette personne peut être authentifiée au moyen d'un identifiant externe (tel qu'Amazon Cognito) différent de celui de l'utilisateur mappé à l'origine. Si tel est le cas, ils ne peuvent pas accéder au message d'erreur inattendu suivant QuickSight et l'obtenir.

L'identifiant externe utilisé pour la fédération n'est pas autorisé pour l' QuickSight utilisateur.

Pour savoir comment résoudre ce problème, consultez les sections suivantes :

Pourquoi ce problème se produit-il ?

Vous utilisez un flux Amazon Cognito simplifié

Si vous utilisez Amazon Cognito pour vous fédérer QuickSight, la configuration de l'authentification unique (IAM Identity Center) peut utiliser l'opération d'CognitoIdentityCredentialsAPI pour assumer le rôle. QuickSight Cette méthode associe tous les utilisateurs du pool d'identités Amazon Cognito à un seul QuickSight utilisateur et n'est pas prise en charge par Amazon. QuickSight

Nous vous recommandons d'utiliser plutôt l'opération d'API AssumeRoleWithWebIdentity, qui spécifie le nom de session de rôle.

Vous utilisez des utilisateurs Amazon Cognito non authentifiés

Amazon Cognito IAM Identity Center est configuré pour les utilisateurs non authentifiés dans la réserve d'identités Amazon Cognito. La politique de confiance QuickSight dans les rôles est configurée comme dans l'exemple suivant.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2:cognito-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }

Cette configuration permet à un utilisateur temporaire d'Amazon Cognito d'assumer une session de rôle mappée à un utilisateur unique. QuickSight Les identités non authentifiées étant temporaires, elles ne sont pas prises en charge par. QuickSight

Nous vous recommandons de ne pas utiliser cette configuration, qui n'est pas prise en charge par Amazon QuickSight. Pour Amazon QuickSight, assurez-vous que le centre d'identité Amazon Cognito IAM utilise des utilisateurs authentifiés.

Vous avez supprimé et recréé un utilisateur Amazon Cognito avec les mêmes attributs de nom d'utilisateur

Dans ce cas, l'utilisateur Amazon Cognito associé mappé à l' QuickSight utilisateur Amazon a été supprimé et recréé. L'utilisateur Amazon Cognito nouvellement créé dispose d'un autre sujet sous-jacent. Selon la façon dont le nom de session du rôle est mappé à l'QuickSight utilisateur, le nom de session peut correspondre au même utilisateur basé sur le QuickSight rôle.

Nous vous recommandons de remapper l' QuickSight utilisateur au sujet utilisateur Amazon Cognito mis à jour à l'aide UpdateUser de l'opération API. Pour plus d'informations, consultez l'exemple UpdateUser d'API suivant.

Vous mappez plusieurs groupes d'utilisateurs Amazon Cognito différents Comptes AWS dans un seul groupe d'identités et avec QuickSight

Le mappage de plusieurs groupes d'utilisateurs Amazon Cognito dans différents groupes Comptes AWS d'identités QuickSight n'est pas pris en charge par Amazon. QuickSight

Comment résoudre ce problème ?

Vous pouvez utiliser les opérations d'API QuickSight publiques pour mettre à jour les informations de connexion externes de vos utilisateurs. Utilisez les options suivantes pour savoir comment procéder.

RegisterUser À utiliser pour créer des utilisateurs avec des informations de connexion externes

Si le fournisseur de connexion externe est Amazon Cognito, utilisez le code d'interface de la ligne de commande suivant pour créer des utilisateurs.

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/cognito-associated-iam-role --session-name cognito-username --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

external-login-id doit être l'ID d'identité de l'utilisateur Amazon Cognito. Le format est <identity-region>:<cognito-user-sub>, comme illustré dans l'exemple suivant.

aws quicksight register-user --aws-account-id 111222333 --namespace default --email cognito-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CognitoQuickSightRole --session-name cognito-user --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-east-1

Si le fournisseur de connexion externe est un fournisseur OpenID Connect (OIDC) personnalisé, utilisez le code d'interface de la ligne de commande suivant pour créer des utilisateurs.

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/identity-provider-associated-iam-role --session-name identity-username --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

Voici un exemple.

aws quicksight register-user --aws-account-id 111222333 --namespace default --email identity-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CustomIdentityQuickSightRole --session-name identity-user --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 12345678-1234-1234-abc1-a1b1234567 --region us-east-1

Pour en savoir plus sur l'utilisation RegisterUser dans la CLI, consultez RegisterUserle Amazon QuickSight API Reference.

DescribeUser À utiliser pour vérifier les informations de connexion externes des utilisateurs

Si un utilisateur est un utilisateur fédéré basé sur des rôles provenant d'un fournisseur de connexion externe, utilisez l'opération d'API DescribeUser pour vérifier ses informations de connexion externes, comme illustré dans le code suivant.

aws quicksight describe-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --region identity-region

Voici un exemple.

aws quicksight describe-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --region us-west-2

Le résultat contient les champs d'informations de connexion externes, le cas échéant. Voici un exemple.

{ "Status": 200, "User": { "Arn": "arn:aws:quicksight:us-east-1:111222333:user-default-IdentityQuickSightRole-user", "UserName": "IdentityQuickSightRole-user", "Email": "user@amazon.com", "Role": "ADMIN", "IdentityType": "IAM", "Active": true, "PrincipalId": "federated-iam-AROAAAAAAAAAAAAAA:user", "ExternalLoginFederationProviderType": "COGNITO", "ExternalLoginFederationProviderUrl": "cognito-identity.amazonaws.com", "ExternalLoginId": "us-east-1:123abc-1234-123a-b123-12345678a" }, "RequestId": "12345678-1234-1234-abc1-a1b1234567" }

Pour en savoir plus sur l'utilisation DescribeUser dans la CLI, consultez DescribeUserle Amazon QuickSight API Reference.

UpdateUser À utiliser pour mettre à jour les informations de connexion externes des utilisateurs

Dans certains cas, il se peut que les informations de connexion externes enregistrées pour l'utilisateur à partir du résultat DescribeUser ne soient pas correctes ou que les informations de connexion externes soient manquantes. Si tel est le cas, vous pouvez utiliser l'opération d'API UpdateUser pour mettre à jour ces informations. Utilisez les exemples suivants.

Pour les utilisateurs Amazon Cognito, utilisez ce qui suit.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name cognito-associated-iam-role/cognito-username --email user-email --role user-role --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

Voici un exemple.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-west-2

Pour les utilisateurs de fournisseurs OIDC personnalisés, utilisez ce qui suit.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

Voici un exemple.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --email user@amazon.com --role ADMIN --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 123abc-1234-123a-b123-12345678a --region us-west-2

Si vous souhaitez supprimer les informations de connexion externes de l'utilisateur, utilisez NONE external login federation provider type. Utilisez la commande de l'interface de la ligne de commande suivante pour supprimer les informations de connexion externes.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type NONE --region identity-region

Voici un exemple.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type NONE --region us-west-2

Pour en savoir plus sur l'utilisation UpdateUser dans la CLI, consultez le UpdateUsermanuel Amazon QuickSight API Reference.