La page de connexion SSO ne s'affiche pas

J’ai suivi le fil SSO officiel mais je n’arrive pas à faire apparaître la page de connexion universelle.

Lorsque j’ai simplement activé OAuth, cela a fonctionné. Je me suis connecté sans problème en utilisant le bouton « avec Auth0 ». Lorsque j’ai activé SSO, la redirection vers la page Auth0 s’est faite, mais elle m’affiche une page d’erreur indiquant « invalid_request : Paramètre invalide : client_id doit être une chaîne de caractères ». Ma première pensée est que j’ai saisi le mauvais « sso_url ». Je n’ai vraiment aucune idée de ce qui devrait s’y trouver, alors j’ai mis « https://.auth0.com/authorize ».

Quelqu’un a-t-il rencontré un problème similaire ? Ou auriez-vous des idées ?

L’attribut sso url doit être défini sur l’URL que vous avez configurée sur le site de votre fournisseur d’authentification unique (SSO) pour gérer la requête SSO de Discourse.

L’implémentation de SSO par Discourse n’utilise pas OAuth. Il est possible que cela soit la source de la confusion.

Quel langage ou framework utilise le site de votre fournisseur SSO ? Il est possible qu’une implémentation de SSO existe déjà pour celui-ci et que vous puissiez l’utiliser.

Mon fournisseur SSO est Auth0.com. J’ai suivi ce sujet pour configurer OAuth2, puis j’ai essayé d’ajouter le SSO.

Peut-être dois-je approfondir le côté Auth0, car j’ai seulement configuré une application et un domaine (locataire) ; je n’ai rien vu concernant le SSO.

C’est logique. Auth0 et le SSO de Discourse sont deux systèmes complètement distincts. Vous ne pouvez pas les activer tous les deux sur votre site. Il semble que tout ce que vous avez à faire est de vous assurer qu’Auth0 est correctement configuré sur votre site.

En tant que nouvel utilisateur de la configuration de Discourse, je partage votre confusion quant à la méconnaissance de la fonctionnalité SSO. Il existe un sujet à ce sujet, mais il n’a toujours pas vraiment bien expliqué sa différence, d’autant plus que certains paramètres SSO sont destinés à utiliser Discourse en tant que fournisseur SSO (un peu comme vous souhaitez utiliser Auth0).

Pour utiliser un fournisseur d’identité externe pour la fonctionnalité SSO, vous avez besoin d’un service intermédiaire, tel que discourse-sso-oidc-bridge. Je l’ai fait fonctionner aujourd’hui avec Keycloak au lieu d’Auth0, cela devrait être à peu près identique.

Si vous souhaitez simplement utiliser Auth0 comme les connexions sociales telles que Google/Facebook/Github, alors ce que vous voulez probablement utiliser, c’est le plugin discourse-openid-connect. Vous devrez l’installer et utiliser les paramètres qu’il fournit. Je l’ai essayé avec Keycloak avant la fonctionnalité SSO distincte. Il n’a pas besoin du pont intermédiaire et pourrait vous donner ce que vous voulez (à condition que vous ne souhaitiez pas que les détails de Discourse soient mis à jour/synchronisés lorsqu’un utilisateur se connecte à nouveau, ce qui est le seul moment où Discourse synchronise les détails du compte).

Les utilisateurs seront invités à créer un compte, mais tous les champs du formulaire seront remplis à partir de votre fournisseur d’authentification. Une mise à jour future du plugin vise à sauter cette étape et à créer directement le compte (à condition que ce soit la seule option de connexion), comme le fait la fonctionnalité SSO existante.