Uno de los ultimos hitos cumplidos dentro Clinker es el desarrollo de la integracion de este con Redmine, proporcionando la posibilidad de gestionar los usuarios de este último de forma centralizada mediante Clinker SSO. De esta forma se delega en Clinker SSO la responsabilidad de gestionar la autenticación y autorización de usuarios en Redmine garantizando la disponibilidad de este dentro de nuestro ecosistema software. Para llevar esto a cabo, se ha desarrollado un plugin para Redmine, parcialmente basado en el recientemente liberado Redmine JOSSO Authentication Plugin.
Este nuevo plugin tiene como objetivos: (i) gestionar las peticiones de autenticación en Redmine mediante Clinker SSO de tal forma que se gestione el acceso a zonas protegidas, (ii) gestionar los datos del usuario autenticado, sincronizando las propiedades del usuario registradas en Clinker SSO con Redmine, así como permitiendo crear de forma automatica usuarios en Redmine cuando no existan en la base de datos de este pero si en la de Clinker SSO, y por último, (iii) la autorizacion de estos usuarios estableciendo un mapeo entre los roles establecidos para los usuarios en Clinker SSO y su correspondencia en Redmine.
Este plugin, además, deberá ser capaz de recuperar un identificador de sesión de Clinker SSO generado en otra aplicación del ecosistema para autenticar y autorizar al usuario directamente en el momento que acceda a Redmine.
El desarrollo ha consistido en definir un nuevo agente de Clinker SSO para Redmine de tal forma que podamos establecer conexion con la WS API definida para este, y el rediseño del controlador de Redmine que gestiona las peticiones de autenticación de usuarios, AccountController. En el siguiente diagrama ilustra el diseño simplificado de la solución:
Toda petición de acceso a Redmine nos redirige al formulario de login de Clinker SSO y en caso de autenticación correcta, se lleva a cabo en el controlador la gestión de permisos del usuario autenticado y la autorización del mismo a los recursos en Redmine sobre los que puede tener acceso en base a un determinado rol y para los proyectos en los que este sea miembro.Podeis acceder al post original aqui.
Compárteme en:
0 comentarios:
Publicar un comentario