Sistema de autenticación basado en Keycloak, que permite que un usuario que acceda a cualquier servicio de TXS / EDUCATIC pueda cambiar de servicio sin necesidad de volver a autenticarse, facilitando la integración.
Go to file
David Vargas 816f101fcc [U] . 2022-09-20 09:27:51 +01:00
certbot Añadir units de systemd para la ejecución periódica de Certbot 2022-09-13 00:01:53 +01:00
keycloak Crear estructura para el contenedor de Keycloak (actualmente sin contenido) 2022-09-12 21:58:55 +01:00
nginx-proxy Crear estructura para el frontal TLS en contenedor NGINX 2022-09-12 21:59:37 +01:00
volumes Crear directorio para alojar volúmenes persistentes (actualmente, solo PostgreSQL) 2022-09-12 22:00:05 +01:00
.env-sample Fichero de ejemplo para la parametrización de docker-compose 2022-09-12 22:01:13 +01:00
.gitignore Crear un .gitignore inicial para excluir cualquier información sensible 2022-09-12 21:57:08 +01:00
LICENSE Corregir typo en el nombre del software Keycloak 2022-09-12 21:23:13 +01:00
README.md [U] . 2022-09-20 09:27:51 +01:00
docker-compose.yaml Fichero YAML para docker-compose que inicia Keycloak con frontal TLS en NGINX 2022-09-12 22:00:45 +01:00

README.md

TXS - Keycloak

Sistema de autenticación basado en Keycloak, que permite que un usuario que acceda a cualquier servicio de TXS / EDUCATIC pueda cambiar de servicio sin necesidad de volver a autenticarse, facilitando la integración.

Instalación y ejecución

El proyecto solamente necesita un motor de contenedores (actualmente Docker) y que se habiliten las units de systemd para que se ejecute periódicamente el servicio de renovación de certificados de Let's Encrypt.

Crear el espacio de trabajo

Copia el contenido de este repositorio sobre el directorio de instalación de tu preferencia. Los scripts están preparados para trabajar desde /opt, por lo que si escoges instalar en otra ubicación, deberás modificar los ficheros docker-compose.yaml, certbot/certbot-keycloak.service y certbot/certbot-keycloak.sh a conveniencia.

Configuración

Keycloak

El servicio de Keycloak se inicia con docker-compose.

Antes de la ejecución, rellena las variables de configuración necesarias. Hay una plantilla de ejemplo en .env-sample. Utiliza esa plantilla como base y guárdala con el nombre .env. Dentro encontrarás las variables de configuración que se utilizan en el fichero de docker-compose. Ajústalas como corresponda.

Certbot

Keycloak se ejecuta en un contenedor no accesible desde internet y sin usar cifrado, para permitir que las personas que administran el servicio puedan capturar tráfico y depurar problemas del servicio, en caso necesario.

De cara a internet, el servicio se ofrece tras un proxy NGINX, que hace de terminador TLS. El certificado que se requiere para ello se genera con Let's Encrypt y tiene que renovarse con cierta frecuencia. Se utiliza el contenedor de Certbot para gestionar las renovaciones y el sistema se apoya en un script que copia los certificados nuevos sobre el espacio de trabajo de NGINX para que se utilicen en cuanto se reciben.

En el directorio de certbot hay un subdirectorio renewal que contiene un fichero de ejemplo con la configuración que se necesita para la renovación automática. El fichero de ejemplo se llama acceso.txs.es.conf-sample y puede servir de plantilla para que configures el real, que deberá llamarse acceso.txs.es.conf

Scripts de inicio

El servicio Keycloak se inicia ejecutando:

root@server:/opt$ docker-compose up -d

Además, hay que instalar y activar las units de systemd para que el servicio de certbot se ejecute periódicamente:

root@server:/etc/systemd/system$ ln -s /opt/certbot/certbot-keycloak.service
root@server:/etc/systemd/system$ ln -s /opt/certbot/certbot-keycloak.timer
root@server:/etc/systemd/system$ systemctl daemon-reload
root@server:/etc/systemd/system$ systemctl enable certbot-keycloak.service cerbot-keycloak.timer
root@server:/etc/systemd/system$ systemctl start cerbot-keycloak.timer