Felsöka SAML-relaterade problem i AEM

I artikeln beskrivs hur du felsöker SAML-problem (Security Assertion Markup Language) med AEM. Den åtgärdar ett oändligt loopproblem, ogiltiga bekräftelseproblem, bland annat och åtgärder för att lösa dem.

Beskrivning description

Miljö

Experience Manager

Problem/symtom

Hur kan vi felsöka SAML-relaterade problem med Adobe Experience Manager (AEM)?

Upplösning resolution

Oändligt loop-problem:

  • Kontrollera om ds:signature är en del av SAML-försäkran > Om inte, ska detta göras i IDP-slutet och markera kryssrutan för signerad försäkran
  • Kontrollera om formatet nameId finns i SAML-svaret. Formatet ska exakt matcha formatet nameId Policy som konfigurerats i SAML Config
  • Kontrollera om SAML AudienceRestriction finns i SAML-svaret. Värdet för den här taggen ska exakt matcha enhets-ID:t i SAML-konfigurationen
  • Kontrollera om det finns saml2: villkor (NotBefore & NotOnOrAfter). Servern är inte synkroniserad med ntp-servern. Använd ntpd och tvinga det att synkronisera systemtiden (ntpdate -s pool.ntp.org). Om du ändrar klocktoleransen till -1 för testet ignoreras klockskillnaden.
  • Kontrollera om idp inte har en signerad försäkran. Fråga IDP-teamet om att svaret är signerat och försäkran måste signeras enligt SAML-specifikationen.
  • Kontrollera om SAML-spårningsutdata är krypterade. Om ja, bör kryssrutan för kryptering användas i Config-hanteraren för SAML-autentisering

Kontrollera om SAML-certifikatet har rätt format:

  • Hämta signaturen från SAML-svar och korrigera certifikatet, d.v.s. efter 65:e raden, tryck på Retur och så vidare.
  • Detta kan sedan användas för att installera i AEM förvaltararkiv och matcha certifikatinformation med IDP.

Kryptering:

  • Slutför alltid SAML-konfigurationen utan kryptering. Aktivera kryptering när detta är klart. På det här sättet är det enkelt att felsöka problemet

Dispatcher:

  • Kontrollera att SAML-inloggningsbegäran tillåts i filteravsnittet.Om inte, uppdatera /filter-avsnittet så att POSTEN kan begära */saml_login.

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

  • Kontrollera om det finns ändringar i Mod header(mod_header) på webbservernivå i httpd.conf. Det ska vara i formatet under

    < < < < < < Header redigerar alltid Set-Cookie (.*) "$1; HTTPOnly; Secure" > > > > >

Ogiltig försäkran:

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
  • Det kan vara problem med certifikat som lagras i förtroendearkivet. Lösningen här kan vara att ta bort och överföra det nya idp_cert igen och kontrollera användningsfallet.
  • Om du inte krypterar SAML-svaret kan du ignorera felet "Privat nyckel för SP inte tillhandahållen: Det går inte att signera Authn-begäran".

Det går inte att hämta privat nyckel:

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.
  • Detta fel innebär att IDP har krypterat försäkran och att det inte finns någon privat nyckel för att dekryptera svaret. Om du vill kryptera svaret måste du överföra en giltig privat nyckel i AEM nyckelbehållare.

Information som ska anges när en SAML-relaterad supportbiljett öppnas:

  • SAML-begäran
  • SAML-svar
  • SAML-konfiguration
  • DEBUG-loggar för SAML (com.adobe.granite.auth.saml)
  • Error.log
  • HAR[ 1] fil att extrahera SAML-begäran/svar

[ 1] Genererar en HAR-fil

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