From dca7e88633b72c456959780af6fbc7a135e2b3f3 Mon Sep 17 00:00:00 2001 From: Tom David--Broglio Date: Tue, 26 Dec 2023 12:14:27 +0100 Subject: [PATCH] kecloak : config bdd et tls, glossaire: ajout infos jdbc --- Glossaire.md | 2 ++ HowtoKeycloak.md | 54 ++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/Glossaire.md b/Glossaire.md index 8be2babe..3b6d8413 100644 --- a/Glossaire.md +++ b/Glossaire.md @@ -156,6 +156,8 @@ Toutes les pages à propos de [VPN](/_search?patterns=VPN) ## ODBC/JDBC +Java Database Connectivity est une API utilisée dans Java pour communiquer avec des bases de données. Il faut spécifier une URL jdbc pour se connecter à une base. + ## OSPF ## PDF diff --git a/HowtoKeycloak.md b/HowtoKeycloak.md index 2e1a0d37..ebe9cba5 100644 --- a/HowtoKeycloak.md +++ b/HowtoKeycloak.md @@ -35,7 +35,7 @@ Récupérer et extraire le zip de la release souhaitée $ keycloak_folder=${keycloak_zip%".zip"} ``` -On peut alors lancer Keycloak en mode *dev* pour tester ou développer des theme keycloak en configurant son admin: +On peut alors lancer Keycloak en mode *dev* pour tester ou développer des thèmes keycloak en configurant son admin: * *Au lancement du serveur* @@ -55,13 +55,21 @@ Pour Lancer en production, il va falloir plus de configuration... voir [configur ## Configuration pour de la production -On peut specifier la configation via des envs, arguments, fichier de configuration ou KeyStore java -Ici simplifier on configurera via son fichier de configuration dans `$keycloak_folder/conf/keycloak.conf` -On supposera que nous nous trouvons dans le dossier d'installation Keycloack +Configuration d'une instance/server en prodution... + +On peut spécifier de la configuration via des envs, arguments, fichier de configuration et KeyStore java. Celle-ci sera prise en comte dans cette ordre precedence (des env pourrons surcharger la conf en dur par exemple) + +On peut voir la configuration qui sera chargé en jouant `$keycloak_folder/bin/kc.sh show-config` + +Ici pour simplifier, on configurera via l'instance via son fichier de configuration dans `$keycloak_folder/conf/keycloak.conf` + +>*Remarque* : la configuration par envs et arguments est persisté par Quarkus + +La documentation complète de la configuration d'une instance en production : ### Base de données -Keycloak en production à besoin d'un accès à une base de donné +Keycloak en production a besoin d'un accès à une base de donnée lien : [documentation keycloak configuration bdd](https://www.keycloak.org/server/db) @@ -71,19 +79,47 @@ Il faut créer une base de donnée (par défaut le schéma `keycloak`) et utilis * [HowtoMySQL](/HowtoMySQL.md#créer-une-base-de-données-et-un-utilisateur-associé) -* Configuration par via fichier configuration +#### Configuration via fichier configuration `keycloak.conf` -> TODO +```{.ini} +# The database vendor. +db=postgres +# The username of the database user. +db-username=keycloak +# The password of the database user. +db-password=CHANGEZMOI +# The hostname of the default JDBC URL of the chosen vendor. +db-url-host=127.0.0.1 +``` -* Ou démarrer le serveur Keycloak en définissant les options de configuration +On peut spécifier en plus si besoin `db-url-port` pour le port ou même `db-url` pour spécifier entièrement l'URL [jdbc](/Glossaire.md#odbcjdbc) + +#### Configuration via arguments au démarrage ```{.bash} bin/kc.sh start --db mariadb --db-url-host mymariadb --db-username evocloak --db-password change_me ``` +#### TLS + + + + +Pour s'assurer de la securité sur une instance de production, on ne doit jamais exposer celle-ci en HTTP. Nous allons configurer celle-ci en HTTPS/TLS + +Pour allons avoir besoin d'un certificat et de sa clef privé... voir [HowtoSSL](/HowtoSSL.md#générer-un-certificat-auto-signé) + +```{.ini} +# The file path to a server certificate or certificate chain in PEM format. +https-certificate-file=/root/keycloak_certificat.crt + +# The file path to a private key in PEM format. +https-certificate-key-file=/root/keycloak_private.key +``` + ### Haute disponibilité -keycloak est conçu pour fonctionner en haute disponibilitée avec [infinispan](https://infinispan.org/) (In-Memory Distributed Data Store) +keycloak est conçu pour fonctionner en haute disponibilité avec [infinispan](https://infinispan.org/) (In-Memory Distributed Data Store) TODO https://www.keycloak.org/server/configuration-production -> https://www.keycloak.org/server/caching