Soportar cierre de sesión OIDC por canal inverso

Una de las cosas que me gustaría ver realmente soportadas por el plugin central de OIDC es OpenID Connect Back-Channel Logout. La introducción del cierre de sesión en canal inverso permitiría al proveedor de identidad invalidar remotamente una sesión, permitiendo que el Single-Sign-Out funcione correctamente (un usuario puede cerrar sesión desde otro servicio, ya sea ese servicio el propio IdP o un servicio conectado al IdP mediante el cierre de sesión iniciado por RP, y cuando lo haga, también se cerrará su sesión en Discourse). Esto también permite que una función central de “cerrar sesión en todas las sesiones” en el IdP funcione correctamente.

Estoy dispuesto a investigar la implementación de esto por mi cuenta, pero debido a la necesidad de almacenar el ID de sesión que proporciona el IdP para poder vincular más tarde la solicitud de cierre de sesión del IdP con la sesión correcta en Discourse, es posible que necesite algo de ayuda dado que soy un colaborador primerizo, jeje. Intentaré hacerlo pronto cuando tenga un poco más de tiempo, y escribiré si me encuentro con problemas.

1 me gusta

Esto es sin duda una brecha de producto.

Si quieres que alguien con más experiencia lo revise y puedes gestionar el presupuesto, considera Marketplace

Lamentablemente no tengo presupuesto, así que intentaré escribir yo mismo un parche como mejor pueda. Tengo bastante experiencia en desarrollo de software (de hecho, el foro que administro es para un software que yo estoy desarrollando, jaja), solo que nunca antes he trabajado con la base de código de Discourse y parece un poco intimidante, jaja. Creo que tengo una idea bastante clara de lo que necesito hacer, solo tengo que aprender cómo se estructuran los plugins de Discourse (parece que hay documentación bastante decente al respecto y no me imagino que sea muy difícil de entender, simplemente aún no he tenido tiempo de investigarlo).