maj et amelioration doc keycloak

This commit is contained in:
Tom David--Broglio 2023-12-22 12:13:37 +01:00
parent 7f5c71e2db
commit 2b19114299

View file

@ -4,28 +4,30 @@
title: HowtoKeycloak
...
[Keycloak](https://www.keycloak.org/) est un serveur d'authentification et d'autorisation écrit en Java, c'est un "Identity Access Manager" *IAM* open-source permettant de faire du Single-Sign-On et Single-Sign-Out *SS0*, c'est à dire d'utiliser un seul compte pour se (dé-)connecter à différents services.
[Keycloak](https://www.keycloak.org/) est un serveur d'authentification et d'autorisation écrit en Java, c'est un "Identity Access Manager" *IAM* open-source permettant de faire du Single-Sign-On et Single-Sign-Out *SS0*, c'est à dire d'utiliser un seul compte pour se connecter à différents services.
## Installation
liens : [documentation officielle](https://www.keycloak.org/getting-started/getting-started-zip), [git de keycloak](https://github.com/keycloak/keycloak/releases)
Installer Keycloak en dur avec OpenJDK
Installer Keycloak sur son hote avec OpenJDK (openjdk-17 pour Keycloak 23)
```{.bash}
# apt install openjdk-11-jre
# apt install openjdk-17-jre
```
Lister les releases
```{.bash}
$ git ls-remote --tags https://github.com/keycloak/keycloak
...
99774b3f7a776476e7f04e472e13e3915971a6fb refs/tags/21.1.2
```
Récupérer et extraire le zip de la release souhaité
Récupérer et extraire le zip de la release souhaitée
```{.bash}
$ keycloak_release=21.1.1
$ keycloak_release=23.0.3
$ keycloak_zip=keycloak-${keycloak_release}.zip
$ wget https://github.com/keycloak/keycloak/releases/download/${keycloak_release}/keycloak-${keycloak_release}.zip
$ unzip $keycloak_zip
@ -33,14 +35,9 @@ Récupérer et extraire le zip de la release souhaité
$ keycloak_folder=${keycloak_zip%".zip"}
```
## Configuration
On peut alors lancer Keycloak en mode *dev* pour tester ou développer des theme keycloak en configurant son admin:
> Note : on peut lancer keycloak en mode *dev* sans aucune configuration pour tester voir [administration](#administration)
On supposera que nous nous trouvons dans le dossier d'installation Keycloack
### Créer un administrateur
*Ou au lancement du serveur*
* *Au lancement du serveur*
```{.bash}
export KEYCLOAK_ADMIN=<username>
@ -48,40 +45,37 @@ On supposera que nous nous trouvons dans le dossier d'installation Keycloack
bin/kc.sh start-dev
```
*En mode "click"*
* *Ou en mode "click"*
Se connecter à http://localhost:8080/ et créer un username et password admin
Se connecter à http://localhost:8080/admin avec les identifiant admin
### Base de donnée
Pour Lancer en production, il va falloir plus de configuration... voir [configuration](#configuration)
Keycloak en production à besoin d'un accés à une base de donné
## 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
### Base de données
Keycloak en production à besoin d'un accès à une base de donné
lien : [documentation keycloak configuration bdd](https://www.keycloak.org/server/db)
> Note : par défaut le schéma sera `keyclaok` est utilisé
**Mariadb**
Il faut créer une base de donnée (par défaut le schéma `keycloak`) et utilisateur associé pour Keycloak
pour l'installation et la configuration de Mariadb voir [/HowtoMySQL]()
* [HowtoPostgreSQL](/HowtoPostgreSQL.md#créer-un-utilisateur-et-une-base-de-données)
Il faut créer une base de donnée et utilisateur associé pour Keycloak
* [HowtoMySQL](/HowtoMySQL.md#créer-une-base-de-données-et-un-utilisateur-associé)
```{.bash}
db_name=keycloak
user=evocloak
# mysqladmin create $db_name
# mysql
mysql> GRANT ALL PRIVILEGES ON $db_name.* TO '$user'@'%' IDENTIFIED BY '$password';
```
* Configuration par via fichier configuration
(Recommandé) Configuration par via fichier configuration
> TODO
Modifier le fichier `conf/keycloak.conf`
TODO montrer modif faire etc
Ou démarrer le serveur Keycloak en définissant les options de configuration
* Ou démarrer le serveur Keycloak en définissant les options de configuration
```{.bash}
bin/kc.sh start --db mariadb --db-url-host mymariadb --db-username evocloak --db-password change_me
@ -118,8 +112,6 @@ Voir les option de démarrage / aide
bin/kc.sh start-dev --http-port ${keycloak_http_port}
```
### TODO Build et lancer en mode prod
### Gestion des royaumes "realm"
Un royaume est un ensemble isolé d'utilisateurs et d'applications géré par un administrateur