Solución de problemas relacionados con SAML en AEM

Objetivo

¿Cómo podemos solucionar problemas relacionados con SAML con AEM? ¿Qué información se necesitaría para la resolución de problemas?

Pasos

Problema de bucle infinito:

  • Compruebe si ds:signature es parte de la afirmación de SAML > Si no lo es, esto debe hacerse en el IDP final y debe marcar la casilla de verificación para la Afirmación firmada
  • Compruebe el formato nameId en la respuesta SAML. El formato debe coincidir exactamente con el de la política nameId tal y como se ha configurado en SAML Config
  • Compruebe si hay restricciones de audiencia en la respuesta de SAML. El valor de esta etiqueta debe coincidir exactamente con el ID de la entidad en la configuración de SAML
  • Busque las condiciones saml2:conditions (NotBefore y NotOnOrAfter). El servidor no está sincronizado con el servidor ntp. Use ntpd y fuerce la sincronización de la hora del sistema (ntpdate -s pool.ntp.org). Como prueba, cambie la tolerancia del reloj a -1. Esto ignorará la diferencia del reloj.
  • Compruebe si idp no tiene la afirmación firmada. Pida al equipo de idp que la respuesta y la afirmación estén firmadas según las especificaciones de SAML. 
  • Compruebe la salida del rastreador SAML si la afirmación de IDP está encriptada. En caso afirmativo, la configuración del gestor de autenticación SAML debe utilizar la casilla de verificación de encriptación

Compruebe si el certificado SAML está en el formato adecuado:

  • Obtenga la firma de la respuesta de SAML y corrija el certificado, es decir, después de la línea 65, pulse Intro y continúe.
  • Esto se puede utilizar para instalar AEM truststore y hacer coincidir los detalles del certificado con IDP

Encriptación:

  • En primer lugar, complete siempre la configuración de SAML sin encriptación. Una vez hecho esto, habilite la encriptación. Este método facilita depurar el problema

Dispatcher:

  • Asegúrese de que la solicitud de acceso SAML está permitida en la sección de filtros. Si no, actualice la sección /filter para permitir que las solicitudes POST admitan */saml_login.

    /0100 { /type "allow" /method "POST" /url "*/saml_login" }
  • Compruebe si hay cambios en el encabezado Mod(mod_header) a nivel de servidor web en httpd.conf. Debería estar en el siguiente formato
    <<<<<< Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure" >>>>>

Afirmación no válida:

com.adobe.granite.auth.saml.model.Assertion Invalid Assertion: Signature invalid.
com.adobe.granite.auth.saml.SamlAuthenticationHandler Private key of SP not provided: Cannot sign Authn request
  • El problema puede estar relacionado con un certificado almacenado en truststore. La solución aquí podría ser borrar y volver a cargar el nuevo idp_cert y comprobar el ejemplo de uso.
  • Si no está encriptando la respuesta SAML, puede ignorar el error “Clave privada de SP no proporcionada: No se puede autenticar la solicitud”.

No se puede recuperar la clave privada:

[com.adobe.granite.security.user.internal.servlets.KeyStoreManagingServlet,1121, [javax.servlet.Servlet]] ServiceEvent REGISTERED
saml.log:27.01.2019 14:16:13.642 *ERROR* [qtp275633701-179] com.adobe.granite.auth.saml.SamlAuthenticationHandler KeyStore uninitialized. Cannot retrieve private key to decrypt assertions.
  • Este error significa que IDP ha encriptado la afirmación y no hay una clave privada para desencriptar la respuesta. Si desea encriptar la respuesta, debe cargar una clave privada válida en el almacén de claves de AEM.

Información que se debe proporcionar al mandar un ticket de soporte relacionado con SAML

  • Solicitud de SAML
  • Respuesta de SAML
  • Configuración de SAML
  • Registros de DEPURACIÓN para SAML (com.adobe.granite.auth.saml)
  • Error.log
  • Archivo HAR[1] para extraer la solicitud/respuesta SAML

[1]https://help.tenderapp.com/kb/troubleshooting-your-tender-site/generating-an-har-file

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea