# 🔐 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.11: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.11: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.11: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.11: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.11: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 !**