262 lines
7.6 KiB
Markdown
262 lines
7.6 KiB
Markdown
# 🔐 Configuration Architecture Rôles UnionFlow dans Keycloak
|
|
|
|
Ce repository contient tous les scripts nécessaires pour configurer complètement l'architecture des rôles UnionFlow dans Keycloak en utilisant exclusivement des commandes curl.
|
|
|
|
## 📋 Vue d'ensemble
|
|
|
|
L'architecture UnionFlow comprend **8 rôles métier hiérarchiques** avec **8 comptes de test** correspondants, permettant de tester tous les cas d'usage de l'application mobile.
|
|
|
|
### 🏗️ Architecture des Rôles
|
|
|
|
```
|
|
SUPER_ADMINISTRATEUR (100) ← Équipe technique UnionFlow
|
|
↓
|
|
ADMINISTRATEUR_ORGANISATION (85) ← Président/Directeur
|
|
↓
|
|
RESPONSABLE_TECHNIQUE (80) ← Secrétaire général/IT
|
|
RESPONSABLE_FINANCIER (75) ← Trésorier/Comptable
|
|
RESPONSABLE_MEMBRES (70) ← RH/Gestionnaire communauté
|
|
↓
|
|
MEMBRE_ACTIF (50) ← Membre engagé/Organisateur
|
|
↓
|
|
MEMBRE_SIMPLE (30) ← Membre cotisant standard
|
|
↓
|
|
VISITEUR (0) ← Personne intéressée/Non-membre
|
|
```
|
|
|
|
## 🚀 Scripts Disponibles
|
|
|
|
| Script | Description | Usage |
|
|
|--------|-------------|-------|
|
|
| `setup-unionflow-keycloak.sh` | **Configuration complète** - Crée tous les rôles et comptes | `./setup-unionflow-keycloak.sh` |
|
|
| `verify-unionflow-keycloak.sh` | **Vérification** - Teste la configuration et génère un rapport | `./verify-unionflow-keycloak.sh` |
|
|
| `test-mobile-auth.sh` | **Test authentification** - Simule l'auth mobile OAuth2 | `./test-mobile-auth.sh [username]` |
|
|
| `cleanup-unionflow-keycloak.sh` | **Nettoyage** - Supprime complètement la configuration | `./cleanup-unionflow-keycloak.sh` |
|
|
|
|
## 📦 Prérequis
|
|
|
|
### Environnement
|
|
- **Keycloak** : Accessible sur `http://192.168.1.145:8180`
|
|
- **Realm** : `unionflow` (doit exister)
|
|
- **Client** : `unionflow-mobile` (doit être configuré)
|
|
- **Admin** : `admin/admin`
|
|
|
|
### Outils système
|
|
```bash
|
|
# Vérifier la disponibilité des outils
|
|
curl --version
|
|
openssl version
|
|
base64 --version
|
|
```
|
|
|
|
### Permissions
|
|
```bash
|
|
# Rendre les scripts exécutables
|
|
chmod +x *.sh
|
|
```
|
|
|
|
## 🔧 Installation et Configuration
|
|
|
|
### Étape 1 : Configuration initiale
|
|
|
|
```bash
|
|
# 1. Cloner ou télécharger les scripts
|
|
# 2. Vérifier que Keycloak est accessible
|
|
curl -I http://192.168.1.145:8180
|
|
|
|
# 3. Lancer la configuration complète
|
|
./setup-unionflow-keycloak.sh
|
|
```
|
|
|
|
### Étape 2 : Vérification
|
|
|
|
```bash
|
|
# Vérifier que tout est correctement configuré
|
|
./verify-unionflow-keycloak.sh
|
|
```
|
|
|
|
### Étape 3 : Test d'authentification
|
|
|
|
```bash
|
|
# Tester tous les comptes
|
|
./test-mobile-auth.sh
|
|
|
|
# Tester un compte spécifique
|
|
./test-mobile-auth.sh marie.active
|
|
```
|
|
|
|
## 👥 Comptes de Test Créés
|
|
|
|
| Rôle | Username | Email | Password | Niveau |
|
|
|------|----------|-------|----------|---------|
|
|
| **SUPER_ADMINISTRATEUR** | `superadmin` | `superadmin@unionflow.dev` | `SuperAdmin123!` | 100 |
|
|
| **ADMINISTRATEUR_ORGANISATION** | `admin.org` | `admin@association-dev.fr` | `AdminOrg123!` | 85 |
|
|
| **RESPONSABLE_TECHNIQUE** | `tech.lead` | `tech@association-dev.fr` | `TechLead123!` | 80 |
|
|
| **RESPONSABLE_FINANCIER** | `tresorier` | `tresorier@association-dev.fr` | `Tresorier123!` | 75 |
|
|
| **RESPONSABLE_MEMBRES** | `rh.manager` | `rh@association-dev.fr` | `RhManager123!` | 70 |
|
|
| **MEMBRE_ACTIF** | `marie.active` | `marie@association-dev.fr` | `Marie123!` | 50 |
|
|
| **MEMBRE_SIMPLE** | `jean.simple` | `jean@association-dev.fr` | `Jean123!` | 30 |
|
|
| **VISITEUR** | `visiteur` | `visiteur@example.com` | `Visiteur123!` | 0 |
|
|
|
|
## 📱 Intégration Application Mobile
|
|
|
|
### Configuration Flutter
|
|
|
|
```dart
|
|
// Configuration Keycloak dans l'app mobile
|
|
const keycloakConfig = {
|
|
'serverUrl': 'http://192.168.1.145:8180',
|
|
'realm': 'unionflow',
|
|
'clientId': 'unionflow-mobile',
|
|
'redirectUri': 'dev.lions.unionflow-mobile://auth/callback',
|
|
};
|
|
```
|
|
|
|
### Test d'authentification
|
|
|
|
```bash
|
|
# Tester l'authentification avec le compte marie.active
|
|
./test-mobile-auth.sh marie.active
|
|
|
|
# Résultat attendu :
|
|
# ✓ marie.active (marie@association-dev.fr) - Authentification réussie
|
|
# ✓ Tokens obtenus avec succès
|
|
# ✓ Informations utilisateur récupérées
|
|
```
|
|
|
|
## 🔍 Dashboards par Rôle
|
|
|
|
Chaque rôle a accès à son dashboard spécifique :
|
|
|
|
### 🔴 Super Administrateur
|
|
- **Dashboard** : Command Center système
|
|
- **Fonctionnalités** : Métriques globales, gestion multi-organisations, monitoring
|
|
|
|
### 🔵 Administrateur Organisation
|
|
- **Dashboard** : Vue d'ensemble organisation
|
|
- **Fonctionnalités** : KPI organisation, gestion membres/finances, rapports
|
|
|
|
### 🟢 Responsable Technique
|
|
- **Dashboard** : Outils techniques
|
|
- **Fonctionnalités** : Configuration, workflows, gestion événements
|
|
|
|
### 🟡 Responsable Financier
|
|
- **Dashboard** : Analytics financiers
|
|
- **Fonctionnalités** : Budget, cotisations, rapports comptables
|
|
|
|
### 🟣 Responsable Membres
|
|
- **Dashboard** : Gestion communauté
|
|
- **Fonctionnalités** : Engagement membres, communication, solidarité
|
|
|
|
### 🟠 Membre Actif
|
|
- **Dashboard** : Activity Center personnel
|
|
- **Fonctionnalités** : Mes événements, contributions, engagement
|
|
|
|
### ⚪ Membre Simple
|
|
- **Dashboard** : Vue personnelle
|
|
- **Fonctionnalités** : Profil, cotisations, événements disponibles
|
|
|
|
### 🔵 Visiteur
|
|
- **Dashboard** : Landing page attractive
|
|
- **Fonctionnalités** : Découverte organisation, événements publics, inscription
|
|
|
|
## 🛠️ Dépannage
|
|
|
|
### Problèmes courants
|
|
|
|
#### 1. Erreur de connexion Keycloak
|
|
```bash
|
|
# Vérifier que Keycloak est accessible
|
|
curl -I http://192.168.1.145:8180
|
|
|
|
# Si erreur, vérifier l'IP et le port
|
|
```
|
|
|
|
#### 2. Token d'administration invalide
|
|
```bash
|
|
# Vérifier les credentials admin
|
|
curl -X POST "http://192.168.1.145:8180/realms/master/protocol/openid-connect/token" \
|
|
-d "username=admin&password=admin&grant_type=password&client_id=admin-cli"
|
|
```
|
|
|
|
#### 3. Rôles ou utilisateurs non créés
|
|
```bash
|
|
# Relancer la configuration
|
|
./cleanup-unionflow-keycloak.sh
|
|
./setup-unionflow-keycloak.sh
|
|
```
|
|
|
|
#### 4. Authentification mobile échoue
|
|
```bash
|
|
# Vérifier la configuration du client unionflow-mobile
|
|
# S'assurer que les redirect URIs sont corrects
|
|
```
|
|
|
|
### Logs de débogage
|
|
|
|
```bash
|
|
# Activer les logs détaillés
|
|
export DEBUG=1
|
|
./setup-unionflow-keycloak.sh
|
|
|
|
# Vérifier les réponses curl
|
|
curl -v [commande...]
|
|
```
|
|
|
|
## 🔄 Maintenance
|
|
|
|
### Mise à jour des rôles
|
|
```bash
|
|
# 1. Sauvegarder la configuration actuelle
|
|
./verify-unionflow-keycloak.sh > backup-config.txt
|
|
|
|
# 2. Nettoyer
|
|
./cleanup-unionflow-keycloak.sh
|
|
|
|
# 3. Reconfigurer avec les nouveaux paramètres
|
|
./setup-unionflow-keycloak.sh
|
|
```
|
|
|
|
### Ajout de nouveaux comptes
|
|
```bash
|
|
# Modifier le script setup-unionflow-keycloak.sh
|
|
# Ajouter les nouveaux comptes dans la section appropriée
|
|
# Relancer la configuration
|
|
```
|
|
|
|
## 📊 Monitoring
|
|
|
|
### Vérification périodique
|
|
```bash
|
|
# Script de vérification quotidienne
|
|
./verify-unionflow-keycloak.sh
|
|
|
|
# Test d'authentification hebdomadaire
|
|
./test-mobile-auth.sh
|
|
```
|
|
|
|
### Métriques importantes
|
|
- ✅ 8/8 rôles configurés
|
|
- ✅ 8/8 comptes de test fonctionnels
|
|
- ✅ 100% des authentifications réussies
|
|
- ✅ Tokens JWT valides avec rôles
|
|
|
|
## 🚀 Prochaines Étapes
|
|
|
|
1. **Intégration Backend** : Mettre à jour les annotations `@RolesAllowed` dans le code Java
|
|
2. **Synchronisation Mobile** : Adapter les dashboards selon les nouveaux rôles
|
|
3. **Tests E2E** : Implémenter des tests automatisés complets
|
|
4. **Documentation** : Créer la documentation utilisateur par rôle
|
|
|
|
## 📞 Support
|
|
|
|
En cas de problème :
|
|
1. Consulter les logs des scripts
|
|
2. Vérifier la configuration Keycloak via l'interface admin
|
|
3. Tester manuellement les endpoints avec curl
|
|
4. Utiliser le script de nettoyage et reconfigurer si nécessaire
|
|
|
|
---
|
|
|
|
**🎉 Configuration UnionFlow Keycloak - Prête pour la production !**
|