Las personas de mi organización reciben el mensaje «El inicio de sesión externo no está autorizado» cuando intentan acceder a Quick Sight - Amazon Quick Suite

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 Quick Sight

   Destinatarios: administradores de Amazon Quick Suite 

Cuando una persona de su organización se está federando en Quick Sight mediante Quick Sight AssumeRoleWithWebIdentity, Quick Sight asigna un único usuario basado en funciones 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 a Quick Sight y recibirá el siguiente mensaje de error inesperado.

El inicio de sesión externo utilizado para la federación no está autorizado para el usuario de Quick Sight.

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 en Quick Sight, 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 de Quick Sight. Este método asigna todos los usuarios del grupo de identidades de Amazon Cognito a un único usuario de Quick Sight y Quick Sight no lo admite.

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 roles de Quick Sight 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 de Quick Sight. Como las identidades no autenticadas son temporales, Quick Sight no las admite.

Le recomendamos que no utilice esta configuración, ya que Quick Sight no admite esta configuración. Para Quick Sight, asegúrese de que el centro de identidad 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, se eliminó y se volvió a crear el usuario de Amazon Cognito asociado que estaba asignado al usuario de Quick Sight. El usuario de Amazon Cognito recién creado tiene un asunto subyacente diferente. Según cómo se asigne el nombre de la sesión del rol al usuario de Quick Sight, el nombre de la sesión puede corresponder al mismo usuario basado en el rol de Quick Sight.

Le recomendamos que reasigne el usuario de Quick Sight al asunto de usuario actualizado de Amazon Cognito 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 Cuentas de AWS grupos de identidades y con Quick Sight

Mapear varios grupos de usuarios de Amazon Cognito en grupos de identidades diferentes Cuentas de AWS y Quick Sight no es compatible con Quick Sight.

¿Cómo puedo solucionarlo?

Puede utilizar las operaciones de la API pública de Quick Sight 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 --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

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

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 API de Amazon Quick Suite.

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 --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --region identity-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 API de Amazon Quick Suite.

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

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

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

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 API de Amazon Quick Suite.