docs: Ajout du guide de démarrage complet

- Instructions détaillées pour démarrer l'application
- Explications de l'architecture d'authentification
- Guide de résolution des problèmes courants
- Diagramme de flux d'authentification
This commit is contained in:
lionsdev
2025-12-04 21:58:51 +00:00
parent 4d196dafc5
commit ee0bd2c2da

200
README_DEMARRAGE.md Normal file
View File

@@ -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`