# Guide de démarrage - Lions User Manager ## 🚀 Configuration Keycloak effectuée La configuration Keycloak a été effectuée avec succès ! Voici ce qui a été configuré : ### ✅ Realm dédié - **Nom du realm** : `lions-user-manager` - ✅ Architecture correcte : realm séparé pour l'application (pas `master`) ### ✅ Client configuré - **Client Frontend** : `lions-user-manager-client` - Secret : `client-secret-lions-2025` - Type : Confidential (Authorization Code Flow + Direct Access) - Redirect URIs : `http://localhost:8080/*`, `http://localhost:8081/*` - **Backend** : Pas de client séparé ✅ - Utilise directement l'Admin API avec les credentials `admin/admin` - Architecture correcte : pas besoin de service account pour ce cas d'usage ### ✅ Utilisateur de test - **Username** : `testuser` - **Password** : `test123` - **Email** : test@lions.dev - **Rôles** : `admin`, `user_manager` ### ✅ Rôles créés - `admin` - Accès complet - `user_manager` - Gestion utilisateurs - `user_viewer` - Lecture seule - `auditor` - Consultation logs - `sync_manager` - Synchronisation ## 📦 Démarrage de l'application ### 1. Vérifier que Keycloak tourne ```bash curl http://localhost:8180/realms/lions-user-manager/.well-known/openid-configuration ``` Si Keycloak ne tourne pas, le démarrer : ```bash # Exemple avec Docker docker run -p 8180:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:latest start-dev ``` ### 2. Démarrer le Backend (port 8081) ```bash cd lions-user-manager-server-impl-quarkus mvn quarkus:dev ``` **Note** : Le backend utilise directement l'Admin API de Keycloak avec `admin/admin`. OIDC est désactivé car pas nécessaire. **Vérification** : ```bash # Test de l'API (doit renvoyer une liste vide ou des utilisateurs) curl "http://localhost:8081/api/users?realm=lions-user-manager" ``` ### 3. Démarrer le Frontend (port 8080) ```bash cd lions-user-manager-client-quarkus-primefaces-freya mvn quarkus:dev ``` **Configuration OIDC active** pour le frontend (fichier `application-dev.properties`) : ```properties quarkus.oidc.auth-server-url=http://localhost:8180/realms/lions-user-manager quarkus.oidc.client-id=lions-user-manager-client quarkus.oidc.credentials.secret=client-secret-lions-2025 quarkus.oidc.application-type=web-app ``` ### 4. Accéder à l'application #### Frontend Web 1. Ouvrir : http://localhost:8080 2. Vous serez redirigé vers Keycloak pour l'authentification 3. Se connecter avec : **testuser** / **test123** 4. Vous serez redirigé vers l'application #### Backend API - Swagger UI : http://localhost:8081/q/swagger-ui - Health Check : http://localhost:8081/q/health - Metrics : http://localhost:8081/q/metrics ## 🔧 Résolution des problèmes ### Problème : "Forbidden" sur http://localhost:8081 **C'est normal !** Le backend ne sert pas de pages web directement. Utilisez plutôt : - Les endpoints API : http://localhost:8081/api/users?realm=lions-user-manager - Le Swagger UI : http://localhost:8081/q/swagger-ui ### Problème : "Client not found" sur le frontend **Solution** : Relancer le script de configuration : ```bash bash setup-keycloak-correct.sh ``` ### Problème : Impossible de se connecter avec testuser **Vérifications** : 1. Vérifier que l'utilisateur existe dans le bon realm : - Admin Console : http://localhost:8180/admin - Realm : `lions-user-manager` (pas `master` !) - Users → testuser 2. Vérifier le mot de passe : `test123` 3. Vérifier que le compte est activé (Enabled: ON) ### Problème : "Unauthorized" sur les API Le backend utilise l'Admin API avec `admin/admin`. Vérifiez : ```properties # Dans application-dev.properties lions.keycloak.admin-username=admin lions.keycloak.admin-password=admin ``` ## 📋 Architecture de l'authentification ``` ┌─────────────────┐ │ Utilisateur │ └────────┬────────┘ │ │ 1. Accède à http://localhost:8080 │ ▼ ┌─────────────────────────┐ │ Frontend (port 8080) │ ← OIDC activé │ PrimeFaces + Quarkus │ └────────┬────────────────┘ │ │ 2. Redirige vers Keycloak │ ▼ ┌─────────────────────────────────────┐ │ Keycloak (port 8180) │ │ Realm: lions-user-manager │ │ Client: lions-user-manager-client │ └────────┬────────────────────────────┘ │ │ 3. Login: testuser/test123 │ 4. Retourne token │ ▼ ┌─────────────────────────┐ │ Frontend authentifié │ └────────┬────────────────┘ │ │ 5. Appelle l'API avec token │ ▼ ┌──────────────────────────────┐ │ Backend API (port 8081) │ ← OIDC désactivé │ Utilise Admin API directe │ └──────────┬───────────────────┘ │ │ 6. Auth avec admin/admin │ ▼ ┌──────────┐ │ Keycloak │ │ Admin API│ └──────────┘ ``` ## 🎯 Prochaines étapes 1. ✅ Keycloak configuré 2. ✅ Utilisateur de test créé 3. ⏳ Tester l'authentification sur le frontend 4. ⏳ Tester les API du backend 5. ⏳ Développer les pages manquantes 6. ⏳ Implémenter les fonctionnalités métier ## 📞 Support En cas de problème : 1. Vérifier les logs des applications 2. Vérifier la configuration Keycloak dans l'Admin Console 3. Consulter `KEYCLOAK_SETUP.md` pour plus de détails 4. Relancer `setup-keycloak-correct.sh` si nécessaire --- **Date de configuration** : 2025-12-04 **Realm** : `lions-user-manager` **Credentials test** : `testuser` / `test123`