Ajout d'utilisateurs de manière programmatique lors de l'utilisation de SSO

Nous avons configuré notre copie interne de Discourse de manière à ce que l’authentification unique (SSO) soit obligatoire, et elle est connectée à notre serveur LDAP. Cela signifie que tout membre du personnel peut facilement se connecter en utilisant son nom d’utilisateur et son mot de passe communs… mais leur compte n’est créé qu’au moment de leur première connexion.

Il y a une discussion interne sur la tentative de renforcer les interactions sociales entre le personnel, mais beaucoup de membres du personnel sont réticents à faire autre chose que d’utiliser l’e-mail.

Je cherche donc à résoudre ce défi en utilisant Discourse. J’ai déjà résolu l’aspect réel de l’e-mail (c’est-à-dire configurer Discourse pour que les catégories aient leur propre adresse e-mail entrante), mais je vois deux défis que je ne sais pas comment résoudre :

  1. Idéalement, je voudrais que tout le monde ait un compte sur Discourse avant de se connecter à Discourse. La raison de vouloir cela est que, s’ils envoient un e-mail à Discourse sans avoir d’abord un compte, Discourse dispose des informations complètes de l’utilisateur plutôt que de les traiter comme anonymes.

  2. Je voudrais que tout le monde puisse recevoir des e-mails résumés de Discourse afin qu’ils soient informés de la création de fils de discussion (même s’ils ne visitent jamais Discourse)… mais cela nécessite également que le compte existe.

Avez-vous des suggestions sur ce que je peux faire ? Existe-t-il un moyen de créer des comptes dans Discourse de manière programmatique afin qu’ils soient liés au SSO lorsque les personnes se connectent ?

Merci.

1 « J'aime »

You can do it via the API. Here’s an example: GitHub - pfaffman/discourse-user-creator: Create an activated user, optionally assigning to group

3 « J'aime »

Thanks … one issue I can think of is that I have to supply a password when creating the user. Presumably, if SSO is being enforced, Discourse actually ignores the password I’ve provided? (Testing would prove that, I guess!)

1 « J'aime »

Yeah. Since you’re using SSO the password won’t matter, or can be omitted. Testing would be the way to prove it! If you’d like help and have a budget, my contact info is in my profile.

You can create users with the sync_sso route. There is some PHP code in this post that gives an example of how to do it: If someone changes their email in WordPress, change it in Discourse - sso_sync. In that code, it’s being used to update a user’s email, but the same idea will work to create a new user.

5 « J'aime »