Come risolvere i problemi relativi a SAML in AEM

Come risolvere i problemi relativi a SAML in AEM

Obiettivo

Come possiamo risolvere i problemi di SAML con AEM? Quali informazioni sarebbero necessarie per la risoluzione dei problemi?

Passaggi

Problema del ciclo infinito:

  • Controlla se ds:signature fa parte dell’asserzione SAML > In caso contrario, devi seguire questa procedura sul terminale IDP e devi selezionare la casella di controllo per l’asserzione firmata
  • Verifica il formato nameId nella risposta SAML; il formato dovrebbe corrispondere esattamente al formato nameId Policy come configurato in SAML Config
  • Verifica la presenza di SAML AudienceRestriction nella risposta SAML; il valore di questo tag dovrebbe corrispondere esattamente all’ID dell’entità nella configurazione SAML
  • Controlla saml2:conditions(NotBefore & NotOnOrAfter); il server non è in sincronia con ntp server.use ntpd e devi forzarlo a sincronizzarsi con l’ora di sistema (ntpdate -s pool.ntp.org). Per il test, cambia la tolleranza del clock a -1, questo ignorerà la differenza di clock.
  • Controlla se l’idp non dispone di un’asserzione firmata. Chiedi al team idp che la risposta sia firmata e che l’asserzione sia firmata secondo le specifiche saml. 
  • Controlla se nell’output del tracciatore SAML l’asserzione di IDP è codificata. Se sì, Config di SAML auth handler deve utilizzare la casella di controllo della codifica

Controlla se il Certificato SAML è nel formato corretto:

  • Recupera la firma dalla risposta SAML e correggi il certificato, ovvero dopo la 65a riga, premi enter e così via.
  • Questo può essere utilizzato nell’installazione in AEM TrustStore, per abbinare i dettagli del certificato con l’IDP.

Codifica:

  • Innanzitutto completa la configurazione SAML senza codifica. Quando questa procedura è stata completata, abilita la codifica. In questo modo è facile eseguire il debug del problema

Dispatcher:

  • Assicurati che la richiesta di login a SAML sia consentita nella sezione filtri; in caso contrario, aggiorna la sezione /filtri per consentire le richieste POST a */saml_login.

    /0100 { /type "allow" /method "POST" /url "*/saml_login" }
  • Verifica la modifica dell’intestazione Mod (mod_header) a livello del web server su httpd.conf.it, che dovrebbe essere nel formato di seguito
    <<<<<<<< Intestazione modifica sempre Imposta-Cookie (.*) "$1; HTTPOnly; Secure" >>>>>

Asserzione non valida:

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
  • Il problema potrebbe risiedere nel certificato conservato nel TrueStore. La soluzione, in questo caso, potrebbe essere quella di cancellare e ricaricare il nuovo idp_cert e controllare il caso d’uso.
  • Se non stai codificando la risposta SAML, puoi ignorare l’errore “Chiave privata di SP non fornita: impossibile firmare la richiesta Authn”.

Impossibile recuperare la chiave privata:

[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.
  • Questo errore significa che l’IDP ha codificato l’asserzione e non c’è una chiave privata per decriptare la risposta. Se desideri codificare la risposta, devi caricare una chiave privata valida nel registro chiavi di AEM.

Informazioni da fornire quando si apre un ticket di supporto relativo a SAML:

  • Richiesta SAML
  • Risposta SAML 
  • Configurazione SAML
  • Registri di DEBUG per SAML (com.adobe.granite.auth.saml)
  • Error.log
  • File HAR[1] per estrarre la richiesta/risposta SAML

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

Logo Adobe

Accedi al tuo account