Jitsi Meetの機能カスタマイズ設定

前回構築した「Docker版Jitsi Meet」の一部機能をカスタマイズします。

といっても、Jitsi Meet はデフォルトのままで使いやすくなっており、ここでは以下のみ実施します。

  • ユーザー認証の追加

※今後、何か思いついたら追記します。

ユーザー認証の追加

Jitsi Meet は、デフォルトでは、誰でも会議室を作成し、オンライン会議ができます。
これを、会議室を作成するときの認証機能をつけて、部外者・第三者は会議室を作成できないようにします。

ここでは、ホストユーザーが会議室を作成するとき「のみ」認証が必要で、ゲストユーザー(他の参加者)は認証不要とする設定を行います。

※ゲストユーザーの認証設定については、後述します。

この設定は、以下などを参考にしました。

・Authentication – Jitsi Meet Handbook
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/#authentication

・Web会議システムのJitsiにユーザー認証を追加する
https://zenn.dev/kurayasu/articles/8505f370862959

Docker版Jitsi Meetの基本設定ファイル .env で以下のように設定します。

 $ cd ~/jitsi-meet/
 $ vim .env

#
# Authentication configuration (see handbook for details)
#

# Enable authentication (will ask for login and password to join the meeting)
#ENABLE_AUTH=1
ENABLE_AUTH=1

# Enable guest access (if authentication is enabled, this allows for users to be held in lobby until registered user lets them in)
#ENABLE_GUESTS=1
ENABLE_GUESTS=1

# Select authentication type: internal, jwt, ldap or matrix
#AUTH_TYPE=internal
AUTH_TYPE=internal

ENABLE_AUTO_LOGIN=1

※ENABLE_AUTO_LOGIN=1 とすることで、一度認証したホストユーザーは、(ブラウザを再起動しない限り)2度目以降はセッションタイムアウトまで認証不要となります。セッションタイムアウト時間は、JICOFO_AUTH_LIFETIME で秒単位で設定できます。(デフォルト値はわかりませんでした。)

コンテナの停止、起動で設定変更を反映します。

 $ docker compose stop

 $ docker compose -f docker-compose.yml up -d

今回は、認証ユーザー jitsiuser を作成するものとします。
これは、docker compose exec コマンドで prosody コンテナのターミナルに入り、prosodyctl コマンドで制御します。
prosodyは、XMPPリアルタイム通信監理を担っており、ユーザー認証機能もここに含みます。

 $ docker compose exec prosody /bin/bash

 # prosodyctl --config /config/prosody.cfg.lua register jitsiuser meet.jitsi

Enter new password:  // パスワードを入力
Retype new password:  // パスワードを再入力
usermanager         info        User account created: jitsiuser@meet.jitsi

exitコマンドで、prosodyコンテナのターミナルを抜けます。

 # exit

※認証ユーザー作成後にコンテナの再起動は不要です。

実際にユーザー認証を確認してみます。
Jitsi Meetトップページにアクセスし、会議室を作成し、「ミーティングに参加」をクリックすると、次のように、「ホストの到着を待っています」のウインドウが表示されます。

「私はホストです」をクリックすると、ユーザー認証ウインドウが表示されます。

先ほど設定したユーザー名とパスワードを入力すると、オンラインミーティングが開始されます。
(認証のユーザー名と、ミーティングの参加ユーザー名は無関係ですので、別の名前で問題ありません。)

会議室名が、ミーティングのURLパスとなります。

https://<ドメイン>/<会議室名>

ゲストユーザーの認証

ゲストユーザー(他の参加者)は、
https://<ドメイン>/<会議室名>
にアクセスすることで、ミーティングに参加できます。

先ほどの認証設定のままですと、ゲストユーザーは、認証なしでミーティングに参加できます。
つまり、ミーティングのURLがわかれば、部外者でもミーティングに参加できてしまいます。
この対策として、(システム設定ではなく)ホストユーザーが会議室を作成後、UIでゲストユーザー参加時のパスワードを設定することができます。

下部メニューの「詳細オプション(三点メニュー)」から「セキュリティオプション」を選択します。

「セキュリティオプション」のウインドウで、「パスワードを追加」から、ゲストユーザー参加時のパスワードを設定します。

ゲストユーザーは、ミーティングに参加する際に、以下のように、パスワード入力が求められます。

パスワードがあっていれば、ミーティングに追加されます。

なお、ホストユーザーのセキュリティオプション画面で「ロビーを有効」とした場合、ゲストユーザーがミーティングに参加すると、ホストユーザー側の画面に、以下のように、ゲストユーザーの参加を許可するかどうか確認するアラートが表示されます。

ここで、ホストユーザーが「許可」をクリックすると、ゲストユーザーがミーティングに追加されます。
便利そうな機能ですが、この場合、ゲストユーザーのパスワード認証を設定していても、ゲストユーザーはパスワード入力なしでミーティングに参加できてしまいます。
つまり、「ロビーモードでホストユーザーが許可」と「ゲストユーザーパスワード認証」は AND ではなく、OR で、どちらかでミーティングに参加できてしまいます。

ロビーモードの場合、ホストユーザーは、ゲストユーザーが入力したユーザー名のみで本当にミーティングに参加すべきメンバーかどうかの判断しなければならず、難しいのではないでしょうか。
どちらかというと、ロビーモードは無効にしたままで、ゲストユーザーのパスワード認証のみ追加したほうが安全なように思います。

※ミーティング中に、ホストユーザー側で、ゲストメンバーを強制的に切断させることは可能です(「追放」機能)。

認証ユーザーの確認

登録済みの認証ユーザーは、prosody コンテナ内のファイル名で確認できます。

※prosodyctlコマンドでは、プラグインを追加すれば確認できるようです。

 $ docker compose exec prosody /bin/bash

 # ls /config/data/meet%2ejitsi/accounts/

jitsiuser.dat

このディレクトリに <ユーザー名>.dat ファイルが存在するので、これで登録したユーザー名がわかります。

認証ユーザーの削除

認証ユーザーを追加したときと同様、prosody コンテナのターミナルで、prosodyctl コマンドを使用して削除します。

 $ docker compose exec prosody /bin/bash

 # prosodyctl --config /config/prosody.cfg.lua unregister jitsiuser meet.jitsi

Jitsi Meetの機能カスタマイズ設定としては、現時点では以上となります。


Jitsi Meetについて書いた記事まとめ。

タイトルとURLをコピーしました