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 exactement ce que je viens de réaliser. C’est vraiment regrettable. ![]()
En fait, l’incompatibilité du plugin implique que :
- il fonctionnera sur le premier site d’un multisite (ou sur 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’y a pas de sujet dédié dans Customization > Plugin pour discourse-saml, je suggère d’en créer un et d’y mentionner cette limite. Je suis convaincu qu’on peut y faire un peu de tri parmi les plus de 50 sujets mentionnant SAML. Si j’avais su cela avant, j’aurais configuré mes services différemment.
(Au fait, l’erreur CSP d’origine 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 un multisite
Voici une solution rapide pour ceux qui ont activé le plugin SAML sur un multisite. ![]()
- Allez dans Admin > Thèmes et cliquez sur « installer un nouveau ».
- Créez un nouveau composant (nommé « Masquer le bouton SAML »).
- Ajoutez le CSS suivant :
#login-buttons .btn.btn-social.saml { display: none; /* plugin incompatible avec multisite */ } - Appliquez ce composant à tous les thèmes.
Le bouton SAML (qui ne fonctionne pas sur cette instance) restera ainsi masqué.
Ce sujet a été automatiquement fermé après 3 jours. De nouvelles réponses ne sont plus autorisées.