10 Desarrollo de un sistema de inicio de sesión único (SSO) para el Instituto Nacional de Ciencias Forenses de Guatemala
10.1 Resumen
Una herramienta de software busca dar trazabilidad y optimizar la ejecución de tareas diarias enfocados a un grupo objetivo. Con la extensa cantidad de actividades en las organizaciones, también se da el desarrollo de diferentes aplicaciones de software, y en consecuencia, los diferentes perfiles de usuario para garantizar qué tareas puede desarrollar bajo el mismo software. La administración de usuarios tiende a convertirse compleja cuando cada aplicación singulariza el esquema de seguridad para los diferentes usuarios y perfiles de usuario (rol). Un sistema de inicio de sesión único busca facilitar la administración y perfiles de usuario bajo la centralización de las mismas; por tanto, las aplicaciones de software harán uso del sistema de inicio de sesión único para brindar el acceso a las mismas, eliminando con ello la redundancia de los diferentes esquemas de seguridad y mejorando la administración de accesos a sus diferentes aplicaciones.
10.2 Abstract
A software tool seeks to provide traceability and optimize the execution of daily tasks focused on a target group. With the diversity of activities in organizations, there is also the development of different software applications and, consequently, different user profiles to guarantee which tasks can be developed under the software. User management tends to become complex when each application singularizes the security scheme for different users and user profile (rol). A single sign-on system (SSO) seeks to facilitate the administration and user profiles by centralizing them, therefor the software applications will use the single sign-on system to provide access, eliminating redundancy of the different security schemes and improving the administration of access to the different software applications.
10.3 Palabras clave:
Single Sign Con, SSO, gestión, credenciales, administración, usuarios, identidad, Keycloak
10.4 Introducción
El Instituto Nacional de Ciencias Forenses de Guatemala surge debido a la necesidad de contar con un ente auxiliar al sector justicia, capaz de unificar los servicios forenses periciales y garantizar la imparcialidad y confiabilidad de la investigación técnico-científica. Desde su creación y perspectiva tecnológica, se han realizado esfuerzos para contribuir con el propósito institucional, donde se incluye equipar con equipo de cómputo a las diferentes dependencias del INACIF, crear una infraestructura de red institucional y automatizar diferentes procesos mediante la implementación de una serie de herramientas de software que son de propósito específico. En esta última línea de acción, la Sección de Desarrollo de Software es la dependencia encargada de crear, mantener y adquirir las herramientas de software necesarias para que el Instituto pueda agilizar sus procesos en la elaboración de tareas diarias.
A partir de su creación en el 2007, se inició con el desarrollo de las diferentes aplicaciones de software con las correspondientes medidas de seguridad. para que solamente usuarios registrados tuvieran acceso a las diferentes funcionalidades de acuerdo con un perfil. En aquel momento no se consideró centralizar las credenciales de acceso de los diferentes usuarios; esto conllevó a que cada aplicación tuviera un esquema de seguridad propio, derivado de los problemas administrativos que representa.
Fue en el año 2019 donde se comenzaron a investigar diferentes opciones para facilitar la administración de usuarios; como resultado se desarrolló un prototipo, el cual demostró que existía viabilidad para su implementación. En el 2021 se perfiló el desarrollo del proyecto denominado Sistema de inicio de sesión único (SSO) para el Instituto Nacional de Ciencias Forenses de Guatemala, el cual fue desarrollado por estudiantes de pregrado en atención a su Ejercicio Profesional Supervisado (EPS) de graduación de la Escuela de Ciencias y Sistemas, Facultad de Ingeniería, Universidad de San Carlos de Guatemala. Bajo el desarrollo de este proyecto se buscó configurar una solución tipo SSO (Single Sign On) para las aplicaciones de los departamentos técnico científico y administrativo financiero del INACIF. Dada la envergadura del proyecto y la estructura organizacional interna, el proyecto fue desarrollado por los estudiantes de fin de carrera Andrea Nicté Vicente Campos y Javier Alexander Chacón Samol, supervisados y asesorados de manera interna por el Ingeniero Irvin Roberto García Flores y mi persona.
10.5 Artículo
Todas las aplicaciones de software buscan un fin común, optimizar la ejecución de tareas diarias enfocadas hacia un grupo objetivo. De acuerdo con Douglas da Silva, el uso de las herramientas de software en la organización seleccionadas de manera correcta pueden mejorar la gestión del tiempo en un 38 %. F Fácilmente se pueden encontrar diversas aplicaciones de software en el mercado para los diferentes dispositivos tecnológicos que se utilizan de manera cotidiana (computadoras de escritorio, teléfonos inteligentes, entre otros). El Instituto Nacional de Ciencias Forenses de Guatemala -INACIF- no es la excepción; para mejorar la productividad de sus colaboradores por medio de la sección de desarrollo de software de la Unidad de Informática se ha buscado desarrollar la plataforma tecnológica que permita agilizar procesos con el objetivo común de dar trazabilidad a las tareas que se realizan en las diferentes dependencias del Instituto.
El Instituto Nacional de Ciencias Forenses de Guatemala -INACIF- fue creado con el Decreto 32-2006 del Congreso de la República de Guatemala publicado en el Diario de Centroamérica el dieciocho de septiembre de dos mil seis, como resultado de la necesidad de contar con medios de prueba válidos y fehacientes en los procesos judiciales. Cuenta con la cooperación de expertos y peritos en ciencias forenses que aplican los avances tecnológicos, metodológicos y científicos de la medicina legal y criminalística, como elementos esenciales en la investigación criminal y de cualquier otra naturaleza. INACIF inicia sus funciones el 19 de julio de 2007; “nace como institución auxiliar de la administración de justicia, con autonomía funcional, personalidad jurídica, patrimonio propio y con toda la responsabilidad en materia de peritajes técnico-científicos”. En su estructura organizacional está dividida en dos departamentos: el Departamento Técnico Científico (DTC) el cual ejecuta las tareas sustantivas del Instituto y el Departamento Administrativo Financiero (DAF) que ejecuta las tareas de apoyo hacia las diferentes dependencias del DTC.
Desde su creación, INACIF ha utilizado las diferentes aplicaciones de software en los correspondientes esquemas de trabajo para manejar la seguridad de estas; con el fin de que, exclusivamente los usuarios registrados tuvieran acceso a las diferentes funcionalidades, de acuerdo con un rol o perfil de usuario. De manera sencilla un rol de usuario corresponde al conjunto de permisos o privilegios que puede tener uno o varios usuarios. Nethunt.com lo define como: “una plantilla de permisos que tiene un usuario”. En este punto, cada aplicación desarrollada a lo interno no consideró unificar un único criterio para la administración de usuarios, lo cual derivó en varios problemas que a continuación se citan:
Un usuario podría ser nombrado de manera particular para cada aplicación, por ejemplo, el usuario en la aplicación “A” puede ser nombrado como: user1 y en la aplicación “B” como user01. Al no existir un estándar y por tener una administración no centralizada (individual para cada aplicación), el creador de la cuenta de usuario difícilmente podría identificar este problema.
La contraseña de un usuario muy probablemente será diferente para cada aplicación. Al igual que el problema anterior, los usuarios deberán recordar diferentes nombres de acceso y contraseñas para cada una de ellas. Esto genera un error común en varias organizaciones al tener pegados post-it en el área de su computador, exponiendo la seguridad en cuanto al uso indebido y no autorizado de aplicaciones de software por parte de terceros. De acuerdo con un estudio realizado por CyberArk de nada sirve utilizar los mejores métodos de cifrado, si al final se almacena la contraseña maestra de administrador que da acceso a todas en un Word, Excel o cualquier archivo de texto sin cifrar, e incluso lo que es peor, hay quien las deja en un post-it pegado a un monitor.
Desde la perspectiva administrativa y de creación de aplicaciones de software, se debe considerar un esquema de seguridad individual para garantizar el acceso exclusivo a los diferentes recursos bajo un rol de usuario. Fue en el 2019 donde se inició a investigar diferentes opciones para facilitar la administración de usuarios y mitigar la brecha de seguridad que pudiera existir al exponer las credenciales de seguridad por parte de los usuarios; como resultado se desarrolló un prototipo que demostró la existencia de viabilidad para su implementación. Así es como en el 2021 se perfiló el desarrollo del proyecto denominado “Sistema de inicio de sesión único (SSO) para el Instituto Nacional de Ciencias Forenses de Guatemala”.
Objetivos del proyecto
General
Desarrollar un único canal que permita validar y brindar acceso a usuarios de los diferentes sistemas de información del Instituto Nacional de Ciencias Forenses de Guatemala.
Específicos
- Realizar una investigación documental que describa los problemas relacionados con la falta de una herramienta que permita brindar acceso a los sistemas de información del INACIF.
- Definir una arquitectura de software robusta y escalable, sobre la cual se dará solución a los problemas identificados.
- Describir el alcance de la solución, especificar los requerimientos funcionales que se van a implementar como parte del desarrollo del sistema de información.
- Analizar el rol de los usuarios involucrados, y relacionarlos con las funciones que deben realizar en el sistema de información.
Dada la envergadura del proyecto y a la estructura organizacional interna, el proyecto fue desarrollado por los estudiantes de fin de carrera de la Escuela de Ciencias y Sistemas, Facultad de Ingeniería de la Universidad de San Carlos de Guatemala, Andrea Nicté Vicente Campos y Javier Alexander Chacón Samol. Como parte de los requerimientos funcionales solicitados se incluyó el modificar parte de las aplicaciones existentes hacia un modelo de Single Sign On.
Un sistema de inicio de sesión único (Single Sign On) admite centralizar la administración de usuarios bajo un único modelo de registro, el cual permite añadir nombres de usuario, credenciales, roles en un conjunto de aplicaciones de software. La siguiente figura ejemplifica la estructura general de este tipo de software.

Figura 10.1: Fuente: Manageengine. Recuperado de: https://acortar.link/G58L0t. Consultado el 21 de abril de 2022.
De acuerdo con Teravainen (2022), Single Sign On (SSO) es un servicio para el manejo de sesiones y autenticación de usuarios que permite, bajo una única credencial, por ejemplo: usuario y contraseña, acceder a múltiples aplicaciones; SSO puede ser utilizada por todo tipo de organizaciones (pequeñas, medianas, grandes e inclusive individuales) para la fácil administración, y con ello evitar el uso de múltiples usuarios y contraseñas para un mismo usuario.
Detalles generales de la implementación
El proyecto buscó centralizar la autenticación de las aplicaciones de software, seleccionadas bajo un único sistema de autenticación, estandarizando además la integración del servicio para la implementación de futuros proyectos a desarrollarse de manera interna. Se inició con una investigación documental respecto de soluciones SSO tomando como punto de partida el software Keycloak, el cual fue utilizado para desarrollar un primer prototipo años atrás. Se realizó la identificación y priorización de las aplicaciones web existentes que serían parte del proceso de integración. Para el proyecto se consideró integrar aplicaciones desarrolladas con tecnología Java Web y .net (Aspx). Finalmente, se identificaron y establecieron los elementos necesarios para crear una arquitectura robusta buscando escalabilidad y resiliencia. Con estos puntos alcanzados se procedió a realizar las configuraciones necesarias para integrar las aplicaciones existentes con el software SSO seleccionado. Enel siguiente cuadro se describen los elementos seleccionados para la implementación del proyecto.
Herramienta de software | Breve descripción |
---|---|
Keycloak | Es un software de código abierto que permite el inicio de sesión único con IAM (Identity Management y Access Management) para aplicaciones y servicios modernos, bajo licencia de Apache; por lo que no requiere costos adicionales de licenciamiento. Posterior a la investigación se definió como la herramienta que se utiliza para crear la relación de confianza entre usuarios y aplicaciones de software. |
Docker | Se utiliza para la contenerización de aplicaciones de código abierto; permite empaquetar todo lo necesario para que una aplicación de software pueda ser desplegada. Se buscó alojar Keycloak como una aplicación contenida dentro de Docker. |
Docker Compose | Componente de docker que permite definir y ejecutar aplicaciones Docker en varios contenedores. Se buscó que el software Keycloak fuera escalable y resiliente; por medio de este componente fue posible alcanzar el objetivo. |
Active Directory | Es un servicio de directorio de Microsoft que se utiliza para registrar los diferentes recursos de una red, incluyendo credenciales de usuario. El área de operaciones de la Unidad de Informática de INACIF cuenta con el licenciamiento necesario para administrar los usuarios de red por medio de un directorio activo; esto permitió garantizar el tener un único usuario y contraseña para acceder a la red y además a las aplicaciones de software. |
Apache | Servidor de aplicaciones de código abierto, el cual es popular para el despliegue de sitios web en la www. Se utilizó para crear el directorio de aplicaciones de software. |
Tabla 1. Herramientas seleccionadas para la implementación de la solución SSO para INACIF
Un aspecto importante es que las aplicaciones de software consideradas para el proyecto contenían una estructura de seguridad propia, por lo que fue necesario identificar un atributo en el esquema de registro de un usuario con el cual se pudiera vincular con el directorio activo; se tuvo colaboración del equipo de Operaciones de la Unidad de Informática para añadir la metadata necesaria dentro del Directorio Activo, en caso de que no se contara con estos datos.
Otro punto importante para las aplicaciones involucradas en el proyecto fue que no se consideró el manejo de roles mediante Keycloak; esto porque conllevaría mayor tiempo de desarrollo para la adecuación dentro de ellas, y aunque se pudo haber realizado no hubiera dado tiempo para concluir con los dos proyectos de EPS. Para las aplicaciones que puedan desarrollarse en un futuro, se hará uso de esta consideración para mejorar la administración de roles de usuario.
Como un último detalle se solicitó la creación de un directorio para acceder a las aplicaciones de software considerada, utilizando SSO. Un aspecto importante es que para el cierre de sesión se solicitó crear la funcionalidad desde este portal para que el manejo interno de sesión de las aplicaciones no afectara al cierre de sesión por medio de Keycloak. La figura siguiente muestra el directorio de aplicaciones desarrollado bajo el modelo SSO.

Figura 10.2: Fuente: Directorio de aplicaciones bajo SSO
10.6 Conclusiones
Se implementó el software Keycloak como solución de sistema único de inicio de sesión para realizar los procesos de identificación y acceso a usuarios para las aplicaciones de software desarrolladas por INACIF.
La implementación desarrollada hace uso de un directorio activo para la centralización y utilización de una única credencial de acceso (usuario y contraseña); de ser positiva al momento de hacer la autenticación, también es posible trasladar metadatos registrados del usuario. Keycloak hace uso del protocolo OAuth2.0 para este propósito, proveyendo a la aplicación un token con la información correspondiente siguiendo el estándar JWT.
En el presente proyecto fueron integradas cuatro aplicaciones desarrolladas internamente con tecnología Java Web y cuatro con tecnología .net (aspx); como un adicional, las aplicaciones .net cuentan con su antiguo mecanismo de inicio de sesión, en caso fuera necesario hacer uso de este.
10.7 Referencias
- [1] García, A. (2022). Guardar contraseñas en Word o en papel, un error del que pocos escapan. Recuperado de https://www.adslzone.net/2016/09/26/guardar-contrasenas-word-papel. Último acceso: 20 de marzo de 2023.
- [2] NELHUNT (2022). Qué es un rol de usuario. Recuperado de https://help.nethunt.com/es /articles/2647890-que-es-un-rol-de-usuario. Último acceso: 20 de marzo de 2023.
- [3] Teravainen, Taina (2022). Single Sign-on (SSO). Techtarget. Recuperado de https://www.techtarget.com/searchsecurity/definition/single-sign-on. Último acceso: 20 de marzo de 2023.