使用断言寿命期定期更新SAML组

大家好,

我试图在用户身份提供商 (IDP) 端更改组分配时自动更新组分配。但不幸的是,只有当用户注销并重新登录时,它才有效,因为据我所知,断言仅在登录时传输。

目标:
我想实现的是让 Discourse(或 discourse-saml 插件)考虑“断言生命周期”选项,并在需要时/根据 IDP 的配置重新评估断言。

设置:
我的设置如下,目前运行正常。
我正在使用 Keycloak 作为 IDP,它连接到 LDAP,并从中提取组分配。
Discourse 使用以下设置运行

  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

已尝试:
我已经尝试更改组并将用户注销并重新登录。这手动操作可以达到预期的结果。
但是,在 Keycloak 中启用“断言生命周期”选项(见下文)似乎在 Keycloak/LDAP 中为用户添加/删除了组后,并未更改用户的组分配。
我重复了几次,每次更改用户组分配后都等待了半小时。

新组更改生效的唯一一次是用户实际注销并重新登录时。

推测:
我假设 discourse-saml 插件 (GitHub - discourse/discourse-saml: Support for SAML in Discourse) 在用户登录后不会重新检查断言。

是否有可能为 saml 插件实现该功能?

非常感谢
Bao Le