Créer des comptes Discourse via SSO sans visiter l'URL du forum ?

Oui, notre plugin WordPress propose une option qui fait quelque chose de similaire. Voici comment cela fonctionne : lorsqu’un utilisateur crée un compte WordPress ou se connecte au site WordPress, une requête est envoyée vers la route Discourse /admin/users/sync_sso. Si l’utilisateur n’existe pas encore sur Discourse, cela crée un compte utilisateur sur Discourse. Si l’utilisateur existe déjà, cette requête peut être utilisée pour mettre à jour les informations de l’utilisateur qui ont changé du côté du fournisseur SSO. Par exemple, elle permet de mettre à jour le nom, le nom d’utilisateur ou l’adresse e-mail de l’utilisateur. Elle peut également servir à ajouter ou retirer l’utilisateur de groupes Discourse.

Pour un aperçu général de la route sync_sso, consultez Sync DiscourseConnect user data with the sync_sso route. Si vos développeurs souhaitent voir un exemple fonctionnel écrit en PHP, examinez ce fichier de notre plugin WordPress : wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. La fonction principale à étudier dans ce fichier est sync_sso.

Les seuls inconvénients que je connaisse sont qu’cela ajoute une certaine complexité au code SSO. Avec la manière dont c’est implémenté dans le plugin WordPress, cela ajoute également un appel API vers Discourse à chaque fois qu’un utilisateur se connecte sur le site du fournisseur SSO. Cela est dû au fait que c’est accroché à l’événement de connexion WordPress. Je ne connais aucun site où cet appel API a causé des problèmes de limite de débit, mais il serait possible de n’effectuer cet appel que lors de la création d’un nouveau compte si cela posait problème.

L’avantage de cette approche est qu’elle permet de mettre à jour les informations de vos utilisateurs sans qu’ils aient besoin de se connecter à Discourse via SSO. Par exemple, cela vous permettrait d’ajouter des utilisateurs à un groupe Discourse lorsqu’ils effectuent une action sur votre site web.

Une autre approche pour intégrer un site web à Discourse via SSO consiste à utiliser des liens de connexion SSO sur votre site. Cela vous permet d’afficher votre forum Discourse sur votre site web, ce qui connecte les utilisateurs à Discourse et les redirige vers une page spécifique. Ce sujet contient des détails sur la configuration : Créer un lien de connexion SSO.