Instrucciones de uso

Introducción

Keycloak es una solución de gestión de identidad y acceso de código abierto diseñada para aplicaciones y servicios modernos. Ofrece características como inicio de sesión único (SSO), intermediación de identidad, inicio de sesión social, federación de usuarios, control de acceso basado en roles (RBAC), autenticación multifactor (MFA) y soporte para protocolos estándar como OpenID Connect, OAuth 2.0 y SAML 2.0. Keycloak es desarrollado por la comunidad de WildFly y fue aceptado en la Cloud Native Computing Foundation (CNCF) como un proyecto en incubación en abril de 2023.

Keycloak se distribuye bajo la Licencia Apache, versión 2.0, una licencia de código abierto permisiva que permite un uso amplio, incluyendo aplicaciones comerciales, y fomenta la colaboración y la innovación.

Primeros pasos

  1. Lance el producto via 1-Click
  2. Use un navegador para acceder a la consola de Administración en https://[ec2-ip]:8443, donde [ec2-ip] es la ip pública facilitada por Amazon para tu instancia
  3. Acceda utilizando las siguientes credenciales:
    • Usuario: admin
    • Contraseña: el campo instance_id de la instancia

También puede acceder a su instancia EC2 via SSH, usando el usuario correspondiente y su clave privada de Amazon.

El usuario depende del sistema operativo:

  • Amazon Linux: 'ec2-user'
  • Ubuntu: 'ubuntu'
  • Rocky Linux: 'rocky'
  • AlmaLinux: 'ec2-user'
  • CentOS Stream: 'ec2-user'

Detalles de la instalación

Keycloak instalado con la distribución de WildFly.

En versiones anteriores a la 19.0.1, instalamos Keycloak embebido dentro del servidor de aplicaciones WildFly.

Los ficheros de configuración se encuentran dentro del WildFly embebido, es decir en el directorio $KEYCLOAK_HOME dónde KEYCLOAK_HOME es /opt/java/keycloak.

Para obtener mayor detalle sobre la instalación, puede acceder a la guía de instalación y configuración del servidor.

Keycloak instalado con la distribución de Quarkus.

A partir de la versión 19.0.1, instalamos Keycloak con Quarkus ya que la distribución con WildFly está deprecada.

El fichero de configuración se encuentra en el directorio $KEYCLOAK_HOME/conf/keycloak.conf dónde $KEYCLOAK_HOME es /opt/java/keycloak.

Para obtener mayor detalle sobre la instalación, puede acceder a la guía de instalación y configuración del servidor.

Configuración de TLS en Keycloak

Por defecto, hemos creado un certificado autofirmado utilizando Java Keystore por lo que éste no está validado por ninguna autoridad (por defecto, el servidor Keycloak busca el fichero $KEYCLOAK_HOME/conf/server.keystore).

Si desea obtener un certificado válido, deberá solicitar uno a una autoridad certificadora y realizar los cambios pertinentes en Keycloak.

Modos de persistencia de los datos

Keycloak viene con su propia base de datos relacional integrada basada en Java, llamada H2. Normalmente es la recomendada entornos de desarrollo y pruebas, para entornos de producción se recomienda trabajar con bases de datos relacionales mejores.

También ofrecemos este producto con MySQL o PostgreSQL.

Configuración del servicio

El servicio está configurado con systemd.

El servicio de Keycloak está en /etc/systemd/system/keycloak.service, el cual indica si se arranca Keycloak en modo desarrollo o producción:

  • Si ha elegido Keycloak con H2, el servicio se arrancará en modo desarrollo: ExecStart=/opt/java/keycloak/bin/kc.sh start-dev
  • Si ha elegido Keycloak con MySQL o PostgreSQL, el servicio se arranca para modo de producción: ExecStart=/opt/java/keycloak/bin/kc.sh start

Ver estado del servico:

$ sudo systemctl status keycloak

Parar el servicio:

$ sudo systemctl stop keycloak

Lanzar el servicio:

$ sudo systemctl start keycloak

MySQL

Keycloak está configurado con la base de datos MySQL.

Ver el estado del servicio:

$ sudo systemctl status mysqld

Parar el servicio:

$ sudo systemctl stop mysqld

Lanzar el servicio:

$ sudo systemctl start mysqld

Acceder a la consola de MySQL desde su terminal:

$ sudo mysql

PostgreSQL

Keycloak está configurado con la base de datos PostgreSQL.

Ver el estado del servicio:

$ sudo systemctl status postgresql

Parar el servicio:

$ sudo systemctl stop postgresql

Lanzar el servicio:

$ sudo systemctl start postgresql

Acceder a la consola de MySQL desde su terminal:

$ sudo -u postgres psql

Otros datos útiles

Ubicación de información sensible

Toda la información se guarda en la base de datos.

En MySQL la carpeta de datos es /var/lib/mysql.

En PostgreSQL la carpeta de datos es /var/lib/pgsql/data.

Configuración de cifrado

No hay datos cifrados.

Cambiar las credenciales del sistema

Para cambiar las credenciales de Kecycloak tienes que ir al menú de la derecha, usuarios, credenciales y pulsar el botón reset.

Instrucciones sobre cómo el usuario interactúa con Keycloak para descifrar los datos necesarios

Puede utilizar la consola de administración de Keycloak para ver todos los datos necesarios.

Cómo evaluar y monitorear el estado y el funcionamiento adecuado de la aplicación.

  1. Navegue hasta su consola Amazon EC2 y verifique que se encuentre en la región correcta.
  2. Elija Instancia y seleccione su instancia lanzada.
  3. Seleccione el servidor para mostrar su página de metadatos y elija la pestaña Verificaciones de estado en la parte inferior de la página para revisar si sus verificaciones de estado pasaron o fallaron.

Listado de AMIs provisionadas por Neodoo

Keycloak con H2 Keycloak con MySQL Keycloak con PostgreSQL
Ubuntu Linux 22.04 LTS View View View
Ubuntu Linux 24.04 LTS View View View

Recursos adicionales