Delete page "GuideXMPP"
109
GuideXMPP.md
109
GuideXMPP.md
@@ -1,109 +0,0 @@
|
||||
# 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) : 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** (connection chiffrée dès l'établissement). Le client se connecte en TLS directement, sans négociation STARTTLS préalable. Ce mode est recommandé pour les serveurs supportant le TLS direct (port 5223 typiquement).
|
||||
- **`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 sur le port 5222.
|
||||
|
||||
### Contrainte de sécurité
|
||||
- Désactiver le TLS direct (`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, `XMPP_USE_TLS` doit 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` sur le port 5222, vérifiez si votre serveur XMPP supporte le TLS direct sur ce port ou s'il attend STARTTLS. Dans ce dernier cas, vous devrez peut-être adapter la configuration du port ou utiliser le port 5223 (TLS direct).
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
Reference in New Issue
Block a user