Как я могу реализовать плагин jwt token prosody на моем собственном сервере Jitsi Docker для моего приложения Android?

#java #android #docker #jwt #jitsi-meet

#java #Android #docker #jwt #jitsi-знакомьтесь

Вопрос:

Я пытаюсь разработать приложение для Android, которое интегрирует Jitsi для видеоконференций. Обычно выбирается имя комнаты и создается комната. Однако любой, кто знает или угадывает название комнаты, может присоединиться к вызову. Чтобы предотвратить это, я хочу установить токен jwt для конференц-залов. Я нашел ссылку, которая объясняет процесс токена jwt для jitsi-meet.

Ссылка такая: https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md В этой ссылке я не понимаю о трех понятиях:

Ручная настройка плагина Измените конфигурацию просодии с помощью следующих трех шагов:

 1. Adjust plugin_paths to contain the path pointing to jitsi meet Prosody plugins location. That's where plugins are copied on jitsi-meet-token package install. This should be included in global config section(possibly at the beginning of your host config file).

plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }
Also optionally set the global settings for key authorization. Both these options default to the '*' parameter which means accept any issuer or audience string in incoming tokens

asap_accepted_issuers = { "jitsi", "some-other-issuer" }
asap_accepted_audiences = { "jitsi", "some-other-audience" }
2. Under you domain config change authentication to "token" and provide application ID, secret and optionally token lifetime:

VirtualHost "jitmeet.example.com"
    authentication = "token";
    app_id = "example_app_id";             -- application identifier
    app_secret = "example_app_secret";     -- application secret known only to your token
                                           -- generator and the plugin
    allow_empty_token = false;             -- tokens are verified only if they are supplied by the client
Alternately instead of using a shared secret you can set an asap_key_server to the base URL where valid/accepted public keys can be found by taking a sha256() of the 'kid' field in the JWT token header, and appending .pem to the end

VirtualHost "jitmeet.example.com"
    authentication = "token";
    app_id = "example_app_id";                                  -- application identifier
    asap_key_server = "https://keyserver.example.com/asap";     -- URL for public keyserver storing keys by kid
    allow_empty_token = false;                                  -- tokens are verified only if they are supplied
3. Enable room name token verification plugin in your MUC component config section:

Component "conference.jitmeet.example.com" "muc"
    modules_enabled = { "token_verification" }
  

В этих трех инструкциях слова «файл конфигурации хоста», «файл конфигурации домена» и «Раздел конфигурации компонента MUC». Что это такое? Я не знаю, где выполнить эти действия.

Ответ №1:

Я думаю, что мой ответ приходит немного поздно, но я стараюсь сделать то же самое, чтобы внести свой вклад 🙂

Если вы установили Jitsi «классическим» способом (без docker):

  • файл конфигурации хоста: /etc/prosody/prosody.cfg.lua
  • файл конфигурации домена: /etc/prosody/conf.d/<your_domain_name>.cfg.lua
  • Раздел конфигурации компонента MUC: всегда /etc/prosody/conf.d/<your_domain_name>.cfg.lua ищите раздел, который начинается с Component "conference.<your_domain_name>" "muc"

Надеюсь, вы разрешили свои сомнения 🙂