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á.
As pessoas da minha organização recebem a mensagem “Login externo não autorizado” quando tentam acessar o Quick Sight
| Público-alvo: administradores do Amazon Quick Suite |
Quando um indivíduo em sua organização está se federando no Quick Sight usando AssumeRoleWithWebIdentity, o Quick Sight 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 o Quick Sight e recebem a seguinte mensagem de erro inesperada.
O login externo usado para federação não é autorizado para o usuário do Quick Sight.
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 no Quick Sight, a configuração de login único (IAM Identity Center) pode usar a operação de CognitoIdentityCredentials API para assumir a função do Quick Sight. Esse método mapeia todos os usuários no pool de identidade do Amazon Cognito para um único usuário do Quick Sight e não é suportado pelo Quick Sight.
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 função Quick Sight é configurada como no exemplo a seguir.
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 do Quick Sight. Como as identidades não autenticadas são temporárias, elas não são suportadas pelo Quick Sight.
Recomendamos que você não use essa configuração, que não é compatível com o Quick Sight. Para o Quick Sight, 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 do Quick Sight 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 usuário do Quick Sight, o nome da sessão pode corresponder ao mesmo usuário baseado na função do Quick Sight.
Recomendamos que você remapeie o usuário do Quick Sight 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 Contas da AWS grupos de identidades e com o Quick Sight
O mapeamento de vários grupos de usuários do Amazon Cognito de forma diferente Contas da AWS para um grupo de identidades e o Quick Sight não é compatível com o Quick Sight.
Como posso corrigir isso?
Você pode usar as operações públicas da API do Quick Sight 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-idaccount-id--namespacenamespace--emailuser-email--user-roleuser-role--identity-type IAM --iam-arn arn:aws:iam::account-id:role/cognito-associated-iam-role--session-namecognito-username--external-login-federation-provider-type COGNITO --external-login-idcognito-identity-id--regionidentity-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-idaccount-id--namespacenamespace--emailuser-email--user-roleuser-role--identity-type IAM --iam-arn arn:aws:iam::account-id:role/identity-provider-associated-iam-role--session-nameidentity-username--external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-urlcustom-identity-provider-url--external-login-idcustom-provider-identity-id--regionidentity-region
Veja um exemplo do 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 Referência de API do Amazon Quick Suite.
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-idaccount-id--namespacenamespace--user-nameidentity-provider-associated-iam-role/identity-username--regionidentity-region
Veja um exemplo do 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 Referência de API do Amazon Quick Suite.
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-idaccount-id--namespacenamespace--user-namecognito-associated-iam-role/cognito-username--emailuser-email--roleuser-role--external-login-federation-provider-type COGNITO --external-login-idcognito-identity-id--regionidentity-region
Veja um exemplo do 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-idaccount-id--namespacenamespace--user-nameidentity-provider-associated-iam-role/identity-username--emailuser-email--roleuser-role--external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-urlcustom-identity-provider-url--external-login-idcustom-provider-identity-id--regionidentity-region
Veja um exemplo do 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-idaccount-id--namespacenamespace--user-nameidentity-provider-associated-iam-role/identity-username--emailuser-email--roleuser-role--external-login-federation-provider-type NONE --regionidentity-region
Veja um exemplo do 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 Referência de API do UpdateUserAmazon Quick Suite.