2015-06-15 2 views
4

В настоящее время я смотрю, как я могу использовать свой токен oauth2 из нашего собственного приложения для аутентификации с помощью ejabberd.Поддержка аутентификации oauth2 в ejabberd

Есть ли какие-либо решения, позволяющие мне аутентифицироваться в нашем собственном продукте, а затем использовать этот токен Oauth2 JWT для аутентификации против ejabberd.

Или, может быть, другой вопрос, как синхронизировать пользователей ejabberd с пользователями моих приложений.

Я ищу один знак для работы для наших пользователей.

Я видел предложения обновить пароль пользователей ejabberd с помощью токена, сгенерированного при каждом входе в систему. а затем просто войдите в ejabberd, используя имя пользователя и токен. Это, однако, звучит больше, чем хак, а затем реальное решение.

У кого-нибудь есть опыт? У меня нет опыта с Эрланом. Было бы здорово, если бы кто-то мог указать мне в правильном направлении.

ответ

3

Я вижу два основных правильных путей реализации маркеров проверки подлинности на основе для ejabberd:

  • ejabberd модуль пользовательского аутентификации: Вы можете написать модуль аутентификации для пользовательских ejabberd, используя ejabberd крючок API. Например, вы можете использовать один из существующих Erlang ejabberd_auth*.erl.

  • Используйте вклад, который позволяет пройти аутентификацию против HTTP-сервера и выполнить проверку маркера в этом бэкэнд. Это устранит необходимость написания кода Erlang. Такой модуль доступен на ProcessOne Github: ejabberd_auth_http.

+0

Спасибо ... Собираюсь посмотреть на это, чтобы увидеть, если мы можем получить что-то работает ... –

+0

@ МАРКО-Franssen, вы были в состоянии заставить его работать так или иначе? Я также ищу решение аналогичной проблемы –

+0

Мы еще не инвестировали время, чтобы сделать это. Кажется, что пользовательский модуль является лучшим вариантом. Вероятно, мы будем использовать модуль ejabberd_auth_http для установки Oauth2 на этом модуле. OAuth 2, конечно, построен поверх протокола HTTP. –

Смежные вопросы