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
--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 de OpenID Connect (OIDC) personalizado, utilice el siguiente CLI código 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 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
--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 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
--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 OIDC de proveedores 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 CLI comando para eliminar la información de inicio de sesión externa.
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
enCLI, consulte la UpdateUser QuickSight APIReferencia de Amazon.