【发布时间】:2020-08-12 21:18:30
【问题描述】:
我正在关注这些:
- https://www.process-one.net/blog/ejabberd-19-08/
- https://docs.ejabberd.im/admin/configuration/authentication/#jwt-authentication
并使用https://mkjwk.org/ 创建了一个如下所示的secret.key 以匹配上面第一个URL 中的示例:
根据https://auth0.com/blog/navigating-rs256-and-jwks/,因为这是HS类型:
“简单地说,HS256 必须与任何客户端或 API 共享一个秘密 想要验证 JWT”
所以我天真地假设在服务器上使用“k”作为密钥来签署 JWT,以便在任何 XMPP 客户端(桌面上的 stanza.io 和 pidgin)的密码字段中使用 JWT。
我误会了什么?我已经确认 ejabberd 正确启动(通过 ejabberdctl live 和 loglevel 4):
auth_method: [jwt, ldap]
jwt_key: /opt/ejabberd/conf/secret.jwk
并且我仍然可以在我们的目录服务器中使用密码进行身份验证,但我不能使用 JWT。我认为我没有正确生成它,因为我只是像普通共享密钥 JWT 一样对其进行签名。
谢谢, 加文。
【问题讨论】:
-
有没有人使用 JWK 中的共享密钥生成 JWT?他们可以用任何语言向我指出一些文档?不关心它是什么语言:-)
标签: jwt ejabberd jwk ejabberd-auth