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

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

   Destinatarios: 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 (IAMIdentity Center) podría utilizar la CognitoIdentityCredentials API operación 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 la AssumeRoleWithWebIdentity API operación en su lugar, que especifica el nombre de la sesión del rol.

Utiliza usuarios no autenticados de Amazon Cognito

El Centro de IAM identidades de Amazon Cognito está configurado para los usuarios no autenticados del grupo de identidades de Amazon Cognito. La política de confianza de QuickSight roles se configura como en el siguiente ejemplo.

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

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 IAM Identidad 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 al QuickSight usuario al asunto de usuario de Amazon Cognito actualizado mediante UpdateUser API la operación. Para obtener más información, consulte el siguiente UpdateUser API ejemplo.

Está mapeando varios grupos de usuarios de Amazon Cognito en diferentes grupos Cuentas de AWS de identidades y con QuickSight

Amazon QuickSight no admite el mapeo de varios grupos de usuarios Cuentas de AWS de Amazon Cognito en grupos de identidades diferentes. QuickSight

¿Cómo puedo solucionarlo?

Puede utilizar API operaciones QuickSight públicas 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 CLI código 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 de OpenID Connect (OIDC) personalizado, utilice el siguiente CLI código 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 su uso RegisterUser enCLI, consulte RegisterUserAmazon QuickSight API Reference.

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 DescribeUser API operación para comprobar su información de inicio de sesión externa, como se muestra en el código siguiente.

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 su uso DescribeUser enCLI, consulte DescribeUserAmazon QuickSight API Reference.

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 UpdateUser API operación 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 OIDC de proveedores 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 CLI comando para eliminar la información de inicio de sesión externa.

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 enCLI, consulte la UpdateUser QuickSight APIReferencia de Amazon.