Problème de SSO et de déconnexion Keycloak

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.

Mes paramètres SAML sur Keycloak :

Mes paramètres OpenID Connect sur Keycloak :

Le plugin OpenID Connect prend en charge la déconnexion initiée par le RP. Est-ce pris en charge par Keybase ?

Il ne reste plus qu’à comprendre ce que c’est et si cela existe dans Keycloak ))))
Où cette option est-elle configurée dans le plugin openid-connect ?

C’est configuré dans les paramètres du site :

Merci ! Je vais essayer de chercher sur Google ce que Keycloak a à dire à ce sujet.

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 :

Mais si j’utilise le plugin OpenID Connect, lors de la création d’un nouvel utilisateur, la fenêtre suivante apparaît :

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 ?

Merci beaucoup par avance !

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.

Pourquoi alors le plugin SAML l’ignore-t-il ?

Dans le plugin SAML, cela est contrôlé par le paramètre global saml_default_emails_valid (par défaut true).

J’ai trouvé la solution ! ))))
Dans Keycloak :

Désactivez ces options :

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.

Oui, c’est correct…
Maintenant, test d’un nouveau cas : deux forums avec un seul client OpenID Keycloak ))

Au fait, @david, à ton avis, quelle option est la plus correcte :

  1. Utiliser un seul client OpenID pour tous les forums et spécifier les URLs de redirection valides requises, comme je l’ai fait maintenant :

  2. Ou utiliser un client OpenID propre à chaque forum ?

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 :man_shrugging: