Bonjour ! @david aide-moi s’il te plaît, grand homme ! ))))
J’ai configuré avec succès le bundle Discourse + Keycloak SSO + plugin SAML + plugin OpenID Connect. Il n’y a qu’une seule chose qui gâche cette beauté : la déconnexion.
Lorsque je me déconnecte du forum, l’utilisateur est déautorisé, cette partie fonctionne bien.
Puis, je regarde les sessions actives sur Keycloak : la session de l’utilisateur qui a quitté le forum n’est pas supprimée.
Je soupçonne que cela soit dû aux paramètres de l’URL de déconnexion. Je ne sais simplement pas où les modifier : dans Discourse ou dans Keycloak.
Oui ! Cela fonctionne parfaitement ! Je tiens à préciser qu’il est nécessaire de définir la variable openid_connect_rp_initiated_logout_redirect.
@david J’ai une autre question. Une question importante.
Je suis actuellement dans les phases finales de test de l’authentification unique (SSO) avec Keycloak et je dois choisir un protocole : SAML ou OpenID Connect.
J’ai préféré OpenID Connect, mais j’ai rencontré un problème gênant lors de la création de nouveaux utilisateurs avec OpenID Connect.
Pour comprendre le problème, je vais commencer par l’autre côté. Lorsqu’un nouvel utilisateur du forum est créé via SAML, l’utilisateur est créé dans le système SSO et transmis de manière transparente pour création dans Discourse. Et il est immédiatement activé — c’est important !
C’est-à-dire que lorsque je clique sur “S’inscrire” sur le forum Discourse, je suis redirigé vers Keycloak, où je crée un utilisateur, je confirme son adresse e-mail, etc. Ensuite, je suis redirigé vers le forum Discourse, où l’utilisateur a déjà été créé et ACTIVÉ automatiquement :
C’est extrêmement gênant ! À quoi cela sert-il ? Après tout, l’adresse e-mail de l’utilisateur a déjà été confirmée lors de la création du compte sur le SSO. Existe-t-il un moyen de se débarrasser de cette fenêtre ?
Si ce message s’affiche pour OpenID Connect, cela signifie que le fournisseur d’identité a transmis un message email_verified: false à Discourse. Si vous activez le mode de débogage verbeux, il affichera toutes les données d’authentification dans /logs pour que vous puissiez les examiner. Il devrait y avoir un moyen de dire à Keycloak de transmettre correctement l’état de vérification.
Tant que vous êtes absolument certain que Keycloak a vérifié les adresses e-mail, cela ne pose pas de problème. Si les adresses e-mail ne sont pas vérifiées, cela expose votre site Discourse aux attaques.
Je ne connais pas bien Keycloak, mais les deux approches me semblent bonnes. Si plus tard vous souhaitez avoir des contrôles d’accès distincts pour chaque forum, les configurer comme des clients séparés pourrait faciliter la tâche