diff --git a/README_DEMARRAGE.md b/README_DEMARRAGE.md new file mode 100644 index 0000000..f09e23a --- /dev/null +++ b/README_DEMARRAGE.md @@ -0,0 +1,200 @@ +# 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`