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.
Solucionar problemas de SAML con Connect Customer
En este artículo se explica cómo solucionar algunos de los problemas más comunes que encuentran los clientes al usar SAML con Connect Customer.
Si estás solucionando problemas de integración con otros proveedores de identidad, como Okta y Azure AD PingIdentify, entre otros, consulta el taller de configuración del SSO de Connect Customer
Mensaje de error: Acceso denegado Se ha autenticado la cuenta pero no se ha incorporado a esta aplicación.
¿Qué significa esto?
Este error significa que el usuario se ha autenticado correctamente a través de SAML en el punto de conexión de inicio de sesión de AWS SAML. Sin embargo, el usuario no podía estar matched/found dentro de Connect Customer. Esto suele indicar una de las siguientes posibilidades:
-
El nombre de usuario de Connect Customer no coincide con el atributo
RoleSessionNameSAML especificado en la respuesta SAML devuelta por el proveedor de identidad. -
El usuario no existe en Connect Customer.
-
El usuario tiene dos perfiles independientes que se le asignan mediante el inicio de sesión único.
Resolución
Siga estos pasos para comprobar el atributo RoleSessionName SAML especificado en la respuesta SAML devuelta por el proveedor de identidad y, a continuación, recupere y compare con el nombre de inicio de sesión en Connect Customer.
-
Realice una captura HAR (HTTP ARchive) para el proceso de inicio de sesión integral. Esto captura las solicitudes de red desde el lado del navegador. Guarde el archivo HAR con su nombre de archivo preferido, por ejemplo, saml.har.
Para obtener instrucciones, consulte ¿Cómo creo un archivo HAR desde mi navegador para un caso de AWS Support?
-
Utilice un editor de texto para encontrar el elemento SAMLResponse en el archivo HAR. O ejecute los comandos siguientes:
$ grep -o "SAMLResponse=.*&" azuresaml.har | sed -E 's/SAMLResponse=(.*)&/\1/' > samlresponse.txt-
Esto busca el elemento SAMLResponse en el archivo HAR y lo guarda en un archivo samlresponse.txt.
-
La respuesta está codificada en URL y el contenido está codificado en Base64.
-
-
Descodifique la respuesta URL y luego descodifique el contenido de Base64 usando una herramienta de terceros o un script simple. Por ejemplo:
$ cat samlresponse.txt | python3 -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()));" | base64 --decode > samlresponsedecoded.txtEste script utiliza un comando python simple para descodificar el elemento SAMLResponse de su formato codificado en URL original. Luego descodifica la respuesta de Base64 y genera la respuesta de SAML en texto sin formato.
-
Compruebe la respuesta descodificada para el atributo necesario. Por ejemplo, en la siguiente imagen se muestra cómo comprobar
RoleSessionName:
-
Compruebe si el nombre de usuario devuelto en el paso anterior existe como usuario en su instancia de Connect Customer:
$ aws connect list-users --instance-id [INSTANCE_ID] | grep $username
-
Si el grep final no devuelve ningún resultado, significa que el usuario no existe en su instancia de Connect Customer o que se ha creado con una instancia diferente case/capitalization.
-
Si su instancia de Connect Customer tiene muchos usuarios, la respuesta de la llamada a la ListUsers API puede estar paginada. Utilice el
NextTokendevuelto por la API para recuperar al resto de los usuarios. Para obtener más información, consulte ListUsers.
-
Respuesta de SAML de ejemplo
A continuación se muestra una imagen de una respuesta SAML de ejemplo. En este caso, el proveedor de identidades (IdP) es Azure Active Directory (Azure AD).
Mensaje de error: acceso denegado. Póngase en contacto con su AWS para obtener ayuda con el administrador de la cuenta.
¿Qué significa esto?
El rol que el usuario ha asumido se ha autenticado correctamente mediante SAML. Sin embargo, el rol no tiene permiso para llamar a la GetFederationToken API de Connect Customer. Esta llamada es necesaria para que el usuario pueda iniciar sesión en su instancia de Connect Customer mediante SAML.
Resolución
-
Asocie una política que tenga los permisos para
connect:GetFederationTokencon el rol que se encuentra en el mensaje de error. A continuación, se muestra una política de ejemplo: -
Utilice la consola de IAM para asociar la política. O utilice la API de la política del rol asociado, por ejemplo:
$ aws iam attach-role-policy —role-name [ASSUMED_ROLE] —policy_arn [POLICY_WITH_GETFEDERATIONTOKEN]
Mensaje de error: sesión vencida
Si ve el mensaje Sesión vencida al iniciar sesión, probablemente solo tenga que actualizar el token de la sesión. Vaya al proveedor de identidades e inicie sesión. Actualice la página Connect Customer. Si sigue recibiendo este mensaje, póngase en contacto con el equipo de TI.