7. Keycloak
Note
idP - Proveedor de identidad
1dnf update
2dnf upgrade
3dnf install epel-release wget tar
4dnf install java-latest-openjdk
5cd /opt
6wget https://github.com/keycloak/keycloak/releases/download/23.0.4/keycloak-23.0.4.tar.gz
Directorio de trabajo /opt y /opt/keycloak
Buscar la última versión de Keycloak en la web y descargarla con el comando anterior. Descomprimir el comrpimido en el directorio de trabajo.
tar xvfz keycloak-23.0.4.tar.gz
mv /opt/keycloak-23.0.4 /opt/keycloak
Para comprobar que estamos en marcha, se lanza la aplicación en mode dev
/opt/keycloak/bin/kc.sh start-dev --http-relative-path=/auth --proxy edge
Acceso desde el navegador con la uri <IP>:8080/auth
Para acceder con el proxy reverse de nginx se usa la configuración
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
location /auth {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://172.20.1.3:8080/auth;
add_header Content-Security-Policy "frame-src *; frame-ancestors *; object-src *;";
add_header Access-Control-Allow-Origin 'http://localhost:8080';
add_header Access-Control-Allow-Credentials true;
}
Ahora se puede acceder desde el nginx (desde fuera) con la uri <IP>/auth
Para poner el servidor en mode producction hace falta seguir estos pasos. Se crea una base de datos MySQL y se crea un usuario específico
create database keycloak;
grant all on keycloak.* to keycloak@'%' identified by 'blanca#11';
flush privileges;
Se instala el driver para mysql en el servidor keycloak.
dnf install unixODBC mariadb-connector-odbc
Se añade la configución al fichero /opt/keycloak/conf/keycloak.conf
# Database
db=mariadb
db-username=keycloak
db-password=blanca#11
db-url=jdbc:mariadb://192.168.4.10/keycloak
Para iniciar el servicio automáticamente al iniciar el servidor se crea el fichero /etc/systemd/system/keycloak.service
[Unit]
Description=Keycloak service
After=syslog.target network.target
[Service]
ExecStart=/opt/keycloak/bin/kc.sh start --http-relative-path=/auth --proxy edge --hostname-strict=false
User=keycloak
Group=keycloak
LimitNOFILE=65536
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
Se refresca todo y se habilita el nuevo servicios
systemctl daemon-reload
systemctl enable keycloak
systemctl start keycloak