Я следую этим:
- https://www.process-one.net/blog/ejabberd-19-08/
- https://docs.ejabberd.im/admin/configuration/authentication/#jwt-authentication
и создали секретный ключ, как показано ниже, используя https://mkjwk.org/, чтобы соответствовать примеру в первом URL выше:
Согласно https://auth0.com/blog/navigating-rs256-and-jwks/ потому что это тип HS:
«Проще говоря, HS256 должен делиться секретом с любым клиентом или API, который хочет проверить JWT».
Поэтому я наивно предполагал использовать «k» в качестве секрета для подписи JWT на сервере, выдающем JWT для использования в поле пароля любого клиента XMPP (stanza.io и pidgin на рабочем столе).
Что я неправильно понимаю? Я подтвердил, что ejabberd запускается правильно (через ejabberdctl live и loglevel 4):
auth_method: [jwt, ldap]
jwt_key: /opt/ejabberd/conf/secret.jwk
и что я все еще могу аутентифицироваться с помощью пароля на нашем сервере каталогов, но не могу с помощью JWT. Я не думаю, что генерирую его правильно, потому что я просто подписываю его как обычный общий ключ JWT.
Спасибо, Гэвин.