Keycloak: una solución de gestión de acceso e identidad de código abierto
Keycloak es un producto de software de código abierto que permite el inicio de sesión único (IdP) con Identity Management y Access Management para aplicaciones y servicios modernos. Este software está escrito en Java y es compatible de forma predeterminada con los protocolos de federación de identidad SAML v2 y OpenID Connect (OIDC) / OAuth2. Está bajo licencia de Apache y es compatible con Red Hat.
Desde una perspectiva conceptual, la intención de la herramienta es facilitar la protección de aplicaciones y servicios con poca o ninguna codificación. Un IdP permite que una aplicación (a menudo llamada Service Provider o SP) delegue su autenticación.
Esto tiene, entre otras cosas, varias ventajas:
- Permite que los desarrolladores se centren en la funcionalidad empresarial al no tener que preocuparse por los aspectos de seguridad de la autenticación, ya sea integrando directamente una biblioteca compatible con uno de los dos protocolos o utilizando un módulo en el servidor web o un adaptador Keycloak (lista no exhaustiva de posibilidades)
- Poder centralizar la autenticación y por lo tanto, habilitar la autenticación de inicio de sesión único (SSO)
- Poder unificar los métodos de autenticación y haga que evolucionen sin modificar las aplicaciones.
- Reinventar la autenticación de aplicaciones SaaS y controlar así la proliferación de identidades digitales; La desactivación de las cuentas se simplifica (ya no se olvida más la eliminación de una cuenta SaaS cuando un empleado se va).
Además dentro de sus características principales, se destacan los siguientes puntos:
- inicio de sesión único
- Soporte para protocolos estándar
- Cuenta aplicaciones seguras y servicio simplificado
- LDAP compatible como repositorio de usuarios externo
- delegación de autenticación (inicio de sesión social)
- alto rendimiento: clúster de servidores, escalable, alta disponibilidad
- totalmente compatible con la contenedorización
- temas simples para implementar
- autenticación fuerte por código nativo de un solo uso (OTP) a través de FreeOTP o Google Authenticator
- auto-solución de problemas si olvida su contraseña
- auto-creación de cuentas (por forma o las llamadas autenticaciones sociales)
- extensible: base de usuarios, métodos de autenticación, protocolos.
¿Como instalar Keycloak en Linux?
Para poder instalar Keycloak ya sea en tu ordenador o en un servidor, debemos de descargar el ultimo paquete de Keycloak disponible, este lo podemos obtener desde el siguiente enlace.
Para este caso utilizaremos la versión 7.0 que es la ultima versión disponible en estos momentos.
Vamos a tener que abrir una terminal y en ella solo tenemos que teclear el siguiente comando:
wget https://downloads.jboss.org/keycloak/7.0.0/keycloak-7.0.0.tar.gz
Después de ello vamos a descomprimir el archivo con:
tar -xvzf keycloak-7.0.0.tar.gz
Hecho esto vamos a ingresar al directorio de la aplicación recién creado, para ello vamos a teclear lo siguiente:
cd keycloak-7.0.0
cd bin
Estando dentro de este directorio vamos a ejecutar el servidor de Keycloak con el siguiente comando:
./standalone.sh
Hecho esto se iniciara el servidor y ahora toca hacer uso del navegador web, para acceder al servicio de Keycloak tendremos que acceder a la siguiente dirección web http://localhost:8080/auth/ o en el caso de usar un dominio o una direccion ip (en un servidor web) tendrás que acceder a la ruta donde colocaste la carpeta de Keycloak.
Ya estando dentro de la pagina de Keycloak, aquí podremos ver que tendremos que crear la cuenta del administrador, tal y como se puede ver en la siguiente captura de pantalla.
Al crear el usuario administrador, ahora nos da la opción de entrar al panel del administrador, en caso de que no encuentres la sección basta con dirigirse al siguiente enlace, http://localhost: 8080/auth/admin/, en donde podrán iniciar sesión con las credenciales que eligieron.
A partir de aquí podrán administrar Keycloak, añadiendo nuevos usuarios así como poder instalar los adaptadores.
Finalmente para cuando ocurra el caso de que exista una nueva versión y quieren actualizar a esta sin perder sus datos o simplemente no se sienten seguros aplicando el método de actualización remplazando los archivos de la nueva versión sobre la que ya tienen.
Es importante recalcar que el servicio debe estar detenido durante este proceso.
En una terminal basta con que ejecuten el siguiente comando, para ello deben estar dentro del directorio principal de Keycloak
sh bin/jboss-cli.sh --file=bin/migrate-standalone.cli
Si quieren conocer más al respecto sobre ello pueden consultar la documentación en el siguiente enlace.