Como solucionar problemas relacionados ao SAML no AEM

Descrição

Ambiente
Experience Manager

Problema/Sintomas
Como podemos solucionar problemas relacionados ao SAML (Security Assertion Markup Language) com o Adobe Experience Manager (AEM)? Quais informações seriam necessárias para solucionar problemas?

Resolução

Problema de loop infinito:

  • Caso contrário, verifique se ds:signature faz parte da asserção de SAML. Isso deve ser feito no IDP e marque a caixa de seleção para Asserção assinada
  • Verifique o formato nameId na resposta SAML. O formato deve corresponder exatamente ao formato da política nameId, conforme configurado na Configuração SAML
  • Verifique se SAML AudienceRestriction na resposta de SAML, o valor dessa tag deve corresponder exatamente à ID da entidade na configuração de SAML
  • Verifique saml2:conditions(NotBefore & NotOnOrAfter), Server não está sincronizado com ntp server.Use ntpd e force-o a sincronizar sys time (ntpdate -s pool.ntp.org). Para teste, altere a tolerância do relógio para -1, isso ignorará a diferença do relógio.
  • Verifique se o idp não tem asserção assinada. Pergunte à equipe de idp que a resposta é assinada e a asserção precisa ser assinada de acordo com a especificação de saml.
  • Verifique se a saída do rastreador SAML se a asserção do IDP está criptografada. Se sim, a configuração do manipulador de autenticação SAML deve usar a caixa de seleção de criptografia

Verifique se o certificado SAML está no formato adequado:

  • Busque a assinatura da resposta SAML e corrija o certificado, ou seja, após a 65ª linha, pressione enter e assim por diante.
  • Isso pode ser usado para instalar AEM truststore e corresponder os detalhes do certificado ao IDP.

Criptografia:

  • Primeiro, sempre conclua a configuração do SAML sem criptografia. Quando isso for feito, ative a criptografia. Com isso, é fácil depurar o problema

Dispatcher:

  • Certifique-se de que a solicitação de logon SAML é permitida na seção de filtros.Caso contrário, atualize a seção /filter para permitir solicitações POST para */saml_login.

    /0100

  • Verifique se há alterações no cabeçalho Mod (mod_header) no nível do servidor da Web em httpd.conf. Ele deve estar no formato abaixo

    O cabeçalho sempre edita Set-Cookie (.*) "$1; HTTPOnly; Seguro"

Asserção Invá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
  • O problema pode ser com o certificado armazenado no armazenamento confiável. A solução aqui pode ser excluir e fazer upload novamente do novo idp_cert e verificar o caso de uso.
  • Se você não estiver criptografando a resposta SAML, poderá ignorar "Chave privada do SP não fornecida: Erro "Não é possível assinar a solicitação de Authn".

Não é Possível Recuperar a Chave 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.
  • Esse erro significa que o IDP criptografou a asserção e não há chave privada para descriptografar a resposta. Se quiser criptografar a resposta, é necessário fazer upload de uma chave privada válida no armazenamento de chaves AEM.

Informações a fornecer ao gerar um tíquete de suporte relacionado ao SAML:
  • Solicitação SAML
  • Resposta de SAML
  • Configuração de SAML
  • Registros DEBUG para SAML (com.adobe.granite.auth.saml)
  • Error.log
  • Arquivo HAR1 para extrair Solicitação/Resposta de SAML

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

Nesta página