# Configuration Automatique Keycloak pour UnionFlow

Ce dossier contient des scripts Python pour configurer automatiquement Keycloak avec tous les comptes nécessaires pour l'application UnionFlow.

## 🚀 Démarrage Rapide

### Option 1 : Configuration Automatique Complète
```bash
python start_keycloak.py
```
Ce script fait tout automatiquement :
- Démarre Keycloak avec Docker
- Crée le realm `unionflow`
- Crée le client `unionflow-mobile`
- Crée tous les rôles
- Crée tous les utilisateurs avec leurs mots de passe
- Teste l'authentification

### Option 2 : Configuration Manuelle
```bash
# 1. Démarrer Keycloak manuellement
docker run -d --name unionflow-keycloak -p 8180:8080 \
  -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin123 \
  quay.io/keycloak/keycloak:23.0.0 start-dev

# 2. Attendre que Keycloak soit prêt (2-3 minutes)

# 3. Configurer automatiquement
python setup_keycloak.py
```

### Test des Comptes
```bash
python test_auth.py
```

## 📋 Comptes Créés

| Utilisateur | Mot de passe | Rôle |
|-------------|--------------|------|
| `superadmin` | `SuperAdmin123!` | SUPER_ADMINISTRATEUR |
| `marie.active` | `Marie123!` | MEMBRE_ACTIF |
| `jean.simple` | `Jean123!` | MEMBRE_SIMPLE |
| `tech.lead` | `TechLead123!` | RESPONSABLE_TECHNIQUE |
| `rh.manager` | `RhManager123!` | RESPONSABLE_MEMBRES |

## 🔧 Configuration Technique

### Keycloak
- **URL** : http://localhost:8180
- **Realm** : unionflow
- **Client ID** : unionflow-mobile
- **Client Type** : Public (pour mobile)
- **Direct Access Grants** : Activé

### Rôles Créés
- `SUPER_ADMINISTRATEUR`
- `RESPONSABLE_TECHNIQUE`
- `RESPONSABLE_MEMBRES`
- `MEMBRE_ACTIF`
- `MEMBRE_SIMPLE`

## 📱 Intégration Mobile

Pour votre application Android UnionFlow, utilisez ces paramètres :

```kotlin
// Configuration Keycloak
val keycloakUrl = "http://192.168.1.145:8180"  // Remplacez par votre IP
val realm = "unionflow"
val clientId = "unionflow-mobile"

// Test d'authentification
val username = "marie.active"
val password = "Marie123!"
```

## 🛠️ Scripts Disponibles

### `start_keycloak.py`
Script principal qui :
- Démarre Keycloak automatiquement
- Lance la configuration complète
- Affiche le statut final

### `setup_keycloak.py`
Script de configuration qui :
- Se connecte à Keycloak avec les credentials admin
- Crée le realm, client, rôles et utilisateurs
- Teste l'authentification

### `test_auth.py`
Script de test qui :
- Teste l'authentification de tous les comptes
- Affiche un rapport détaillé
- Confirme que tout fonctionne

## 🔍 Dépannage

### Keycloak ne démarre pas
```bash
# Vérifier Docker
docker ps

# Voir les logs
docker logs unionflow-keycloak

# Redémarrer
docker stop unionflow-keycloak
docker rm unionflow-keycloak
python start_keycloak.py
```

### Erreur d'authentification admin
Si le script ne peut pas se connecter comme admin :
1. Ouvrez http://localhost:8180
2. Cliquez sur "Administration Console"
3. Créez un compte admin
4. Relancez `python setup_keycloak.py`

### Comptes ne fonctionnent pas
```bash
# Tester individuellement
python test_auth.py

# Reconfigurer
python setup_keycloak.py
```

## 📦 Prérequis

- Python 3.6+
- Docker
- Module `requests` : `pip install requests`

## 🎯 Résultat Attendu

Après exécution réussie, vous devriez voir :
```
✅ CONFIGURATION TERMINÉE AVEC SUCCÈS !

🎯 COMPTES CRÉÉS :
   • superadmin / SuperAdmin123! (SUPER_ADMINISTRATEUR)
   • marie.active / Marie123! (MEMBRE_ACTIF)
   • jean.simple / Jean123! (MEMBRE_SIMPLE)
   • tech.lead / TechLead123! (RESPONSABLE_TECHNIQUE)
   • rh.manager / RhManager123! (RESPONSABLE_MEMBRES)

🚀 PRÊT POUR L'APPLICATION MOBILE UNIONFLOW !
```

## 🔗 URLs Utiles

- **Interface Admin** : http://localhost:8180/admin/
- **Realm UnionFlow** : http://localhost:8180/realms/unionflow
- **Token Endpoint** : http://localhost:8180/realms/unionflow/protocol/openid-connect/token

---

**Note** : Ces scripts sont conçus pour un environnement de développement. Pour la production, utilisez des mots de passe plus sécurisés et une configuration HTTPS.
