En utilisant le plugin OAuth2 Basic Support (inclus dans le cœur de Discourse depuis la version v2025.11.0), vous pouvez configurer l’authentification Salesforce.
Pour ce faire, créez une application connectée OAuth2 sur Salesforce :
Créer → Apps → Nouvelle application connectée
Assurez-vous d’autoriser l’accès aux « informations de base »
Définissez l’« URL de rappel » sur https://VOTREFORUM.COM/auth/oauth2_basic/callback : Notez que votre forum Discourse doit être exécuté avec HTTPS.
Notez l’ID client et le secret
Côté Discourse, configurez les paramètres suivants (trouvés sous Admin → Connexion → OAuth2.0) :
oauth2 enabled : true
oauth2 client id et secret, selon la section précédente
Thanks for this post, which was invaluable in setting up a recent project, which required Salesforce login.
In our case, the Salesforce app was a Community, which meant we had to change some of the details above. I’m posting on this old thread in case it helps anyone else. It nearly broke my brain for a whole day.
However we still had problems with 403 Forbidden errors, which were plain unstyled HTML and didn’t look very much like a Discourse error to me, which led to much debugging of Salesforce and gnashing of teeth. But the problem was in Discourse.
Forbidden
You don’t have permission to access this resource.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Although the redirect to Callback URL seemed to be working, the browser console registered authentication failures. In the end it was the unsetoauth2 callback user id path which was the cause of the authentication failure. Setting it to id fixed everything.
Merci pour les directives. Nous avons réussi à nous authentifier avec succès via Salesforce, mais nous avons rencontré un problème. Nos objets/champs Salesforce ne semblent pas être transmis correctement à Discourse. En effet, juste après une connexion réussie à Salesforce sur Discourse, ce dernier semble traiter l’utilisateur comme nouveau et lui demande de saisir un nom d’utilisateur, une adresse e-mail et un nom, même si ces informations devraient provenir des champs json name, email et username de l’oauth2.
Pourrions-nous solliciter votre aide pour connaître le format json des objets/champs Salesforce utilisés dans le plugin oauth2 ? Nous avons essayé object.field, object_field et simplement field. Cela ne semble générer aucune erreur, mais rien n’est transmis de Salesforce vers Discourse via json pour reconnaître la connexion comme celle d’un utilisateur déjà existant sur Discourse.