From 978a0e3109d00cdc64becbdffaa642f06c6bd67b Mon Sep 17 00:00:00 2001 From: Antoine Van Elstraete Date: Tue, 8 Sep 2026 19:36:05 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9er=20la=20page=20Guide-XMPP=20:=20guide?= =?UTF-8?q?=20pratique=20de=20configuration=20XMPP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guide-XMPP.-.md | 102 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Guide-XMPP.-.md diff --git a/Guide-XMPP.-.md b/Guide-XMPP.-.md new file mode 100644 index 0000000..355c86f --- /dev/null +++ b/Guide-XMPP.-.md @@ -0,0 +1,102 @@ +# Guide XMPP + +## Introduction +XMPP (eXtensible Messaging and Presence Protocol) est utilisé dans ce projet pour **envoyer des notifications de synthèse** via le protocole Jabber. Cette fonctionnalité est **optionnelle** et **désactivée par défaut** (`XMPP_ENABLED=false`). +Pour activer et configurer XMPP, reportez-vous au tableau complet des variables dans la page [Configuration](Configuration). + +--- + +## Comprendre le JID (Jabber ID) +Le **JID** (Jabber ID) est l'identifiant unique d'un compte XMPP. Il suit le format : +`utilisateur@domaine.tld` + +- **Exemple** : `alice@example.com` +- **Avec ressource** : `alice@example.com/ressource` (pour identifier un client spécifique). + +Dans ce projet : +- **`XMPP_JID`** : Compte expéditeur des notifications (ex: `pronote-sync@example.com`). +- **`XMPP_TO`** : JID du destinataire (ex: `parent@example.com`). +- **`XMPP_RESOURCE`** : Ressource associée à la connexion du pipeline (par défaut : `pronote-sync`). + +--- + +## Créer un compte XMPP +### Auto-hébergement +Si vous gérez votre propre serveur XMPP (Prosody, ejabberd, OpenFire), créez un compte via les outils d'administration : + +- **Prosody** : + ```bash + prosodyctl adduser utilisateur@domaine.tld + ``` +- **ejabberd** : + ```bash + ejabberdctl register utilisateur domaine mot_de_passe + ``` +- **OpenFire** : Utilisez la console web d'administration. + +### Service public +De nombreux fournisseurs XMPP proposent des comptes gratuits : +- [jabber.fr](https://jabber.fr) +- [im.apinc.org](https://im.apinc.org) +- [Autres fournisseurs](https://xmpp.net/directory.php) + +> **Sécurité** : Le mot de passe (`XMPP_PASSWORD`) est stocké en `SecretStr` et **masqué dans les logs**. + +--- + +## Hôte et port +### `XMPP_HOST` +- Par défaut, `XMPP_HOST` est vide : le pipeline se connecte au serveur indiqué par le **domaine du JID** (ex: `example.com` pour `user@example.com`). +- Si le serveur XMPP est sur un hôte différent (ex: JID `user@example.com` mais serveur sur `xmpp.example.com`), renseignez `XMPP_HOST` manuellement. +- En l'absence de `XMPP_HOST`, la résolution se fait via les **enregistrements DNS SRV** (`_xmpp-client._tcp.domaine.tld`). + +### `XMPP_PORT` +Ports standards pour les connexions client-serveur : +- **`5222`** (par défaut) : Connexion avec **STARTTLS** (TLS opportuniste). Standard moderne recommandé. +- **`5223`** : Connexion avec **TLS direct** (legacy SSL). +- `5269` : Connexion serveur-serveur (fédération) — **non pertinent** pour ce projet. + +--- + +## TLS +- **`XMPP_USE_TLS`** est activé par défaut (`true`) et **obligatoire** pour toute connexion vers un hôte externe. +- Désactiver TLS (`XMPP_USE_TLS=false`) n'est autorisé **uniquement** pour les hôtes de boucle locale : + - `localhost` + - `127.0.0.1` + - `::1` +- Pour toute autre destination, TLS doit rester activé. Une tentative de connexion sans TLS échouera avec une **erreur de validation**. + +--- + +## Destinataire (`XMPP_TO`) +- **`XMPP_TO`** est le JID du destinataire des notifications (ex: le compte XMPP du parent). +- **Format** : `utilisateur@domaine.tld` (sans ressource). +- **Prérequis** : Le destinataire doit accepter les messages de l'expéditeur (`XMPP_JID`), selon la configuration du serveur ou du client XMPP. + +--- + +## Exemple de configuration +### XMPP activé +```ini +# Activation et configuration complète +XMPP_ENABLED=true +XMPP_JID=pronote-sync@example.com +XMPP_PASSWORD=mot_de_passe_xmpp +XMPP_HOST=xmpp.example.com +XMPP_PORT=5222 +XMPP_TO=parent@example.com +XMPP_RESOURCE=pronote-sync +XMPP_USE_TLS=true +XMPP_TIMEOUT=30 +``` + +### XMPP désactivé (par défaut) +```ini +# Désactivation (comportement par défaut) +XMPP_ENABLED=false +# Les autres variables XMPP sont ignorées +``` + +--- +→ [Configuration](Configuration) — tableau des variables +→ [Sécurité](Sécurité) — gestion des secrets \ No newline at end of file