---
tags: Documentation technique
---
# Configurer un Keycloak local à des fins de développement
Configurer un server keycloak en local peut être une solution permettant d'éviter de modifier son code, d'en commenter une partie, ou de mettre ses données personnelles en dur dans l'application.
1) [Télécharger keycloak sur internet](https://downloads.jboss.org/keycloak/9.0.2/keycloak-9.0.2.zip)
2) créer un .bat permettant l'exécution du server d'authentification sur un port différent de l'application à tester avec le script suivant : `pathToKeycloak\bin\standalone.bat -Djboss.socket.binding.port-offset=100`
3) aller sur localhost:8180
4) Créer un realm,
- sur ce realm créer un client localhost -web de type "credentials" et avec "*" comme "Valid redirect URI"
- sur ce realm créer un user avec l'uid désiré, et initier un mot de passe dans l'onglet credentials
5) remplacer la configuration keycloak localhost dans l'application par celle du client (onglet installation) (il faudra lancer le server Keycloak chaque fois avant de démarrer le server tomcat)
## Ajouter des droits aux utilisateus
### Cas des inseeGroupeDefaut (externe)
1) Choisir ou créer un utilisateur dans l'onglet dédié.
2) Dans l'onglet "attribut" : créer un nouvel atribut avec pour clé "inseegroupedefaut" et comme valeur la liste des roles souhaités séparés par des "##". Par exemple `role1_application##role2_application`
3) Aller sur le client utilisé pour les tests (localhost-web), onglet "Mapper".
4) Créer un nouveau mapper
- de type "user attribute"
- nom de l'attribut : inseeGroupeDefaut
- nom du claim : inseeGroupdefaut
- Activer le bouton "multivalué"
### Cas des groupes applicatifs (interne)
1) Dans l'onglet "Role", créer le rôle souhaité
2) Choisir ou créer un utilisateur dans l'onglet dédié.
3) Dans l'onglet "Role mappings", ajouter le role précedemment créé
### Dans tous les cas pour vérifier
Le jeton généré peut être contrôlé dans l'onglet "client scope" du client, celui en haut de la page (attention il y a aussi un autre onglet "client scope" sur le panneau latéral), puis "evaluate", et en saisissant l'id de l'utilisateur à tester