La intención detrás de su creación es proteger cualquier tipo de aplicación sin necesidad de implementar un sistema de autentificaron propio con todas las implicaciones de este (Seguridad, bases de datos, etc).
Entre sus principales ventajas encontramos que se trata de una herramienta completa que permite a las empresas y desarrolladores centrarse en la programación de funcionalidades propias de la aplicación no teniendo que preocuparse por crear un sistema robusto de autentificaron de usuarios puesto que Keycloak se encarga de cubrir esta necesidad incluso de sobra, pues también soporta la integración de autentificaron de dos factores (OTP), por otro lado, también es posible unificar todos los métodos de autentificaron de una aplicación, generando de esta forma un inicio de sesión único (SSO) general para todas las funcionalidades de esta.
La API de Keycloak
Keycloak también cuenta con una REST-API (Keycloak API), la cual permite a los desarrolladores de la aplicación realizar peticiones con el fin de gestionar distintos parámetros de la aplicación, como lo pueden ser: El manejo de clientes, reinos, grupos, roles, etc. La gestión, creación y eliminación de usuarios, obtención de tokens de acceso para la aplicación, detección de ataques, entre otros.
Si bien esta API nos permite interactúar con Keycloak como se haría normalmente desde la interfaz gráfica, es verdad que su diseño presenta varias redundancias, por ejemplo, es algo normal pensar que, cuando se ejecuta la acción de crear un usuario, su contraseña venga implícita en esta misma, situación que no sucede en la API, y tenga que ser necesaria una segunda llamada para establecer una nueva contraseña, por otro lado, a la hora de modificar los roles y atributos de un usuario, es necesario hacer una llamada a la API para los roles y otra para los atributos a pesar que en la documentación de Keycloak para ambos endpoints se menciona que se debe de pasar un JSON de tipo usuario, y que en el tipo “usuario” vienen los campos de atributos y roles.
Keycloak-Typescript
Keycloak-typescript es una librería de código abierto desarrollada con el fin de simplificar la interacción entre proyectos de Node.js con la API de Keycloak, enfocándose principalmente en crear una “fachada” que esconda todas las pequeñas acciones (Llamadas a la API) que son necesarias para llevar acabo una acción mas compleja bajo un solo método.
Keycloak-Typescript
Keycloak-Typescript nace de la necesidad de evitar escribir demasiado código para las multiples llamadas a la API que en ocasiones eran necesarias para el desarrollo de proyectos de Krasamo, su objetivo principal es facilitar la integración de proyectos de Node JS con la API de Keycloak proporcionando una “fachada” que cubre toda la lógica detrás de acciones como crear un usuario, modificarlo, modificar roles de un reino, etc. en métodos unificados.
Las ventajas de utilizar este paquete radican su facilidad de integración con proyectos de Node JS al no requerir de pasos complicados para su instalación mas que un simple comando que la descarga desde NPM, en sus métodos objetivos y unificados para una sencilla gestión de usuarios.
Contribuciones y Extensibilidad
Otra de las ventajas de Keycloak-Typescript, es que se trata de una herramienta de código libre bajo la licencia MIT, a la cual tu puedes contribuir y adaptar a tus necesidades con tus ideas, reportes de errores/bugs, creación de documentación, etc. Mediante su repositorio: https://github.com/krasamo/keycloak-typescript, utilizando Typescript y todas las ventajas que este trae consigo (Como el tapado estático).