Risoluzione dei problemi relativi a SAML nell’AEM

L'articolo spiega come risolvere i problemi SAML (Security Assertion Markup Language) con AEM. Affronta il problema del ciclo infinito, il problema di asserzione non valida, tra gli altri, e le misure per risolverli.

Descrizione description

Ambiente

Experience Manager

Problema/Sintomi

Come possiamo risolvere i problemi relativi a SAML (Security Assertion Markup Language) con Adobe Experience Manager (AEM)?

Risoluzione resolution

Problema ciclo infinito:

  • Controllare se ds:signature fa parte dell'asserzione SAML > In caso contrario, eseguire questa operazione alla fine dell'IDP e selezionare la casella di controllo per l'asserzione firmata
  • Controlla il formato nameId nella risposta SAML. Il formato deve corrispondere esattamente al formato dei criteri nameId configurato in Configurazione SAML.
  • Verifica la presenza di SAML AudienceRestriction nella risposta SAML; il valore di questo tag deve corrispondere esattamente all’ID entità nella configurazione SAML
  • Verifica condizioni saml2: (NotBefore & NotOnOrAfter), il server non è sincronizzato con il server ntp. Utilizza ntpd e forzalo per sincronizzare l’ora sys (ntpdate -s pool.ntp.org). Per il test, impostare la tolleranza dell'orologio su -1 per ignorare la differenza dell'orologio.
  • Verifica se l’IDP non dispone di asserzione firmata. Chiedi al team idp che la risposta sia firmata e che l’asserzione debba essere firmata in base alle specifiche saml.
  • Controllare se l'output del tracciatore SAML è crittografato se l'asserzione da IDP. In caso affermativo, la casella di controllo Crittografia deve essere utilizzata nella configurazione del gestore di autenticazione SAML

Verificare che il formato del certificato SAML sia corretto:

  • Recupera la firma dalla risposta SAML e correggi il certificato, ovvero, dopo la 65a riga, premi Invio e così via.
  • Questa può essere utilizzata per eseguire l’installazione nel truststore dell’AEM e far corrispondere i dettagli del certificato con IDP.

Crittografia:

  • Innanzitutto, completa sempre la configurazione SAML senza crittografia. Al termine, abilita la crittografia. Utilizzando questo metodo, è facile eseguire il debug del problema

Dispatcher:

  • Assicurati che la richiesta di accesso SAML sia consentita nella sezione dei filtri.In caso contrario, aggiorna la sezione /filter per consentire le richieste POST a */saml_login.

    /0100 { /type "allow" /method "POST" /url "*/saml_login" }

  • Verifica la presenza di modifiche nell’intestazione Mod (mod_header) a livello di server web in httpd.conf.Dovrebbe essere nel formato seguente

    < < < < < < L'intestazione modifica sempre Set-Cookie (.*) "$1; HTTPOnly; Protetto" > > > > >

Asserzione non valida:

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
  • Il problema potrebbe essere relativo al certificato archiviato nel file TrustStore. Potrebbe essere necessario eliminare e ricaricare il nuovo idp_cert e verificare il caso d’uso.
  • Se non stai crittografando la risposta SAML, puoi ignorare l’errore "Chiave privata dell’SP non fornita: impossibile firmare la richiesta di authoring".

Impossibile Recuperare La Chiave Privata:

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.
  • Questo errore significa che l’IDP ha crittografato l’asserzione e che non esiste una chiave privata per decrittografare la risposta. Se desideri crittografare la risposta, devi caricare una chiave privata valida nel keystore AEM.

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

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

[ 1] Generazione di un file HAR

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f