Files
unionflow-mobile-apps/README-Keycloak-Setup.md
2025-09-19 16:09:21 +00:00

7.6 KiB

🔐 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

# Vérifier la disponibilité des outils
curl --version
openssl version
base64 --version

Permissions

# Rendre les scripts exécutables
chmod +x *.sh

🔧 Installation et Configuration

Étape 1 : Configuration initiale

# 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

# Vérifier que tout est correctement configuré
./verify-unionflow-keycloak.sh

Étape 3 : Test d'authentification

# 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

// 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

# 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

# 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

# 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

# Relancer la configuration
./cleanup-unionflow-keycloak.sh
./setup-unionflow-keycloak.sh

4. Authentification mobile échoue

# Vérifier la configuration du client unionflow-mobile
# S'assurer que les redirect URIs sont corrects

Logs de débogage

# 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

# 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

# Modifier le script setup-unionflow-keycloak.sh
# Ajouter les nouveaux comptes dans la section appropriée
# Relancer la configuration

📊 Monitoring

Vérification périodique

# 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 !