【问题标题】:oauth2 authentication support in ejabberdejabberd 中的 oauth2 身份验证支持
【发布时间】:2015-08-31 01:54:21
【问题描述】:

我目前正在研究如何使用我们自己的应用程序中的 oauth2 令牌对 ejabberd 进行身份验证。

是否有任何可用的解决方案使我能够在我们自己的产品中进行身份验证,然后使用该 oauth2 JWT 令牌对 ejabberd 进行身份验证。

或者可能是一个不同的问题,我如何将 ejabberd 用户与我自己的应用程序用户同步。

我正在为我们的用户寻找一种单点登录方式。

我看到了使用每次登录时生成的令牌更新 ejabberd 用户密码的建议。然后只需使用用户名和令牌登录到 ejabberd。然而,这听起来不仅仅是一个黑客,而是一个真正的解决方案。

有人有这方面的经验吗?我对 Erlang 没有任何经验。如果有人能指出我正确的方向,那就太好了。

【问题讨论】:

    标签: oauth-2.0 erlang xmpp ejabberd


    【解决方案1】:

    我看到了为 ejabberd 实现基于令牌的身份验证的两种主要正确方法:

    • ejabberd 自定义身份验证模块:您可以使用 ejabberd 钩子 API 为 ejabberd 编写自定义身份验证模块。您可以使用现有的 Erlang ejabberd_auth*.erl 之一作为示例。

    • 使用允许对 HTTP 后端进行身份验证并在该后端执行令牌检查的贡献。这将消除编写 Erlang 代码的需要。此类模块在 ProcessOne Github 上可用:ejabberd_auth_http

    【讨论】:

    • @marco-franssen,无论哪种方式,你都能让它工作吗?我也在寻找类似问题的解决方案
    • 我们还没有花时间这样做。自定义模块似乎是最好的选择。可能我们将使用 ejabberd_auth_http 模块将 Oauth2 基于此模块。 OAuth 2 当然是建立在 HTTP 协议之上的。
    【解决方案2】:

    最近遇到同样的问题,决定写一个简单的ejabberd模块:

    https://github.com/yokomizor/ejabberd-auth-jwt

    适用于 ejabberd 18,并支持 HMAC 和 RSA。我在一个小型主机上使用它,但目前看起来很稳定。

    我还发现另一个模块做同样的事情,但有点过时:https://github.com/ParamountVentures/ejabberd-auth-jwt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-25
      • 2017-01-30
      • 2021-12-13
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多