Keycloak
Ir a la navegación
Ir a la búsqueda
Instalación Keycloak en Docker
Instalación de dhi.io/keycloak en Docker. Vamos a usar una imagen "Docker Hardened Image" (imágenes seguras, mínimas y listas para producción).
Requisitos
Para poder realizar esta configuración se necesita:
- Servidor GNU Linux (ver Securizar Ubuntu Server)
- Cortafuegos FirewallD (UFW tiene problemas con Docker)
- Docker Engine (ver Docker Engine)
- Módulo: Docker Compose (para PRO)
- Nginx (ver LEMP)
- Cuenta en Docker Hub
- Necesario para acceder a Docker Hardened Image.
Entorno de DEV
Como entorno de DEV se va a usar Docker Desktop.
Login en catálogo DHI
docker login dhi.io
Descargar imagen
Vamos a usar la imagen que es la latest a día de hoy (26.5.6).
docker pull dhi.io/keycloak:26.5
Certificados SSL
Para poder arrancar la Keycloak hace falta tener certificados SSL/TLS. Nombres:
- tls.crt: Certificado Fullchain (X.509 PEM)
- tls.key: Clave RSA (PKCS#8)
Nota: en DEV usaremos auto-firmados y en PRO de Let's Encrypt.
Crear volumen para certificados SSL
- Crear volumen "keycloak-certs"
docker volume create keycloak-certs
- Copiar certificados en el "ldap-ssl":
cd /c/Users/guzman/Desktop/temp
docker create --name temp-copia -v keycloak-certs:/data alpine
docker cp entrardev.culturetas.net-fullchain.crt temp-copia:/data/tls.crt
docker cp entrardev.culturetas.net.key temp-copia:/data/tls.key
docker cp culturetas-root-ca.crt temp-copia:/data/ca.crt
docker rm temp-copia
Ejecutar contenedor en Docker Desktop (DEV)
docker run -d --name keycloak \
--hostname entrardev.culturetas.net \
--env KC_BOOTSTRAP_ADMIN_USERNAME=admin \
--env KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
--env KC_HTTPS_CERTIFICATE_FILE=//etc/x509/https/tls.crt \
--env KC_HTTPS_CERTIFICATE_KEY_FILE=//etc/x509/https/tls.key \
--env KC_HOSTNAME=localhost \
-p 127.0.0.1:8443:8443 \
-v keycloak-certs:/etc/x509/https:ro \
-v keycloak-data:/opt/keycloak/data/ \
dhi.io/keycloak:26.5 start
Pruebas
Accedemos con un navegador web https://localhost:8443/.
Entorno de PRO
En el entorno de PRO se va a desplegar transformando la configuración de Docker Desktop en fichero YAML de Docker Composer.
Configurar Virtual Host para Keycloak
- Añadir Virtual Host:
sudo -i
vi /etc/nginx/sites-available/entrar.culturetas.net
- Crear carpeta para VirtualHost:
mkdir /var/www/entrar.culturetas.net
- Activar Virtual Host:
ln -s /etc/nginx/sites-available/entrar.culturetas.net /etc/nginx/sites-enabled/entrar.culturetas.net
systemctl reload nginx
Generar certificados Let's Encrypt
certbot --nginx
Habilitar LDAPS en FirewallD
Crear carpetas para Keycloak
mkdir -p /opt/keycloak/data
Generar fichero YAML
vi /opt/keycloak/compose.yaml
Arrancar OpenLDAP (manual)
cd /opt/keycloak
docker compose up -d
Parar OpenLDAP (manual)
cd /opt/keycloak
docker compose down
Arrancar OpenLDAP (con SystemD)
- Crear fichero SystemD
vi /etc/systemd/system/keycloak.service
- Arrancar y habilitar
systemctl daemon-reload
systemctl start keycloak
systemctl enabled keycloak