Come risolvere i problemi relativi a SAML in AEM

Descrizione

Ambiente
Experience Manager

Problema/Sintomi
Come posso risolvere i problemi relativi a SAML (Security Assertion Markup Language) con Adobe Experience Manager (AEM)? Quali informazioni sarebbero necessarie per la risoluzione dei problemi?

Risoluzione

Problema del ciclo infinito:

  • Controlla se ds:signature fa parte dell'asserzione SAML In caso contrario, deve essere fatto all'estremità dell'IDP e seleziona la casella di controllo per l'asserzione firmata
  • Verifica il formato nameId nella risposta SAML. Il formato deve corrispondere esattamente al formato nameId Policy configurato in SAML Config
  • Verifica la presenza di SAML AudienceRestriction nella risposta SAML. Il valore di questo tag deve corrispondere esattamente all'ID entità nella configurazione SAML
  • Controlla saml2:Conditions (NotBefore & NotOnOrAfter), Server non è sincronizzato con ntp server.Use ntpd e forzalo per sincronizzare l'ora di sistema (ntpdate -s pool.ntp.org). Per il test, cambia la tolleranza dell'orologio a -1, ignorando la differenza dell'orologio.
  • Controlla se l’idp non ha un’asserzione firmata. Chiedi al team idp che la risposta sia firmata e che l’asserzione debba essere firmata secondo le specifiche saml.
  • Controlla se l'output del tracciatore SAML è crittografato se l'asserzione da IDP è crittografata. Se sì, Config di SAML auth handler deve utilizzare la casella di controllo della crittografia

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 per l'installazione in AEM TrustStore e per abbinare i dettagli del certificato con l'IDP.

Crittografia:

  • Innanzitutto completa sempre la configurazione SAML senza crittografia. Al termine, abilita la crittografia. In questo modo è 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

  • Verifica la modifica dell'intestazione Mod (mod_header) a livello di server web in httpd.conf.It dovrebbe essere nel formato seguente

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

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 causato dal certificato archiviato nel truststore. La soluzione potrebbe essere quella di eliminare e ricaricare il nuovo idp_cert e controllare il caso d'uso.
  • Se non stai eseguendo la cifratura della risposta SAML, puoi ignorare "Chiave privata di SP non fornita: Impossibile firmare l'errore Authn request".

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 non esiste una chiave privata per decrittografare la risposta. Se desideri crittografare la risposta, devi caricare una chiave privata valida nell'archivio chiavi AEM.

Informazioni da fornire quando si apre 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 HAR1 per estrarre la richiesta/risposta SAML

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

In questa pagina