Indivíduos da minha organização recebem uma mensagem “O login externo não é autorizado” quando tentam acessar a Amazon QuickSight - Amazon QuickSight

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Indivíduos da minha organização recebem uma mensagem “O login externo não é autorizado” quando tentam acessar a Amazon QuickSight

   Público-alvo: QuickSight administradores da Amazon 

Quando um indivíduo em sua organização está se federando na Amazon QuickSight usando AssumeRoleWithWebIdentity, QuickSight mapeia um único usuário baseado em função para um único login externo. Em alguns casos, esse indivíduo pode ser autenticado por meio de um login externo (como o Amazon Cognito) que se difere do usuário mapeado originalmente. Nesse caso, eles não conseguem acessar QuickSight e receber a seguinte mensagem de erro inesperada.

O login externo usado para federação não é autorizado para o QuickSight usuário.

Para saber mais sobre como solucionar esse problema, consulte as seguintes seções:

Por que isso está acontecendo?

Você está usando um fluxo simplificado do Amazon Cognito

Se você estiver usando o Amazon Cognito para se federar QuickSight, a configuração de login único (IAM Identity Center) pode usar a operação de CognitoIdentityCredentials API para assumir a função. QuickSight Esse método mapeia todos os usuários no pool de identidade do Amazon Cognito para um único QuickSight usuário e não é suportado pela Amazon. QuickSight

Recomendamos usar a operação de API AssumeRoleWithWebIdentity em vez disso, pois ela especifica o nome da sessão do perfil.

Você está usando usuários não autenticados do Amazon Cognito

O Centro de Identidade do IAM para o Amazon Cognito está configurado para usuários não autenticados no banco de identidades do Amazon Cognito. A política de confiança da QuickSight função é configurada conforme o exemplo a seguir.

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

Essa configuração permite que um usuário temporário do Amazon Cognito assuma uma sessão de função mapeada para um usuário exclusivo. QuickSight Como as identidades não autenticadas são temporárias, elas não são suportadas pelo. QuickSight

Recomendamos que você não use essa configuração, que não é suportada pela Amazon QuickSight. Para a Amazon QuickSight, certifique-se de que o Amazon Cognito IAM Identity Center use usuários autenticados.

Você excluiu e recriou um usuário do Amazon Cognito com os mesmos atributos de nome do usuário

Nesse caso, o usuário associado do Amazon Cognito que está mapeado para o usuário da Amazon QuickSight foi excluído e recriado. O usuário do Amazon Cognito recém-criado tem um assunto subjacente diferente. Dependendo de como o nome da sessão da função é mapeado para o QuickSight usuário, o nome da sessão pode corresponder ao mesmo usuário baseado na QuickSight função.

Recomendamos que você remapeie o QuickSight usuário para o assunto de usuário atualizado do Amazon Cognito usando UpdateUser a operação de API. Para obter mais informações, consulte o exemplo de UpdateUser API a seguir.

Você está mapeando vários grupos de usuários do Amazon Cognito em diferentes grupos Contas da AWS de identidades e com QuickSight

O mapeamento de vários grupos de usuários do Amazon Cognito é diferente Contas da AWS de um grupo de identidades e QuickSight não é suportado pela Amazon. QuickSight

Como posso corrigir isso?

Você pode usar operações QuickSight públicas de API para atualizar as informações de login externas dos seus usuários. Use as opções apresentadas a seguir para saber como fazer isso.

Use RegisterUser para criar usuários com informações de login externas

Se o provedor de login externo for o Amazon Cognito, use o código da CLI apresentado a seguir para criar usuários.

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

O external-login-id deve ser o ID de identidade para o usuário do Amazon Cognito. O formato é <identity-region>:<cognito-user-sub>, conforme mostrado no exemplo a seguir.

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

Se o provedor de login externo for um provedor do OpenID Connect (OIDC) personalizado, use o código da CLI apresentado a seguir para criar usuários.

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

Veja um exemplo a seguir.

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

Para saber mais sobre o uso RegisterUser na CLI, consulte RegisterUsera Amazon QuickSight API Reference.

Use DescribeUser para verificar as informações de login externas dos usuários

Se um usuário for um usuário federado baseado em perfil de um provedor de login externo, use a operação de API DescribeUser para verificar as informações de login externo dele, conforme mostrado no código a seguir.

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

Veja um exemplo a seguir.

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

O resultado contém os campos de informações de login externo, se houver. Veja um exemplo a seguir.

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

Para saber mais sobre o uso DescribeUser na CLI, consulte DescribeUsera Amazon QuickSight API Reference.

Use UpdateUser para atualizar as informações de login externas dos usuários

Em alguns casos, você pode descobrir que as informações de login externo salvas para o usuário usando o resultado DescribeUser não estão corretas ou que as informações de login externo estão ausentes. Nesse caso, você pode usar a operação de API UpdateUser para atualizar as informações. Use os exemplos apresentados a seguir.

Para os usuários do Amazon Cognito, use:

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

Veja um exemplo a seguir.

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

Para os usuários do provedor OIDC personalizado, use:

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

Veja um exemplo a seguir.

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

Caso deseje excluir as informações de login externo para o usuário, use NONE external login federation provider type. Use o comando da CLI apresentado a seguir para excluir as informações de login externo.

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

Veja um exemplo a seguir.

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

Para saber mais sobre o uso UpdateUser na CLI, consulte a UpdateUserAmazon QuickSight API Reference.