Page d'atterrissage sur la connexion SAML

Sur les versions précédentes, une page d’accueil était affichée sur laquelle le bouton « Se connecter » apparaissait. Cliquer sur ce bouton affichait la page de connexion SAML.

Personnellement, j’appréciais beaucoup ce comportement. Avec la version actuelle 2.4.2, cela n’est plus possible car la page de connexion SAML s’affiche immédiatement.

Est-ce configurable ?

Je ne suis pas sûr de comprendre : vous voulez dire que nous avons affiché une fenêtre modale avec un seul bouton « Se connecter avec SAML » ?

Non.
Dans une version précédente (je crois que c’était la 2.3.6), c’était comme ceci :

Après avoir cliqué sur « Se connecter », la fenêtre de connexion SAML s’affichait.

Si j’active les « connexions locales », la page d’accueil avec le bouton de connexion réapparaît, mais je ne veux pas de connexion locale et je dois donc la désactiver.

Quelqu’un peut-il m’aider ? Peut-être @eviltrout ?

Je n’ai certainement pas modifié cela intentionnellement. Si vous pouviez nous aider à identifier quand cela a changé, cela nous serait utile pour examiner le contexte.

Il est possible que cela ait été modifié pour des raisons de sécurité.

C’était une amélioration très demandée pour faire en sorte qu’Omniauth se comporte comme un véritable SSO lorsque le nombre de méthodes de connexion Omniauth n’est qu’un seul.

Comment puis-je vous aider ?

Un indice : si vous activez la « connexion locale », la « page d’accueil avec le bouton de connexion » s’affiche.

Si vous souhaitez vraiment la page de confirmation, vous pouvez rediriger l’utilisateur vers /login (plutôt que la page d’accueil). Cela ne déclenchera pas la connexion automatiquement.

Cependant, notez que cela n’est pas vraiment pris en charge ; il s’agit simplement d’une particularité de l’implémentation et cela pourrait changer à tout moment.

Le nouveau comportement est meilleur et cohérent avec la connexion SSO. Si un message est nécessaire avant la connexion, il peut être implémenté dans le fournisseur d’identité.

Ah, c’est bon à savoir.
Je connais deux raisons :

  • afficher une page d’accueil très attrayante avec quelques informations de base au lieu de cette fenêtre de connexion « ennuyeuse »
  • la « sécurité » (je sais, ce n’est pas vraiment un obstacle majeur). Les scripts de piratage bon marché sur l’URL principale (sans la page d’accueil) échoueraient, j’espère, car il faut d’abord cliquer sur le bouton de connexion.

Est-il possible de configurer ce comportement ?

Vous devrez engager un développeur ici pour créer un plugin afin de modifier cela. Pour l’instant, c’est la première plainte que j’entends concernant le nouveau système depuis des mois.

Je suis un développeur :slight_smile: (voir mes modifications dans discourse_saml)

Accepteriez-vous une PR qui ajoute une option de configuration (par défaut : nouveau comportement) ?

La redirection automatique ne devrait introduire aucune vulnérabilité de sécurité. Si vous connaissez une faille d’exploitation, veuillez nous en informer via notre programme de divulgation : discourse/docs/SECURITY.md at main · discourse/discourse · GitHub

Je ne pense pas que nous voulions ajouter plus de bruit aux paramètres tant que nous n’aurons pas plus d’utilisateurs demandant ce changement.

Vous pouvez remplacer cela dans un plugin en modifiant cette méthode :

Donc, je pense que vous voudrez simplifier la fonction jusqu’à :

def redirect_to_login
  dont_cache_page
  cookies[:destination_url] = destination_url
  redirect_to path("/login")
end

Merci. C’est très apprécié !
BTW : Vous faites du très bon travail avec Discourse.