Hola a todos,
Estaba intentando actualizar automáticamente las asignaciones de grupo si cambian en el lado del IDP. Desafortunadamente, solo funciona si el usuario cierra sesión y vuelve a iniciarla, ya que las aserciones solo se transmiten durante un inicio de sesión, según lo que entendí.
Objetivo:
Lo que me gustaría lograr es que Discourse (o el plugin discourse-saml) considere la opción “Duración de la aserción” y reevalúe las aserciones según sea necesario/configurado por el IDP.
Configuración:
Mi configuración es la siguiente y está funcionando hasta ahora.
Estoy usando Keycloak como IDP, que está conectado a LDAP, de donde extrae las asignaciones de grupo.
Discourse se está ejecutando con la siguiente configuración
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
Ya intentado
Ya he intentado cambiar los grupos y cerrar sesión y volver a iniciarla. Eso funciona manualmente con el resultado deseado.
Sin embargo, activar la opción “Duración de la aserción” en Keycloak (ver abajo) no parece cambiar la asignación de grupo del usuario después de que el grupo se haya agregado/eliminado para el usuario en Keycloak/LDAP.
Lo he repetido un par de veces y he esperado media hora cada vez que cambié la asignación de grupo en el usuario.
La única vez que se aplicó el nuevo cambio de grupo fue cuando el usuario realmente cerró sesión y volvió a iniciarla.
Conjetura:
Supongo que el plugin discourse-saml (GitHub - discourse/discourse-saml: Support for SAML in Discourse) no vuelve a verificar la aserción después de que el usuario inicia sesión.
¿Sería posible implementar esa función para el plugin SAML?
Muchas gracias
Bao Le
