Jitsi Meet JWT token авторизация в Debian 10 buster

Main

Оценка: 98.5% - 4 Голосов

Общая

Настройка авторизации по 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 активирован

View the embedded image gallery online at:
https://itcrowd.top/jitsi-jwt#sigProId8bcc722560

С этого момента при создании комнаты для общения система будет требовать авторизации, но главная страница будет по прежнему доступна.

View the embedded image gallery online at:
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),
<секрте>
)

View the embedded image gallery online at:
https://itcrowd.top/jitsi-jwt#sigProId24cf7855d6

 

Полученный токен необходимо ввести в адресную строку

ваш_домен.com/<имя_комнаты>?jwt=<полученный_токен>

 

Лог ошибок расположен тут:

/var/log/prosody.log

 

Добавить комментарий


Logo