Sur une instance Discourse nouvellement configurée, SAML échoue en raison de la politique de sécurité du contenu par défaut qui refuse le script soumis par le formulaire…
Nous hébergeons de nombreux clients qui utilisent avec succès le plugin SAML avec CSP. Pouvez-vous partager l’erreur que vous voyez dans la console du navigateur ?
Tous nos hébergements utilisent des CDN, donc je suppose que la règle CSP ne fonctionne pas pour les personnes sans CDN ![]()
Oui, désolé, je comptais le faire, mais je n’arrive pas à reproduire le message d’erreur, même si l’erreur persiste.
Maintenant, je ne reçois plus que des erreurs de « contenu mixte » sur les icônes favicon et apple. Les images ont été téléchargées avant que l’option force_https ne soit activée, mais je pense que ce paramètre devrait gérer la source de toutes les icônes… S’agit-il d’un bug ?
J’essaie de reproduire l’erreur initiale que j’ai rencontrée, mais sans succès jusqu’à présent. L’erreur affichée à l’écran est : « Désolé, une erreur s’est produite lors de l’autorisation de votre compte. Veuillez réessayer. » Je pense qu’il s’agit d’un ticket invalide, bien que toutes les configurations correspondent à une instance fonctionnelle existante, tant côté Discourse que côté Keycloak. Étrange.
Oui, désolé, je comptais le faire, mais je n’arrive pas à reproduire le message d’erreur — bien que l’erreur persiste.
OK, j’ai trouvé l’erreur. Je pense qu’elle provient de la configuration :
- Il s’agit d’une instance multisite avec ps.zoethical.org comme site « principal », pour lequel SAML a été configuré à l’origine.
- L’instance forum.zoonklopper.be affiche un bouton SAML, mais la portée est définie pour ps.zoethical.org.
(saml) Échec de l'authentification ! invalid_ticket : OneLogin::RubySaml::ValidationError, https://ps.zoethical.org n'est pas un public valide pour cette réponse - Publics valides : https://forum.zonnklopper.be
Si j’ajoute le public ps.zoethical.org, je reçois une autre erreur :
(saml) Échec de l'authentification ! invalid_ticket : OneLogin::RubySaml::ValidationError, La réponse a été reçue à l'adresse https://forum.zonnklopper.be/auth/saml/callback au lieu de https://ps.zoethical.org/auth/saml/callback
Le plugin SAML n’est pas compatible avec les installations multisites.
Oui, c’est ce que je viens de réaliser. C’est très regrettable. ![]()
En fait, l’incompatibilité du plugin signifie que :
- il fonctionnera uniquement sur le premier site d’une installation multisite (ou celui pour lequel il est configuré via
DISCOURSE_HOSTNAME) - le bouton apparaîtra sur l’interface de connexion de toutes les autres instances
- mais ces boutons échoueront sans solution claire.
Puisqu’il n’existe pas de sujet dédié dans #plugin pour discourse-saml, je suggère d’en créer un et de mentionner cette limite dans le premier message. Je suis presque certain qu’une consolidation peut être faite à partir des 50+ sujets mentionnant SAML. Si je l’avais su plus tôt, j’aurais configuré mes services différemment.
(Au passage, l’erreur CSP originale est très probablement due au fait que l’iframe tente de charger le site d’origine au lieu du site actuel.)
Masquer le bouton SAML sur une installation multisite
Voici une solution rapide pour les personnes ayant activé le plugin SAML sur une installation multisite. ![]()
- Allez dans Admin > Thèmes et cliquez sur « Installer un nouveau »
- Créez un nouveau composant (nommez-le : « Masquer le bouton SAML »)
- Ajoutez le CSS suivant :
#login-buttons .btn.btn-social.saml { display: none; /* plugin incompatible avec multisite */ } - Appliquez le composant à tous les thèmes.
Désormais, le bouton SAML (qui ne fonctionne pas sur cette instance) restera invisible.
Ce sujet a été automatiquement fermé après 3 jours. De nouvelles réponses ne sont plus autorisées.