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
- Просмотров: 15002