Mastodon
Como facilmente integrar um servidor XMPP com Mastodon.
Integração por banco de dados
A maneira mais fácil de ligar um servidor Ejabberd para uma instância Mastodon no mesmo servidor é usar o script de autenticação externa que diretamente interage com a base de dados Postgresql do Mastodon. Esse método só funciona de forma segura na rede local, mas já foi bem testado em uma instância Mastodon de tamanho médio.
Mastodon bot para Ejabberd
Outra opção que é fácil de usar é administrar um bot na sua instância Mastodon que pode ser interagido com para registrar contas através do API Ejabberd. Você pode achar o software do bot necessário aqui. Esse bot também tem outras funcionalidades boas para obter detalhes da Ejabberd, então pode valer a pena administrar um, mesmo que outro método de integração de contas seja usado.
Através do LDAP
Se você está configurando uma nova instância Mastodon, você também pode considerar administrar as contas através de uma base dados LDAP separada como é explicado na documentação oficial do Mastodon aqui. Por gentileza consulte o nosso tutorial dedicado ao LDAP para a parte do servidor XMPP.
Prosody
Você pode ser capaz de adaptar a integração Prosody Sharkey, ou pode usar a nova função de passagem Oauth2 explicada abaixo.
Integração de um servidor Prosody com Mastodon pode ser feito através do OAuth2. O novo módulo mod_auth_oauth_external é necessário para isso (e ele requer uma build nightly recente do Prosody).
Primeiro uma nova aplicação deve ser registrada do lado Mastodon. Isso pode
ser feito em Mastodon → Configurações → Desenvolvimento → Nova
aplicação. Redirecionar URI não importa. Prosody precisa do escopo
read:accounts, nada mais.
Daí estas linhas precisam ser adicionadas à configuração do 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"
Agora pessoas podem fazer login com este nome de usuário:
email\40example.com@xmpp.example.org, que é composto do endereço de email
que elas estão registradas com no servidor Mastodon (com o @ escapado
como \40) e o domínio do servidor XMPP atrás do segundo
@. Esperamos que esse nome de login complexo possa ser simplificado no
futuro.