Jitsi Meet JWT token авторизация в Debian 10 buster
Общая
Настройка авторизации по JWT токину в Debian 10 buster
Проблема установки пакета авторизации jitsi-meet-tokens
заключается в том, что пакет libssl1.0-dev
в Debian 10 более недоступен, он заменен на libssl-dev
с которым не умеет работать luacrypto
устанавливаемый в процессе установки jitsi-meet-tokens.
Выход из данной ситуации следующий
Установка зависимостей
apt update apt install git cmake luarocks libssl-dev liblua5.2
Установка дополнительных пакетов
luarocks install basexx
Далее создаем файл luajwtjitsi-1.3-7.rockspec
nano luajwtjitsi-1.3-7.rockspec
И помещаем в него следующее:
package = "luajwtjitsi" version = "1.3-7" source = { -- Use fork from ASolomatin which uses luaossl url = "git://github.com/6bIBAET/luajwt/", tag = "replace_luacrypto" } description = { summary = "JSON Web Tokens for Lua", detailed = "Very fast and compatible with pyjwt, php-jwt, ruby-jwt, node-jwt-simple and others", homepage = "https://github.com/jitsi/luajwt/", license = "MIT <http://opensource.org/licenses/MIT>" } dependencies = { -- Prosody uses lua 5.2 "lua >= 5.2", "luaossl >= 20190731-0", -- Use exact version 2.1, see https://github.com/mpx/lua-cjson/issues/56 "lua-cjson = 2.1.0", "lbase64 >= 20120807-3" } build = { type = "builtin", modules = { luajwtjitsi = "luajwtjitsi.lua" } }
Устанавливаем созданный файл
luarocks install luajwtjitsi-1.3-7.rockspec
Далее устанавливаем jitsi-meet-tokens
В момент установки потребуется ввести app_id
приложения и секрет
- для генерации случайной строки можно использовать следующую команду
hexdump -n 16 -e '4/4 "%08X" 1 "\n"' /dev/urandom
Эти данные необходимо запомнить.
В момент установки jitsi-meet-tokens система попробует установить luacrypto но не сможет, так как luacrypto не умеет работать с пакетом libssl-dev.
apt install jitsi-meet-tokens
После установки откроем файл <ваш_домен>.cfg.lua
в папке /etc/prosody/conf.avail
где увидим введенные ID
и секрет
. Так же необходимо убедиться, что модуль token_verification
активирован
https://itcrowd.top/jitsi-jwt#sigProId8bcc722560
С этого момента при создании комнаты для общения система будет требовать авторизации, но главная страница будет по прежнему доступна.
https://itcrowd.top/jitsi-jwt#sigProId0c7c04fd49
В приложение, использующее сервер Jitsi meet, необходимо ввести созданные app_id
и секрет
.
Проверка работы токена.
Создать необходимый токен используя данные app_id
и секрет
поможет ресурс https://jwt.io/
Необходимо заполнить следующие данные:
HEADER:ALGORITHM & TOKEN TYPE { "alg": "HS256", "typ": "JWT" } PAYLOAD:DATA { "aud": "jitsi", "iss": "<ваш app_id>", "sub": "<ваш_домен>", "room": "*" } VERIFY SIGNATURE HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), <секрте> )
https://itcrowd.top/jitsi-jwt#sigProId24cf7855d6
Полученный токен необходимо ввести в адресную строку
ваш_домен.com/<имя_комнаты>?jwt=<полученный_токен>
Лог ошибок расположен тут:
/var/log/prosody.log
- Просмотров: 12985