Utiliser Assertion Lifespan pour mettre à jour régulièrement les groupes SAML

Salut tout le monde,

J’essayais de mettre à jour automatiquement les affectations de groupe si elles changent du côté de l’IDP. Malheureusement, cela ne fonctionne que si l’utilisateur se déconnecte et se reconnecte, car les assertions ne sont transmises que lors d’une connexion, d’après ce que j’ai compris.

Objectif :
Ce que j’aimerais réaliser, c’est que Discourse (ou le plugin discourse-saml) prenne en compte l’option « Durée de vie de l’assertion » et réévalue les assertions selon les besoins/la configuration de l’IDP.

Configuration :
Ma configuration est la suivante et fonctionne pour le moment.
J’utilise Keycloak comme IDP, qui est connecté à LDAP d’où il extrait les affectations de groupe.
Discourse fonctionne avec les paramètres suivants :

  DISCOURSE_SAML_TARGET_URL: https://auth.example.com/realms/example/protocol/saml
  DISCOURSE_SAML_SYNC_GROUPS: true
  DISCOURSE_SAML_GROUPS_FULLSYNC: true
  DISCOURSE_SAML_GROUPS_LDAP_LEAFCN: true

Déjà essayé :
J’ai déjà essayé de modifier les groupes et de déconnecter/reconnecter l’utilisateur. Cela fonctionne manuellement avec le résultat souhaité.
Cependant, activer l’option « Durée de vie de l’assertion » dans Keycloak (voir ci-dessous) ne semble pas modifier l’affectation de groupe de l’utilisateur après que le groupe ait été ajouté/supprimé pour l’utilisateur dans Keycloak/LDAP.
Je l’ai répété plusieurs fois et j’ai attendu une demi-heure chaque fois que j’ai modifié l’affectation de groupe de l’utilisateur.

La seule fois où le nouveau changement de groupe a été appliqué, c’est lorsque l’utilisateur s’est effectivement déconnecté et reconnecté.

Conjecture :
Je suppose que le plugin discourse-saml (GitHub - discourse/discourse-saml: Support for SAML in Discourse) ne revérifie pas l’assertion après la connexion de l’utilisateur.

Serait-il possible d’implémenter cette fonctionnalité pour le plugin SAML ?

Merci beaucoup
Bao Le