Keycloak

De wikarphy
Version datée du 14 octobre 2024 à 22:57 par Linarphy (discussion | contributions) (Création de la page Keycloak)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Keycloak est le service disponible sur l'adresse suivante. Il gère l'authentification des utilisateurs sur tous les autres services de l'architecture.

Configuration actuelle

Le service Nginx de computing transfère les pages web du port 8127 (géré par Keycloak) vers le port 443 (https) sur le domaine wiki.linarphy.net. Les données sont gérés par Postgresql via une base de donnée ayant pour nom keycloak et pour utilisateur keycloak. Cette instance stocké dans le dossier /usr/share/keycloak/ tourne sur la version 26.0.0 avec openjdk-21.0.2 (lui-même dans /usr/share/openjdk/21/).

Installation

Prérequis

Procédure

Fichiers

La première étape consiste au téléchargement du service avec la commande curl -L https://github.com/keycloak/keycloak/releases/download/26.0.0/keycloak-26.0.0.tar.gz -o keycloak-26.0.0.tar.gz en tant qu'utilisateur root. Le lien est récupéré sur la page de téléchargement. Le fichier keycloak-26.0.0.tar.gz peut ensuite être extrait avec la commande tar -xf keycloak-26.0.0.tar.gz en tant qu'utilisateur root pour ensuite supprimer cette archive: rm keycloak-26.0.0.tar.gz.

Le dossier peut ensuite être déplacé dans son emplacement final (/usr/share/keycloak/) avec la commande mv keycloak-26.0.0 /usr/share/keycloak(toujours en tant que root).

Permissions

Le service s'exécutera avec un utilisateur particulier (et non root) pour isoler le processus. Il est donc nécessaire de créer l'utilisateur local keycloak avec la commande adduser --system --no-create-home --group keycloak en tant que root. La commande chown -R keycloak:keycloak /usr/share/keycloak/ pour donner les permissions du dossier à ce nouvel utilisateur.

Keycloak sera accessible via une connexion chiffré (https), et sa configuration nécessite l'accès à la clef privé et public utilisé pour cette connexion (comme Nginx (computing)). Pour protéger ces clefs et ne pas les rendre accessible à d'autres utilisateur que keycloak, un hook (script) sera mis en place pour être exécuté par Certbot. Il va donc être nécessaire de créer le dossier /usr/share/keycloak/certs via la commande mkdir /usr/share/keycloak/certs en tant que root (oui oui, pas keycloak pour le moment, c'est normal). Crée ensuite le fichier /usr/share/keycloak/certs/hook.sh toujours en tant que root avec l'éditeur de sont choix contenant le script: