140 lines
4.3 KiB
Markdown
140 lines
4.3 KiB
Markdown
# 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 **Users** → **Add 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 roles** → **Create 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 **Application** → **Cookies**
|
|
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
|
|
|