Diferencia entre revisiones de «Keycloak»
Ir a la navegación
Ir a la búsqueda
(Página creada con «== Instalación Keycloak en Docker == Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/keycloak dhi.io/keycloak] en Docker. == 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) == Entorno de DEV == Como entorno de DEV se…») |
Sin resumen de edición |
||
| (No se muestran 7 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
== Instalación Keycloak en Docker == | == Instalación Keycloak en Docker == | ||
Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/keycloak dhi.io/keycloak] en Docker. | Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/keycloak dhi.io/keycloak] en Docker. | ||
Vamos a usar una imagen "Docker Hardened Image" (imágenes seguras, mínimas y listas para producción). | |||
== Requisitos == | == Requisitos == | ||
| Línea 9: | Línea 10: | ||
** Módulo: Docker Compose (para PRO) | ** Módulo: Docker Compose (para PRO) | ||
* Nginx (ver [[LEMP]]) | * Nginx (ver [[LEMP]]) | ||
* Cuenta en Docker Hub | |||
** Necesario para acceder a Docker Hardened Image. | |||
== Entorno de DEV == | == Entorno de DEV == | ||
Como entorno de DEV se va a usar Docker Desktop. | Como entorno de DEV se va a usar Docker Desktop. | ||
=== Login en catálogo DHI === | |||
<syntaxhighlight lang="Bash">docker login dhi.io</syntaxhighlight> | |||
=== Descargar imagen === | === Descargar imagen === | ||
Vamos a usar la imagen que es la latest a día de hoy (26.5.6). | |||
<syntaxhighlight lang="Bash">docker pull dhi.io/keycloak:26.5</syntaxhighlight> | |||
=== 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" | |||
<syntaxhighlight lang="Bash">docker volume create keycloak-certs</syntaxhighlight> | |||
* Copiar certificados en el "ldap-ssl": | |||
<syntaxhighlight lang="Bash"> | |||
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 | |||
</syntaxhighlight> | |||
=== Ejecutar contenedor en Docker Desktop (DEV) === | === Ejecutar contenedor en Docker Desktop (DEV) === | ||
<syntaxhighlight lang="Bash"> | <syntaxhighlight lang="Bash"> | ||
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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Pruebas === | === Pruebas === | ||
Accedemos con un navegador web [https://localhost:8443/ https://localhost:8443/]. | |||
[[Archivo:Keycloak-DEV-Accesos.png|border|900px|none]] | |||
== Entorno de PRO == | == Entorno de PRO == | ||
Revisión actual - 22:17 22 mar 2026
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