介绍

近年来,随着技术的进步,互联网上数据的安全性已经成为一个普遍关注的问题,随之而来的是隐私泄露的风险增加。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令牌

前往 https://jwt.io

您会找到三个部分 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 上的会议距离完全安全只有几个简单的步骤。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注