Discours avec Keycloak pour SSO

Existe-t-il un moyen de configurer Keycloak comme fournisseur d’authentification pour Discourse ? J’ai besoin que cela fonctionne en mode SSO, de sorte que mes utilisateurs ayant un compte géré par Keycloak aient automatiquement accès à l’instance Discourse et y soient connectés.

J’ai lu des informations sur la configuration OpenID, et certaines personnes indiquent que les utilisateurs doivent se connecter séparément et créer un compte distinct dans Discourse avec cette configuration. Ce n’est pas exactement ce que je recherche.

Y a-t-il des ressources que je pourrais ou devrais consulter sur ce sujet ?

Mon intention est de déployer Discourse et Keycloak dans des conteneurs Docker distincts composés, et j’ai besoin d’une authentification transparente entre eux. Cela me permettrait de publier des messages dans Discourse via mon backend API au nom de l’utilisateur connecté dans mon application frontend JS, avec des données utilisateur gérées par Keycloak.

La solution la plus simple que j’ai mise en place pour les utilisateurs ayant Keycloak comme fournisseur IAM d’entreprise consiste à configurer Discourse avec SAML

La configuration de SAML dans Keycloak est assez simple

Sinon, vous pouvez également vous connecter via OpenID Connect

Pour permettre aux utilisateurs de se connecter automatiquement via SAML, vous devrez désactiver toutes les autres méthodes d’authentification, y compris la connexion locale. Assurez-vous que votre compte administrateur dispose déjà d’un compte correspondant dans Keycloak, sinon vous serez bloqué hors de l’administration.

1 « J'aime »

Intéressant, merci.
Désactiver tous les autres moyens de connexion n’est pas vraiment une option. Je souhaite continuer à utiliser Keycloak comme principal moyen d’authentification dans mon application, mais permettre également aux utilisateurs d’avoir un compte sur Discourse.
Cela signifierait que mes utilisateurs devraient pouvoir s’inscrire avec un identifiant/mot de passe ou via n’importe quel réseau social de leur choix, et obtenir un compte fonctionnant à la fois pour mon application et pour Discourse.
Est-ce que quelque chose comme cela est possible ?

PS. En relisant votre message, voulez-vous dire désactiver les méthodes d’authentification sur Keycloak ou dans Discourse ?

L’authentification sociale ou par nom d’utilisateur/mot de passe devrait être gérée via Keycloak. De plus, je viens de réaliser que cela ne connecte pas automatiquement les utilisateurs. Ce que cela ferait, c’est permettre aux utilisateurs de s’authentifier directement auprès de Keycloak s’ils cliquent sur le bouton de connexion.

Disons donc que je souhaite d’abord tout accéder via l’API. Serai-je toujours en mesure de le faire ?
La connexion fait partie de l’interface utilisateur de Discourse.

Imaginons qu’un nouvel utilisateur s’inscrive sur mon serveur Keycloak et que j’aie cette intégration SAML. L’utilisateur est connecté à mon application web JS et je possède son jeton. Pourrai-je d’une manière ou d’une autre appeler l’API Discourse en utilisant uniquement ce jeton ?
C’est-à-dire si je souhaite avoir une interface utilisateur personnalisée pour créer des publications depuis mon application web.

À ma connaissance, vous pouvez accéder à tous les points de terminaison de l’API en utilisant des clés API.

Vous devriez pouvoir le faire, rien ne vous en empêche.

@AAverin as-tu trouvé une solution ?

@AAverin as-tu examiné ceci