介绍
近年来,随着技术的进步,互联网上数据的安全性已经成为一个普遍关注的问题,随之而来的是隐私泄露的风险增加。Jitsi是一个开源视频会议平台,因其安全措施而闻名,经常被用来进行敏感性质的会议。这得益于其实施的JWT集成。本文旨在分解您可以采取的步骤,在您自己的服务器上集成JWT到Jitsi。
什么是JWT以及为什么要将其与Jitsi一起使用
JSON Web Token(在主流中被称为JWT)是一种紧凑、URL安全的方式,用于表示两方之间声明的传输。它通常用于认证和授权目的。JWT可以用来监控对Jitsi视频会议的访问,以及实施自定义角色和权限。它还强制对用户进行身份验证,以实现更流畅和安全的体验。你可以进行以下步骤,以将JWT与Jitsi集成:
如何将JWT与Jitsi集成
为了方便起见,在本博客中将使用 “meet.icloudportal.com” 作为域名。请将其替换为您的域名,并相应地进行更改。
1. 在路径 /etc/prosody/conf.d/meet.icloudportal.com.cfg.lua 中修改 Prosody 配置文件,添加 app_id 和 app_secret,并保存这些更改:
VirtualHost "meet.icloudportal.com"
authentication = "token";
app_id = "your_app_id";
app_secret = "your_app_secret";
allow_empty_token = false;
2. 在路径 /etc/jitsi/jicofo/jicofo.conf 中修改 Jicofo 配置文件:
authentication: {
enabled: true
type: JWT
login-url: meet.icloudportal.com
}
3. 重新启动服务
sudo systemctl restart prosody.service
sudo systemctl restart jicofo.service
生成一个JWT令牌
您会找到三个部分 HEADER、PAYLOAD 和 VERIFY SIGNATURE
HEADER:包括算法和令牌类型。保持原样。
PAYLOAD:包含有关实体和其他元数据的信息。以下是一个示例负载。
{
"context": {
"user": {
"avatar": "your_client_avatar_url",
"name": "your_client_name",
"email": "your_client_email"
}
},
"moderator": true,
"aud": "jitsi",
"iss": "your_app_id",
"sub": "meet.icloudportal.com",
"room": "*",
"nbf": 1691498815,
"exp": 1692498815
}
客户端数据:
- avatar- 添加客户端头像的 URL
- name – 客户端的名称
- email – 客户端的电子邮件
应用程序数据:
- iss – 您的 app_id(添加在 Prosody 配置文件中)
- sub – 您的 XMPP 域(例如:jitsi-meet.example.com)
- exp – 您的令牌到期日期,使用 Unix 时间戳标准
- aud – 指定令牌的预期接收者(受众)。
- nbf – 令牌在此时间之前无效,使用 Unix 时间戳标准。
- room – 令牌允许的房间(’*’ 将使此令牌适用于所有房间)
- moderator – 是否授予用户管理员权限
VERIFY SIGNATURE:在这里添加您的 app_secret
测试会议
从 https://jwt.io 复制生成的令牌(TOKEN)
现在通过将生成的 TOKEN 与会议 URL 一起发送来在 Jitsi Meet 上发起会议:https://meet.icloudportal.com/roomName?jwt=TOKEN
结论
这个过程简单明了,为您在 Jitsi 上的会议增加了一层安全性,提高了真实性,同时确保了会议中共享数据的安全性。JWT 是市场上一些最优秀的安全工具之一。其他可集成到 Jitsi 中的安全工具包括安全域、单点登录和LDAP。您在 Jitsi 上的会议距离完全安全只有几个简单的步骤。