前回構築した「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について書いた記事まとめ。






