XMPP,Ejebberd 身份验证机制
Posted
技术标签:
【中文标题】XMPP,Ejebberd 身份验证机制【英文标题】:XMPP, Ejebberd auth-mechanism 【发布时间】:2021-08-16 11:28:27 【问题描述】:我想问一下是否有可能在 ejabberd 配置中强制使用身份验证机制。目前,ejabberd 服务器正在提供可用的身份验证机制列表。
在 ejabberd 日志中我们可以看到列表:
Send XML on stream = <<"<stream:features><mechanisms
xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism>
<mechanism>X-OAUTH2</mechanism><mechanism>SCRAM-SHA-1</mechanism>
</mechanisms><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
</stream:features>">>
一些用户(在我们的例子中是 CPE(路由器、机顶盒))能够使用 SCRAM-SHA,其中一些用户只能使用 PLAIN 方法等。
2021-07-20 14:42:09.763 [info]
<0.6716.0>@ejabberd_c2s:handle_auth_success:432 (tls|<0.6716.0>) Accepted
c2s SCRAM-SHA-1 authentication for acs01@test.ejabberd.com by sql backend
from 192.168.0.1
2021-07-20 14:42:31.765 [info]
<0.6721.0>@ejabberd_c2s:handle_auth_success:432 (tcp|<0.6721.0>) Accepted
c2s PLAIN authentication for 00b052101005@test.ejabberd.com by sql backend
from 88.229.19.19
2021-07-20 14:42:36.438 [info]
<0.6722.0>@ejabberd_c2s:handle_auth_success:432 (tcp|<0.6722.0>) Accepted
c2s SCRAM-SHA-1 authentication for 001565a36103@test.ejabberd.com by sql
backend from 103.217.240.30
是否可以强制 xmpp 服务器只提供一种方法?
【问题讨论】:
【参考方案1】:您可以使用以下方法禁用 SASL 机制 https://docs.ejabberd.im/admin/configuration/toplevel/#disable-sasl-mechanisms
对于其他方法,查看源代码它们会自动启用/禁用: https://github.com/processone/ejabberd/blob/8afc320aba7bdb51f7a76973be2d9cbf200c6310/src/ejabberd_c2s.erl#L376
当然,你可以简单的把你不想要的行删掉,重新编译安装。
【讨论】:
感谢您的回复,我在文档中完全忽略了这一点。以上是关于XMPP,Ejebberd 身份验证机制的主要内容,如果未能解决你的问题,请参考以下文章
Android XMPP 简单聊天:使用机制 PLAIN 登录错误 SASL 身份验证失败
Android异常SASL身份验证失败使用机制DIGEST-MD5