Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Las personas de mi organización reciben el mensaje «El inicio de sesión externo no está autorizado» cuando intentan acceder a Amazon QuickSight
Público objetivo: QuickSight administradores de Amazon |
Cuando una persona de tu organización se está federando en Amazon QuickSight mediante AssumeRoleWithWebIdentity, QuickSight asigna un único usuario basado en roles a un único inicio de sesión externo. En algunos casos, esa persona puede autenticarse a través de un inicio de sesión externo (como Amazon Cognito) que es diferente del usuario asignado originalmente. Si es así, no podrá acceder QuickSight y recibirá el siguiente mensaje de error inesperado.
El inicio de sesión externo utilizado para la federación no está autorizado para el QuickSight usuario.
Para saber cómo solucionar este problema, consulte las secciones siguientes:
¿Por qué ocurre esto?
Utiliza un flujo simplificado de Amazon Cognito
Si utiliza Amazon Cognito para federarse QuickSight, la configuración de inicio de sesión único (IAM Identity Center) podría utilizar la operación de CognitoIdentityCredentials
API para asumir la función. QuickSight Este método asigna todos los usuarios del grupo de identidades de Amazon Cognito a un solo QuickSight usuario y Amazon no lo admite. QuickSight
Le recomendamos que utilice en su lugar la operación de API AssumeRoleWithWebIdentity
, que especifica el nombre de sesión del rol.
Utiliza usuarios no autenticados de Amazon Cognito
IAM Identity Center de Amazon Cognito está configurado para usuarios no autenticados en el grupo de identidades de Amazon Cognito. La política de confianza de QuickSight roles se configura como en el siguiente ejemplo.
Esta configuración permite a un usuario temporal de Amazon Cognito asumir una sesión de rol asignada a un usuario único. QuickSight Como las identidades no autenticadas son temporales, no son compatibles con. QuickSight
Te recomendamos que no utilices esta configuración, ya que Amazon no admite esta configuración QuickSight. En el caso de Amazon QuickSight, asegúrese de que el Centro de identidades de IAM de Amazon Cognito utilice usuarios autenticados.
Eliminó y volvió a crear un usuario de Amazon Cognito con los mismos atributos de nombre de usuario.
En este caso, el usuario de Amazon Cognito asociado que estaba asignado al usuario de Amazon se eliminó y se QuickSight volvió a crear. El usuario de Amazon Cognito recién creado tiene un asunto subyacente diferente. En función de cómo se asigne el nombre de la sesión del rol al QuickSight usuario, el nombre de la sesión puede corresponder al mismo usuario basado en el rol. QuickSight
Le recomendamos que reasigne el QuickSight usuario al asunto de usuario de Amazon Cognito actualizado mediante UpdateUser
la operación de API. Para obtener más información, consulte el siguiente ejemplo de UpdateUser API.
Está mapeando varios grupos de usuarios de Amazon Cognito en diferentes grupos Cuentas de AWS de identidades y con QuickSight
El mapeo de varios grupos de usuarios de Amazon Cognito en un grupo de identidades diferente Cuentas de AWS y Amazon QuickSight no lo admite. QuickSight
¿Cómo puedo solucionarlo?
Puede utilizar las operaciones de la API QuickSight pública para actualizar la información de inicio de sesión externa de sus usuarios. Utilice las siguientes opciones para saber cómo hacerlo.
Se utiliza RegisterUser para crear usuarios con información de inicio de sesión externa
Si el proveedor de inicio de sesión externo es Amazon Cognito, utilice el siguiente código de la CLI para crear usuarios.
aws quicksight register-user --aws-account-id
account-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
El external-login-id
debe ser el ID de identidad del usuario de Amazon Cognito. El formato es <identity-region>:<cognito-user-sub>
, como se muestra en el siguiente ejemplo.
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 el proveedor de inicio de sesión externo es un proveedor personalizado de OpenID Connect (OIDC), utilice el siguiente código CLI para crear usuarios.
aws quicksight register-user --aws-account-id
account-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
A continuación se muestra un ejemplo.
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 obtener más información sobre el uso RegisterUser
en la CLI, consulte RegisterUserla referencia de la QuickSight API de Amazon.
Se utiliza DescribeUser para comprobar la información de inicio de sesión externa de los usuarios
Si un usuario es un usuario federado basado en roles de un proveedor de inicio de sesión externo, utilice la operación de API DescribeUser
para comprobar la información de inicio de sesión externa para él, como se muestra en el siguiente código.
aws quicksight describe-user --aws-account-id
account-id
--namespacenamespace
--user-nameidentity-provider-associated-iam-role
/identity-username
--regionidentity-region
A continuación se muestra un ejemplo.
aws quicksight describe-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --region us-west-2
El resultado contiene los campos de información de inicio de sesión externa si los hay. A continuación se muestra un ejemplo.
{ "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 obtener más información sobre el uso DescribeUser
en la CLI, consulte DescribeUserla referencia de la QuickSight API de Amazon.
Se utiliza UpdateUser para actualizar la información de inicio de sesión externa de los usuarios
En algunos casos, es posible que la información de inicio de sesión externa guardada para el usuario a partir del resultado de DescribeUser
no sea correcta o que falte la información de inicio de sesión externa. Si es así, puede utilizar la operación de API UpdateUser
para actualizarla. Siga los siguientes ejemplos.
Para los usuarios de Amazon Cognito, utilice lo siguiente.
aws quicksight update-user --aws-account-id
account-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
A continuación se muestra un ejemplo.
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 los usuarios proveedores de OIDC personalizados, utilice lo siguiente.
aws quicksight update-user --aws-account-id
account-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
A continuación se muestra un ejemplo.
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 quiere eliminar la información de inicio de sesión externo del usuario, utilice NONE
external login federation provider type
. Utilice el siguiente comando de la CLI para eliminar la información de inicio de sesión externo.
aws quicksight update-user --aws-account-id
account-id
--namespacenamespace
--user-nameidentity-provider-associated-iam-role
/identity-username
--emailuser-email
--roleuser-role
--external-login-federation-provider-type NONE --regionidentity-region
A continuación se muestra un ejemplo.
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 obtener más información sobre el uso UpdateUser
en la CLI, consulte la UpdateUserreferencia de la QuickSight API de Amazon.