This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/CONFIGURATION_KEYCLOAK_TEST_USER.md

4.3 KiB

Configuration Keycloak - Utilisateur de Test

Ce document explique comment configurer un utilisateur de test dans Keycloak avec les rôles nécessaires pour utiliser lions-user-manager.

Prérequis

  • Keycloak accessible sur http://localhost:8180
  • Accès admin : admin / admin
  • Realm lions-user-manager créé

Étapes de Configuration

1. Créer l'utilisateur de test

  1. Connectez-vous à Keycloak Admin Console : http://localhost:8180
  2. Sélectionnez le realm lions-user-manager
  3. Allez dans UsersAdd user
  4. Remplissez les informations :
    • Username : test-user (ou le nom de votre choix)
    • Email : test@lions.dev
    • First name : Test
    • Last name : User
    • Email verified : ON
    • Enabled : ON
  5. Cliquez sur Create

2. Définir le mot de passe

  1. Dans la page de l'utilisateur, allez dans l'onglet Credentials
  2. Cliquez sur Set password
  3. Définissez un mot de passe (ex: test123)
  4. Temporary : OFF (pour éviter de changer le mot de passe à la première connexion)
  5. Cliquez sur Save
  6. Confirmez dans la popup

3. Créer les rôles Realm nécessaires

Les rôles suivants doivent exister dans le realm lions-user-manager :

Rôles requis pour les endpoints Users :

  • admin - Accès complet
  • user_manager - Gestion des utilisateurs
  • user_viewer - Consultation des utilisateurs

Rôles requis pour les endpoints Roles :

  • role_manager - Gestion des rôles
  • role_viewer - Consultation des rôles

Rôles requis pour les endpoints Audit :

  • auditor - Accès aux logs d'audit

Rôles requis pour les endpoints Sync :

  • sync_manager - Gestion de la synchronisation

Création des rôles :

  1. Allez dans Realm rolesCreate role
  2. Créez chaque rôle un par un :
    • admin
    • user_manager
    • user_viewer
    • role_manager
    • role_viewer
    • auditor
    • sync_manager

4. Assigner les rôles à l'utilisateur

  1. Retournez dans Users → Sélectionnez votre utilisateur de test
  2. Allez dans l'onglet Role mapping
  3. Cliquez sur Assign role
  4. Sélectionnez Filter by realm roles
  5. Cochez les rôles nécessaires :
    • Pour un accès complet : admin
    • Pour un accès limité : user_manager, user_viewer, role_manager, role_viewer
  6. Cliquez sur Assign

5. Configurer le Client pour les rôles

  1. Allez dans Clients → Sélectionnez lions-user-manager-client

  2. Allez dans l'onglet Mappers

  3. Vérifiez qu'il existe un mapper pour les rôles realm :

    • Name : realm roles
    • Mapper Type : Realm Role
    • Token Claim Name : realm_access.roles
    • Add to access token : ON
    • Add to ID token : ON
    • Add to userinfo : ON

    Si le mapper n'existe pas, créez-le :

    • Cliquez sur Create
    • Name : realm roles
    • Mapper Type : Realm Role
    • Token Claim Name : realm_access.roles
    • Add to access token : ON
    • Add to ID token : ON
    • Add to userinfo : ON
    • Cliquez sur Save

6. Vérifier la configuration

  1. Connectez-vous au client avec l'utilisateur de test
  2. Ouvrez les DevTools du navigateur (F12)
  3. Allez dans ApplicationCookies
  4. Trouvez le cookie de session
  5. Décodez le token JWT (utilisez https://jwt.io)
  6. Vérifiez que le claim realm_access.roles contient les rôles assignés

Configuration rapide via script

Un script de configuration automatique sera créé prochainement.

Rôles par endpoint

/api/users/*

  • admin - Accès complet
  • user_manager - Création, modification, suppression
  • user_viewer - Consultation uniquement

/api/roles/*

  • admin - Accès complet
  • role_manager - Création, modification, suppression
  • role_viewer - Consultation uniquement

/api/audit/*

  • admin - Accès complet
  • auditor - Consultation des logs

/api/sync/*

  • admin - Accès complet
  • sync_manager - Gestion de la synchronisation

Notes importantes

  • Les rôles sont vérifiés côté backend via @RolesAllowed
  • Le token JWT doit contenir les rôles dans realm_access.roles
  • Le client propage automatiquement le token au backend via bearer-token-propagation=true
  • En production, utilisez des rôles plus granulaires selon les besoins