Romer Alvarez
← Todos los artículos

Conociendo Keycloak - Un sistema de autenticación y autorización seguro Open Source

Introducción a Keycloak - Un sistema de autenticación y autorización seguro Open Source

El desarrollo de aplicaciones a nivel empresarial es un proceso que requiere más que solo buenas prácticas de programación. La seguridad y la gestión de usuarios se han convertido en unos pilares fundamentales, se exponen datos sensibles, se realizan transacciones monetarias y se almacenan datos personales. Por lo tanto, es necesario contar con un sistema de autenticación y autorización robusto y seguro.

Existen muchos sistemas de autenticación y autorización tales como Auth0, Okta, AWS Cognito y Firebase. En este artículo nos enfocaremos en Keycloak, un sistema de autenticación y autorización Open Source desarrollado por Red Hat.

Keycloak

¿Qué es Keycloak y por qué es un apoyo para los desarrolladores?

Keycloak es una solución de código abierto para la gestión de identidades y accesos. Es una herramienta que permite a los desarrolladores agregar funciones de seguridad a sus aplicaciones con poco esfuerzo y sin tener que escribir código. Keycloak es compatible con los protocolos de autenticación y autorización más utilizados, como OpenID Connect, OAuth 2.0 y SAML 2.0. Además, Keycloak es compatible con los estándares de seguridad más recientes, como JSON Web Token (JWT) y Security Assertion Markup Language (SAML).

¿Cómo funciona Keycloak?

Es necesario para entender el valor que nos ofrece Keycloak conocer como actua Keycloak detrás de escena

Arquitectura básica:

Keycloak se compone de dos partes principales: el servidor de autenticación y el servidor de administración. El servidor de autenticación es el que se encarga de la autenticación y autorización de los usuarios. El servidor de administración es el que se encarga de la administración de los usuarios, clientes, roles, etc.

Keycloak sigue una arquitectura modular. Donde en su núcleo, actua como un servidor de autenticación y autorización. Las aplicaciones y servicios que desean autenticar a un usuario lo hacen mediante solicitudes al servidor Keycloak (que es un servidor REST) que valida al usuario y devuelve un token de acceso.

Imagen de la arquitectura de Keycloak

Conceptos clave:

Para entender como funciona Keycloak es necesario conocer los siguientes conceptos:

flow de autenticación de Keycloak

Las ventajas de usar Keycloak:

¿Qué te ahorras al no crear un sistema de autenticación propio?

Desarrollar un sistema de autenticación desde cero es un desafío considerable debido a que realmente es algo muy complicado, existe el de riesgo del desconocimiento, de que a estos servicios se dedican corporaciones enteras para garantizar la seguridad. Aquí algunos problemas que evitas con Keycloak:

Para concluir, a la hora de desarrollar aplicaciones que son puestas en producción es necesario contar con un sistema de autenticación y autorización robusto y seguro. No veo una razón para no utilizar un sistema así dado que Keycloak es Open Source y gratuito. Por otro lado, un servicio como Keycloak nos permite ahorrar tiempo y delegar la seguridad a un sistema que se dedica a eso y poder enfocarnos en el desarrollo de la lógica de negocio.

Para más información sobre Keycloak, puedes visitar su sitio web.

Y también puedes ver el siguiente ejemplo de como implementar Keycloak en una aplicación web con Spring Boot. Donde futuramente habrá un articulo explicandolo.