- Création du realm 'lions-user-manager' dédié à l'application - Configuration du client frontend uniquement (lions-user-manager-client) - Backend utilise directement l'Admin API (admin/admin) sans client séparé - Création de l'utilisateur de test: testuser/test123 - Création des rôles: admin, user_manager, user_viewer, auditor, sync_manager - Mise à jour des configurations pour utiliser le bon realm - Scripts de setup: setup-keycloak-correct.sh - Documentation: KEYCLOAK_SETUP.md Corrections par rapport à la première tentative: - Utilisation d'un realm dédié au lieu de 'master' - Pas de client pour le backend (utilise directement Admin API) - Configuration OIDC correcte pour le frontend
5.1 KiB
Configuration Keycloak - lions-user-manager
✅ Configuration effectuée
La configuration Keycloak a été effectuée avec succès via le script setup-keycloak-simple.sh.
📋 Clients créés
1. Client Backend: lions-user-manager
- Type: Service Account (client credentials)
- Client ID:
lions-user-manager - Secret:
sD8hT13lG6c79WOWQk3dVzya5pfPhzw3 - Port: 8081
- Redirect URIs:
http://localhost:8081/* - Web Origins:
http://localhost:8081,http://localhost:8080 - Usage: API REST backend pour gérer les utilisateurs Keycloak
2. Client Frontend: lions-user-manager-client
- Type: Confidential (authorization code flow)
- Client ID:
lions-user-manager-client - Secret:
client-secret-lions-2025 - Port: 8080
- Redirect URIs:
http://localhost:8080/*,http://localhost:8081/* - Web Origins:
* - Standard Flow: Activé
- Direct Access Grants: Activé
- Usage: Interface web JSF/PrimeFaces
👥 Utilisateur de test
- Username:
testuser - Password:
test123 - Email:
test@lions.dev - Nom complet: Test User
- Rôles:
admin,user_manager
🔐 Rôles créés
Les rôles suivants ont été créés dans le realm master:
- admin - Accès complet à toutes les fonctionnalités
- user_manager - Gestion des utilisateurs et des rôles
- user_viewer - Consultation en lecture seule
- auditor - Consultation des logs d'audit
- sync_manager - Gestion de la synchronisation
🚀 Démarrage des applications
Backend (port 8081)
Le backend est configuré avec OIDC désactivé car il utilise directement l'API Admin de Keycloak via service account.
cd lions-user-manager-server-impl-quarkus
mvn quarkus:dev
Configuration dans application-dev.properties:
# OIDC désactivé pour le backend (utilise service account)
quarkus.oidc.enabled=false
# API Admin Keycloak
lions.keycloak.server-url=http://localhost:8180
lions.keycloak.admin-username=admin
lions.keycloak.admin-password=admin
Frontend (port 8080)
Le frontend utilise OIDC pour l'authentification des utilisateurs.
cd lions-user-manager-client-quarkus-primefaces-freya
mvn quarkus:dev
Configuration dans application-dev.properties:
# OIDC activé pour le frontend
quarkus.oidc.auth-server-url=http://localhost:8180/realms/master
quarkus.oidc.client-id=lions-user-manager-client
quarkus.oidc.credentials.secret=client-secret-lions-2025
🌐 URLs d'accès
- Keycloak Admin: http://localhost:8180/admin (admin/admin)
- Backend API: http://localhost:8081
- Frontend Web: http://localhost:8080
- Swagger UI: http://localhost:8081/q/swagger-ui
🔧 Résolution des problèmes
Problème: "Forbidden" sur http://localhost:8081
Cause: OIDC est désactivé dans le backend, ce qui provoque une erreur de sécurité.
Solution: Le backend est accessible uniquement via les endpoints API qui ne nécessitent pas d'authentification utilisateur (il utilise le service account pour communiquer avec Keycloak).
Testez plutôt:
curl http://localhost:8081/api/users?realm=master
Problème: "Client not found" sur les pages XHTML
Cause: Le client lions-user-manager-client n'était pas configuré dans Keycloak.
Solution: ✅ Résolu par le script setup-keycloak-simple.sh
Problème: Impossible de se connecter avec testuser
Vérifications:
- Vérifier que l'utilisateur existe dans Keycloak Admin Console
- Vérifier que le mot de passe est
test123 - Vérifier que le compte est activé (
enabled: true)
📝 Test de connexion
Test via curl (backend)
# 1. Obtenir un token avec le client backend
curl -X POST http://localhost:8180/realms/master/protocol/openid-connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=lions-user-manager" \
-d "client_secret=sD8hT13lG6c79WOWQk3dVzya5pfPhzw3" \
-d "grant_type=client_credentials"
# 2. Test avec authentification utilisateur
curl -X POST http://localhost:8180/realms/master/protocol/openid-connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=lions-user-manager-client" \
-d "client_secret=client-secret-lions-2025" \
-d "username=testuser" \
-d "password=test123" \
-d "grant_type=password"
Test via navigateur (frontend)
- Ouvrir http://localhost:8080
- Vous serez redirigé vers Keycloak pour l'authentification
- Se connecter avec
testuser/test123 - Vous serez redirigé vers l'application
🔄 Réinitialisation de la configuration
Pour réinitialiser et reconfigurer Keycloak:
# 1. Supprimer les clients existants (via Admin Console ou API)
# 2. Relancer le script
bash setup-keycloak-simple.sh
📚 Documentation complémentaire
Date de configuration: 2025-12-04
Script utilisé: setup-keycloak-simple.sh