- 6 docs racine (README, HANDOVER, ARCHITECTURE, DECISIONS, INSTALL, OPERATIONS) - 9 docs thématiques dans docs/ - 10 templates docker-compose dans configs/ - 7 scripts Python/Shell d'import Furious vers Zitadel - 2 matrices RBAC Etat infra au 5 juin 2026 : - 88 users Furious importes dans Zitadel - 8 roles RBAC crees et attribues - Intranet filtre les cartes selon role (Approche A) - 7 outils SSO operationnels
126 lines
3.6 KiB
Markdown
126 lines
3.6 KiB
Markdown
# Scripts d'import Furious → Zitadel
|
|
|
|
> Scripts Python/Shell pour l'import automatisé des collaborateurs Seize depuis Furious Squad vers Zitadel.
|
|
|
|
---
|
|
|
|
## 📁 Liste des scripts
|
|
|
|
| Fichier | Type | Description |
|
|
|---|---|---|
|
|
| `read-all-users.sh` | Shell | Récupère les users depuis Furious API → JSON |
|
|
| `test-auth.sh` | Shell | Teste l'auth Furious |
|
|
| `import-furious-to-zitadel.py` | Python | ⭐ Script principal d'import |
|
|
| `merge-duplicates.py` | Python | Fusion des doublons après import |
|
|
| `generate-roles-mapping.py` | Python | Génère le mapping email → rôle |
|
|
| `assign-roles.py` | Python | Attribue les rôles RBAC dans Zitadel |
|
|
| `extract-distribution-csv.py` | Python | Génère le CSV pour distribution Teams |
|
|
|
|
---
|
|
|
|
## 🔧 Setup initial
|
|
|
|
### 1. Environnement Python
|
|
|
|
```bash
|
|
cd ~/furious-to-zitadel
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install requests pyjwt cryptography
|
|
```
|
|
|
|
### 2. Fichier `.env`
|
|
|
|
```env
|
|
FURIOUS_USERNAME=__creer_dans_furious_config__
|
|
FURIOUS_PASSWORD=__creer_dans_furious_config__
|
|
FURIOUS_API_URL=https://seize-consulting.furious-squad.com/api/v2
|
|
```
|
|
|
|
`chmod 600 .env`
|
|
|
|
### 3. Clé service account Zitadel
|
|
|
|
Voir [docs/06-import-furious.md](../../docs/06-import-furious.md).
|
|
|
|
Placer le fichier dans le dossier sous le nom `zitadelfuriousimportkey.json` avec `chmod 600`.
|
|
|
|
---
|
|
|
|
## 🚀 Procédure complète
|
|
|
|
```bash
|
|
cd ~/furious-to-zitadel
|
|
source venv/bin/activate
|
|
|
|
# 1. Lire les users Furious
|
|
./read-all-users.sh
|
|
|
|
# 2. Test dry-run
|
|
python3 import-furious-to-zitadel.py --mode dry-run
|
|
|
|
# 3. Test sur 3 users
|
|
python3 import-furious-to-zitadel.py --mode test
|
|
|
|
# 4. Vérification dans Zitadel UI
|
|
|
|
# 5. Import production (les 85 restants)
|
|
python3 import-furious-to-zitadel.py --mode prod
|
|
|
|
# 6. Gérer les doublons (adapter DUPLICATES dans le script avant)
|
|
nano merge-duplicates.py
|
|
python3 merge-duplicates.py
|
|
|
|
# 7. Extraire CSV de distribution
|
|
python3 extract-distribution-csv.py
|
|
|
|
# 8. Générer le mapping pour RBAC intranet
|
|
python3 generate-roles-mapping.py
|
|
|
|
# 9. Attribuer les rôles RBAC
|
|
python3 assign-roles.py
|
|
|
|
# 10. Copier le mapping vers l'intranet
|
|
cp roles-mapping.json ~/docker/intranet/
|
|
cd ~/docker/intranet
|
|
docker compose down
|
|
docker compose up -d
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ Fichiers générés (sensibles)
|
|
|
|
Ces fichiers contiennent des données sensibles, à **protéger** :
|
|
|
|
| Fichier | Contenu | Action |
|
|
|---|---|---|
|
|
| `furious-users-raw.json` | Toutes les infos Furious des collaborateurs | chmod 600, ne pas commit |
|
|
| `users-credentials.csv` | 89 lignes avec mdp temporaires | chmod 600, supprimer après distribution |
|
|
| `distribution-teams.csv` | 88 lignes (Nom, Email, Mdp) pour Teams | chmod 600, supprimer après distribution |
|
|
| `roles-mapping.json` | Mapping email → rôle | OK à partager avec le mainteneur |
|
|
| `zitadelfuriousimportkey.json` | Clé privée RSA service account | chmod 600, ne JAMAIS partager |
|
|
| `import.log` | Logs de l'import (peut contenir des emails) | chmod 600 |
|
|
|
|
---
|
|
|
|
## 🔄 Synchronisation continue (à mettre en place)
|
|
|
|
Voir [docs/06-import-furious.md](../../docs/06-import-furious.md) section "Synchronisation périodique".
|
|
|
|
Idée : workflow n8n quotidien à 3h du matin qui :
|
|
1. Compare la liste Furious vs Zitadel
|
|
2. Crée les nouveaux
|
|
3. Désactive les départs
|
|
4. Met à jour les rôles
|
|
|
|
⏱️ ~1 journée de dev.
|
|
|
|
---
|
|
|
|
## 📚 Voir aussi
|
|
|
|
- [docs/06-import-furious.md](../../docs/06-import-furious.md) — Doc complète de l'import
|
|
- [docs/07-rbac-intranet.md](../../docs/07-rbac-intranet.md) — Suite : attribution des rôles
|
|
- [matrices/job-title-to-role.csv](../../matrices/job-title-to-role.csv) — Matrice de mapping
|