Solución de problemas relacionados con SAML en AEM

Descripción

Entorno
Experience Manager

Problema/Síntomas
¿Cómo podemos solucionar problemas relacionados con el lenguaje de afirmación de seguridad (SAML) con Adobe Experience Manager (AEM)? ¿Qué información se necesitaría para solucionar problemas?

Resolución

Problema de bucle infinito:

  • Comprobar si ds:signature es parte de la afirmación SAML Si no, esto se debe hacer en IDP end y marcar la casilla de verificación para la aserción firmada
  • Compruebe el formato nameId en la respuesta SAML. El formato debe coincidir exactamente con el formato de directiva nameId configurado en la configuración de SAML
  • Compruebe si existe SAML AudienceRestriction en la respuesta SAML. El valor de esta etiqueta debe coincidir exactamente con el ID de entidad de la configuración SAML
  • Compruebe saml2:conditions (NotBefore y NotOnOrAfter), Server no está sincronizado con el servidor ntp. Use ntpd y fuerce la sincronización de la hora de sys (ntpdate -s pool.ntp.org). Para la prueba, cambie la tolerancia del reloj a -1, esto ignorará la diferencia del reloj.
  • Compruebe si idp no tiene una afirmación firmada. Pregunte al equipo de idp que la respuesta está firmada y que la afirmación debe firmarse según las especificaciones de saml.
  • Compruebe si la salida del rastreador SAML está cifrada la afirmación de IDP. Si es así, 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 correcto:

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

Cifrado:

  • Primero, complete siempre la configuración de SAML sin encriptación. Cuando esto ocurra, habilite el cifrado. Con este método es fácil depurar el problema

Dispatcher:

  • Asegúrese de que la solicitud de inicio de sesión SAML esté permitida en la sección de filtros. Si no es así, actualice la sección /filter para permitir que las solicitudes del POST sean */saml_login.

    /0100

  • 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

    El encabezado siempre edita Set-Cookie (.*) "$1; HTTPOnly; Secure"

Afirmación no válida:

 
 

1
2
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 podría ser con el certificado almacenado en el almacén de confianza. La solución aquí podría ser eliminar y volver a cargar el nuevo idp_cert y comprobar el caso de uso.
  • Si no está encriptando la respuesta SAML, puede ignorar "Clave privada de SP no proporcionada: No se puede firmar el error "Solicitud de autor".

No se puede recuperar la clave privada:

 
 

1
2
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 ninguna clave privada para descifrar la respuesta. Si desea cifrar la respuesta, debe cargar una clave privada válida en el almacén de claves de AEM.

Información que debe proporcionar al presentar un ticket de soporte relacionado con SAML:
  • Solicitud SAML
  • Respuesta de SAML
  • Configuración de SAML
  • Registros de depuración para SAML (com.adobe.granite.auth.saml)
  • Error.log
  • Archivo HAR1 para extraer la solicitud/respuesta SAML

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

En esta página