JWT аутентификация для jitsi в Rocket.Chat

Открытый PR находится тут. Здесь опишу для чего и кому это может понадобиться.

Rocket Chat (RC) может выступить в роли отличного корпоративного мессенджера для организации команд различного масштаба и классной его особенностью является возможность проведения видеоконференции. Для обеспечения этой возможности команда разработчиков интегрировала другой, не менее прекрасный, open source продукт jitsi в свое приложение.

Jitsi (состоящий из нескольких компонентов), в свою очередь, может устанавливаться на свои сервера (быстрая/расширенная установка) для организации видеоконференции, как самостоятельная инфраструктура и доступ в комнаты на своем сервере можно сделать закрытым с помощью, либо общего логин/пароля, либо jwt auth, но по умолчанию доступ открыт всем. Чтобы активировать jwt auth достаточно реализовать такую возможность. Иными словами, надо установить специальный плагин, который ставится поверх инфраструктуры jitsi, в ходе конфигурирования которого выдается секретный ключ и идентификатор, который можно использовать для генерации токенов доступа из любого клиентского приложения для внешней авторизации.

А в RC по умолчанию пользователи подключаются к публичному серверу jitsi, если в административных настройках RC не указан иной домен, отличный от meet.jit.si. В случае, если указан (например ваш сервер jitsi), то подключение будет к вашему серверу видеоконференции, но без какой бы то ни было аутентификации, то есть открыто.

После реализации кода из PR, имея собственный сервер видеоконференции, сконфигурированный для jwt аутентификации, в админке RC, вы сможете указать данный домен jitsi, секретный ключ и идентификатор (которые были получены в ходе настройки своего jitsi сервера) и участвовать в закрытых видеоконференциях, полностью находящимся в вашем распоряжении.

Схема работает следующим образом: в момент создания конференции для каждого пользователя генерируется токен JWT, как описано в RFC7519 и передается серверу jitsi и после успешной расшифровки токена (для чего, собственно, и нужен секрет) представляет доступ в комнату, иначе нет.



Похожие заметки:

Звонки в каналах Rocket.Chat

Звуковое сопровождение, возникающее после создания видеоконференции jitsi, в канале rocket chat у всех участников, которые в нем состоят

Открыть здесь

Просмотр PDF в Rocket.Chat

Реализация полнофункционального просмотра pdf файлов в RocketChat и RocketChatElectron

Открыть здесь


Перед тем как писать комментарии, рекомендую ознакомиться:

Markdown синтаксис »

Оформление кода »

Нужна аватарка »

Комментарии