Mastodon

Comment intégrer facilement un serveur XMPP à Mastodon.

Intégration de base de données

La manière la plus simple de lier un serveur Ejabberd à une instance Mastodon sur le même serveur est d'utiliser un script d'authentification externe qui intéragie directement avec la base de données Postgresql de Mastodon. Cette méthode ne fonctionne de manière sécurisée que sur le réseau local, mais a été bien testée sur une instance Mastodon de taille moyenne.

Bot Mastodon pour Ejabberd

Une autre option simple est d'utiliser un bot sur votre instance Mastodon avec lequel intéragir pour enregistrer des comptes via l'API de Ejabberd. Vous pouvez trouver le logiciel du bot ici. Ce bot possède également d'autres fonctionnalités intéressantes pour obtenir des détails d'Ejabberd, il peut donc valoir la peine de l'installer même si une autre méthode d'intégration de compte est utilisée.

Via LDAP

Si vous installez une nouvelle instance Mastodon, vous pouvez aussi envisager de gérer les comptes utilisateurices via une base de données LDAP séparée, comme expliqué dans la documentation officielle Mastodon ici. Merci de vous référer à notre tutoriel LDAP dédié pour la partie serveur XMPP.

Prosody

Actuellement Expérimental.

L'intégration d'un serveur Prosody avec Mastodon peut aussi être faite via OAuth2. Le nouveau module mod_auth_oauth_external est nécessaire pour ça (et il nécessite un build nightly récent de Prosody).

Tout d'abord, une nouvelle application doit être enregistrée du côté Mastodon. Ça peut être fait sur Mastodon → Settings → Development → New application. L'URI de redirection n'importe pas. Prosody à besoin du scope read:accounts, rien d'autre.

Puis ces lignes doivent être ajoutées à la configuration de Prosody :

1authentication = "oauth_external"
2oauth_external_token_endpoint = "https://mastodon.example/oauth/token"
3oauth_external_validation_endpoint = "https://mastodon.example/api/v1/accounts/verify_credentials"
4oauth_external_username_field = "username"
5oauth_external_scope = "read:accounts"
6oauth_external_client_id = "Get client_id from https://mastodon.example/settings/applications"
7oauth_external_client_secret = "Get client_secret from https://mastodon.example/settings/applications"

Maintenant les utilisateurices peuvent se connecter avec ce nom : email\40example.com@xmpp.example.org, qui est composé de l'adresse mail avec laquelle iel se sont enregistré sur le serveur Mastodon (avec le @ échappé comme \40) et le domaine du serveur XMPP derrière le second @. Espérons que ce nom de connexion complexe pourra être simplifié à l’avenir.