在宅ワーク、テレワーク、リモートワークという言葉をよく聞くようになりました。
その結果、Web会議システムの需要も増えています。
この流れがさらに進むと、オープンソースのJitsi Meetが利用されることも多くなるでしょう。
Jitsi Meetのインストールに関しては、次の記事で解説しています。
Jitsi Meetのインストールがまだの方は、参考にしてください。
ただし、Jitsi Meetはデフォルトでは一つ問題があります。
誰でも利用ができてしまうのです。
そもそも、ユーザー登録すら不要で利用できてしまいます。
そこでJitsi Meetにユーザー認証を導入する必要があります。
この記事では、その手順を公式サイトをベースにまとめています。
本記事の内容
- Prosodyでの権限管理
- 設定ファイルの変更【Prosody】
- ユーザー登録【Prosody】
- Jitsi Meetにおけるユーザー認証の確認
それでは、上記に沿って解説を行っていきます。
Prosodyでの権限管理
Prosodyについて
Jitsi Meetでユーザー認証を導入するには、Prosodyを理解する必要があります。
Prosodyの詳細まで理解する必要はありませんが、その役割は知っておきましょう。
Prosodyとは、XMPP通信サーバーです。
XMPPとは、チャット(リアルタイム通信)を行うためのオープンソースのプロトコルとなります。
つまり、Prosodyはリアルタイム通信(ユーザー管理を含め)を行うための仕組みです。
リアルタイム通信を行うための部品と言っていいでしょう。
よって、Prosodyを利用すれば、リアルタイム通信部分は作り込む必要がありません。
そして、Jitsi MeetはProsodyを用いて開発されています。
そのため、Jitsi Meetの権限管理は、Prosodyに依存しているのです。
以上より、Prosodyの役割は理解できたと思います。
Prosodyの詳細を知りたい方は、Googleで検索して調べてみてください。
権限管理について
今回導入する権限管理は、セキュリティ高の対応です。
デフォルトでは、フリーダムな状態です。
誰でも、Jitsi Meetで会議室(チャットルーム)を作成できます。
それにURLさえわかれば、誰でも会議室に参加できてしまいます。
そのため、セキュリティ的には問題が残ると言えます。
このフリーダムな状況をクローズドな状況に変更します。
認められたユーザーしかJitsi Meetを利用できないようにしていきます。
- 認められたユーザーのみ会議室を作成できる
- 認められたユーザーのみ会議室に参加できる
ゲスト参加などは認めないということです。
社内などで使う場合は、このケースになるはず。
ゲスト参加は認めたいというケースがあるなら、その情報を検索してみてください。
個人的には、ゲスト対応時はZoomの利用がベストだと感じます。
設定ファイルの変更【Prosody】
実際に作業をしていきます。
まずは、設定の変更ですね。
設定ファイルは以下。
/etc/prosody/conf.avail/[your-hostname].cfg.lua
ドメインが、meet.example.comとします。
その場合は、 /etc/prosody/conf.avail/meet.example.com.cfg.luaということです。
現状は、24行目付近は次のような記述のはずです。
VirtualHost "meet.example.com" -- enabled = false -- Remove this line to enable this host authentication = "anonymous"
次のように変更します。
VirtualHost "meet.example.com" -- enabled = false -- Remove this line to enable this host authentication = "internal_hashed"
anonymous ⇒ internal_hashed
この変更です。
以上にて、設定ファイルの変更は終わりです。
ユーザー登録【Prosody】
次は、ユーザーの登録です。
クローズドな環境にしていく以上、予めユーザーを登録してきます。
この場合もProsodyの機能を使います。
以下のコマンドでユーザー登録が可能となります。
$ sudo prosodyctl register <username> meet.example.com <password>
ここまで完了したら、設定を反映させましょう。
Jitsi Meetに関わるものを一通り再起動します。
$ sudo service jicofo restart $ sudo service prosody restart $ sudo service nginx restart
Jitsi Meetにおけるユーザー認証の確認
トップページ(ランディングページ)にアクセスします。
会議室「myroom」と入れて、「GO」ボタンをクリック。
そうすると、以下の画面が表示されます。
prosodyctlコマンドで作成したユーザーの情報を入力して、「Ok」ボタンをクリック。
会議室が作成されました。
登録されたユーザーしか会議室を作成できないことを確認できました。
会議室の作成において、ユーザー認証の導入が成功です。
なお、今回はゲスト参加を認めない権限管理にしています。
そのため、「myroom」のURLを知っていても会議室への参加はできません。
「myroom」のURLへアクセスしても、会議室作成時と同じように以下のような画面になります。
これでセキュリティがかなり上がりましたね。
おそらく、Jitsi Meetは社内などの閉じた環境(決して社内LANという意味ではない)で使うことが多いはずです。
そうであれば、デフォルトでこのセキュリティレベルを確保してくれればと感じます。
でも、オープンソースであるため、望むものに自分で変えていけばいいだけですね。
やっぱり、オープンソースは素晴らしいです。
最後は、オープンソースの賛美で終わってしまいました。