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.
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 :
prosodyctl adduser utilisateur@domaine.tld - ejabberd :
ejabberdctl register utilisateur domaine mot_de_passe - OpenFire : Utilisez la console web d'administration.
Service public
De nombreux fournisseurs XMPP proposent des comptes gratuits :
Sécurité : Le mot de passe (
XMPP_PASSWORD) est stocké enSecretStret masqué dans les logs.
Hôte et port
XMPP_HOST
- Par défaut,
XMPP_HOSTest vide : le pipeline se connecte au serveur indiqué par le domaine du JID (ex:example.compouruser@example.com). - Si le serveur XMPP est sur un hôte différent (ex: JID
user@example.commais serveur surxmpp.example.com), renseignezXMPP_HOSTmanuellement. - 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) : Port standard pour les connexions client-serveur XMPP.5223: Port historique pour les connexions avec TLS direct (legacy SSL).5269: Connexion serveur-serveur (fédération) — non pertinent pour ce projet.
TLS et XMPP_USE_TLS
La variable XMPP_USE_TLS contrôle le mode de chiffrement de la connexion XMPP :
XMPP_USE_TLS=true(par défaut) : Active le TLS direct (connexion chiffrée dès l'établissement). Le client se connecte en TLS directement, sans négociation STARTTLS préalable.XMPP_USE_TLS=false: Active le STARTTLS (TLS opportuniste). La connexion commence en clair, puis est chiffrée après négociation STARTTLS. Ce mode est adapté aux serveurs utilisant STARTTLS.
Contrainte de sécurité
- Désactiver le TLS direct (
XMPP_USE_TLS=false) n'est autorisé uniquement pour les hôtes de boucle locale :localhost127.0.0.1::1
- Pour toute autre destination,
XMPP_USE_TLSdoit rester àtrue. Une tentative de connexion sans TLS direct échouera avec une erreur de validation.
Note pratique : En cas d'échec de connexion avec
XMPP_USE_TLS=true, vérifiez si votre serveur XMPP supporte le TLS direct. Si votre serveur n'accepte que STARTTLS, vous devrez peut-être adapter la configuration.
Destinataire (XMPP_TO)
XMPP_TOest 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é
# 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)
# Désactivation (comportement par défaut)
XMPP_ENABLED=false
# Les autres variables XMPP sont ignorées
→ Configuration — tableau des variables → Sécurité — gestion des secrets