JitsiMeet WEB会議作成をユーザ制限する
Jitsi Meetを導入しましたが、WEB会議作成できるユーザを制限したい。と思い調べたところありました。
設定している条件
OS:Ubuntu20.04
ドメイン名:change.domain
権限:Root権限
参考URL
https://jitsi-club.gitlab.io/jitsi-self-hosting/en/01-deployment-howto/01-authentication/
https://virment.com/how-to-configure-user-auth-for-jitsi/
https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04
https://tarufu.info/jitsi_meet_password_require/
変更するファイル名
1つ目:/etc/prosody/conf.avail/change.domain.cfg.lua 👈編集
2つ目:/etc/jitsi/meet/change.domain-config.js 👈編集
3つ目:/etc/jitsi/jicofo/sip-communicator.properties 👈新規作成(空ファイルに追記)
3つのファイルを編集、新規作成します。
1つ目:/etc/prosody/conf.avail/change.domain.cfg.lua
1つ目の編集するファイルは下記にあります。
cd /etc/prosody/conf.avail/ 👈フォルダを開く
次に編集するファイル名の確認を行います。
ls 👈フォルダにあるファイル名を確認
実行するとこのようになります。
root@host名:~# cd /etc/prosody/conf.avail/ 👈フォルダを開く
root@host名:/etc/prosody/conf.avail#
root@host名:/etc/prosody/conf.avail# ls 👈フォルダにあるファイル名を確認
change.domain.cfg.lua example.com.cfg.lua localhost.cfg.lua 👈ファイル名確認
root@host名:/etc/prosody/conf.avail#
編集するファイルは「change.domain.cfg.lua」になるので編集を始めましょう。
nano change.domain.cfg.lua 👈ファイルを開く
まずは[anonymous]を削除し、[internal_hashed]を追記する。もしくは修正する。
VirtualHost "change.domain"
-- enabled = false -- Remove this line to enable this host
authentication = "anonymous" 👈ここを削除する
authentication = "internal_plain" 👈ここを追加
※authenticationの設定については下記をご参照ください
そして下記を追加する。
VirtualHost "guest.change.domain" 👈guest.(設定しているドメイン)にする
authentication = "anonymous" 👈追加
c2s_require_encryption = false 👈追加
編集ファイルを見るとこうなります。
VirtualHost "change.domain"
authentication = "internal_plain" 👈[plain]にする
-- enabled = false -- Remove this line to enable this host
-- Properties below are modified by jitsi-meet-tokens package config
-- and authentication above is switched to "token"
c2s_require_encryption = false 👈VirtualHost”guest.changedomain”へ移動↓↓↓↓↓↓↓↓
lobby_muc = "lobby.change.domain"
breakout_rooms_muc = "breakout.change.domain"
main_muc = "conference.change.domain"
-- muc_lobby_whitelist = { "recorder.change.domain" } -- Here we can whitelist jibri to enter lobby enabled rooms
VirtualHost "guest.change.domain" 👈追加
authentication = "anonymous" 👈追加
c2s_require_encryption = false 👈追加
Component "conference.change.domain" "muc"
restrict_room_creation = true
storage = "memory"
modules_enabled = {
Saveします。(Ctrl+X) → (Y)
2つ目:/etc/jitsi/meet/change.domain-config.js
次は違うファイルを編集します。
/etc/jitsi/meet/your_change.domain.js 👈編集するファイル名
cd /etc/jitsi/meet/ 👈フォルダを開きます
ls 👈ファイルの確認
ファイル名を確認する
change.domain-config.js change.domain.crt change.domain.key
編集するファイルを開く。
nano change.domain-config.js 👈ファイルを開く
実行するとこのようになります。
root@host名:~#
root@host名:~# cd /etc/jitsi/meet/
root@host名:/etc/jitsi/meet# ls
change.domain-config.js change.domain.crt change.domain.key
root@host名:/etc/jitsi/meet#nano change.domain-config.js
修正していきます。1行だけの追加です。
/* eslint-disable no-unused-vars, no-var */ var config = { // Connection // hosts: { // XMPP domain. domain: 'change.domain', // When using authentication, domain for guest users. // anonymousdomain: 'guest.example.com', anonymousdomain: 'guest.change.domain', 👈追加する // Domain for authenticated users. Defaults to <domain>. // authdomain: 'change.domain', // Focus component domain. Defaults to focus.<domain>. // focus: 'focus.connectteam.online', // XMPP MUC domain. FIXME: use XEP-0030 to discover it. muc: 'conference.<!--# echo var="subdomain" default="" -->change.domain' }, // BOSH URL. FIXME: use XEP-0156 to discover it. bosh: '//change.domain/http-bind', // Websocket URL // websocket: 'wss://change.domain/xmpp-websocket',
保存します。(Ctrl+X) → (Y)
3つ目:/etc/jitsi/jicofo/sip-communicator.properties
フォルダへ移動します。
cd /etc/jitsi/jicofocd/ 👈フォルダを開きます
ファイルを確認します。
ls 👈ファイルの確認
下記のようになります。「sip-communicator.properties」はありません!!
root@host名:/etc/jitsi/jicofo# ls
config jicofo.conf logging.properties
root@host名:/etc/jitsi/jicofo#
フォルダ内に新規で「sip-communicator.properties」を作成します。
root@host名:/etc/jitsi/jicofo# nano sip-communicator.properties
何も書かれていない空ファイルが新規でできます。
これに下記を追加。
org.jitsi.jicofo.auth.URL=XMPP:chane.domain
保存します。(Ctrl+X) → (Y)
チャットルームを作成するユーザとパスワードを設定する
ホストとなるユーザとパスを設定します。
prosodyctl register ユーザ名 change.domain パスワード
参考として
ユーザ名:jitsiuser
パスワード:3bjojkoj@whofahdn
を作成するには下記となります。
prosodyctl register jitsiuser change.domain 3bjojkoj@whofahdn
これでホストになります。
最後にサービスを再起動して、確認しましょう。
sudo service jicofo restart
sudo service prosody restart
sudo service nginx restart
sudo service jitsi-videobridge2 restart
ログイン確認
まずはWEB会議を新規名で作成し、「ミーティングを開始」を押してみました。きちんと確認されました。
「私はホストです」を押すと認証画面が出てきます。
作成したユーザ名と適当なパスワードでログインを試してみました。
「ユーザネームまたはパスワードが違います」と出て利用できません。OK!
次はユーザ名を適当にし、パスワードを登録したものにしました。
「ユーザネームまたはパスワードが違います」と出て利用できません。OK!
最後に登録した正しいユーザ名とパスワードでログインしました!!!