Résolution des problèmes liés à SAML dans AEM
Cet article explique comment résoudre les problèmes liés au langage SAML (Security Assertion Markup Language) avec AEM. Il traite du problème de boucle infinie, des problèmes d'assertion non valides, entre autres, et des mesures pour les résoudre.
Description description
Environnement
Experience Manager
Problème/Symptômes
Comment résoudre les problèmes liés au langage SAML (Security Assertion Markup Language) avec Adobe Experience Manager (AEM) ?
Résolution resolution
Problème de boucle infinie :
- Vérifiez si ds:signature fait partie de l’assertion SAML
>
Si ce n’est pas le cas, cela doit être fait du côté IDP et cochez la case pour l’assertion signée. - Recherchez le format nameId dans la réponse SAML. Le format doit correspondre exactement au format de la stratégie nameId tel que configuré dans la configuration SAML.
- Recherchez SAML AudienceRestriction dans la réponse SAML. La valeur de cette balise doit correspondre exactement à l’ID d’entité dans la configuration SAML.
- Vérifiez les conditions saml2: (NotBefore & NotOnOrAfter), le serveur n'est pas synchronisé avec le serveur ntp. Utilisez ntpd et forcez-le à synchroniser l’heure système (ntpdate -s pool.ntp.org). Pour le test, définissez la tolérance de l’horloge sur -1, ce qui ignorera la différence de l’horloge.
- Vérifiez si l’identification n’a pas d’assertion signée. Demandez à l’équipe idp que la réponse est signée et que l’assertion doit être signée selon la spécification saml.
- Vérifiez si la sortie du traceur SAML est chiffrée. Si oui, la configuration du gestionnaire d’authentification SAML doit utiliser la case à cocher de chiffrement.
Vérifiez si le certificat SAML est dans le bon format :
- Récupérez la signature à partir de la réponse SAML et corrigez le certificat, c’est-à-dire après la 65e ligne, appuyez sur Entrée, etc.
- Vous pouvez ensuite l’utiliser pour effectuer l’installation dans AEM TrustStore et faire correspondre les détails du certificat avec IDP.
Chiffrement :
- Commencez toujours par effectuer la configuration SAML sans chiffrement. Lorsque cela est fait, activez le chiffrement. Il est ainsi facile de déboguer le problème.
Dispatcher:
-
Assurez-vous que la demande de connexion SAML est autorisée dans la section des filtres. Si ce n’est pas le cas, mettez à jour la section /filter pour autoriser les demandes de POST à */saml_login.
/0100 { /type "allow" /method "POST" /url "*/saml_login" }
-
Vérifiez que le changement dans Mod header(mod_header) au niveau du serveur web dans httpd.conf. Il doit être au format inférieur.
<
<
<
<
<
<
L’en-tête modifie toujours Set-Cookie (.*) "$1; HTTPOnly; Secure">
>
>
>
>
Assertion non valide :
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
- Le problème peut être lié au certificat stocké dans le TrustStore. La solution ici pourrait être de supprimer et de charger à nouveau le nouveau idp_cert et de vérifier le cas d’utilisation.
- Si vous ne chiffrez pas la réponse SAML, vous pouvez ignorer l’erreur "Clé privée du SP non fournie : impossible de signer la requête d’auteur".
Impossible De Récupérer La Clé Privée :
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.
- Cette erreur signifie que IDP a chiffré l’assertion et qu’il n’y a pas de clé privée pour déchiffrer la réponse. Si vous souhaitez chiffrer la réponse, vous devez charger une clé privée valide dans le KeyStore AEM.
Informations à fournir lors de la levée d’un ticket de support lié à SAML :
- Requête SAML
- Réponse SAML
- Configuration SAML
- Journaux DEBUG pour SAML (com.adobe.granite.auth.saml)
- Error.log
- Fichier HAR
[
1]
pour extraire la requête/réponse SAML
[
1]
Génération d’un fichier HAR