Jitsi MeetをLDAP認証で使えるようにする

サーバーをインターネットに向けて公開している。現在はProsodyで利用するユーザーを追加して、IDとパスワードで認証しているが、これをActive Drectoryによるユーザー認証に変更したい。





Jitsi Meetでユーザー認証を担当するのはProsody。これをLDAP認証に変更すれば良さそう。

ウチではSamba AD DCが動いてドメイン管理をしている。まだSSOが実現できていないが、LDAP認証でそれっぽいサービス(Kopano, Alfresco等)を運用しており、LDAP認証が動作する環境になっている。実際にはLDAPSか。

そして、いま、この記事を書くためにテスト環境を作った。
Ubuntu 18.04で、Apache+Jitsi Meetな環境を作り、Prosodyによるユーザー認証も実装済み

やること。

ProsodyでLDAP認証の設定

ほぼ、ここに書いてあることを実行。
Github / Jitsi / LDAP Authentication

LDAP認証に必要なモジュールをインストール

関連するモジュールが2つあるらしいので、これをインストール。

$ sudo apt install prosody-modules lua-ldap

 

認証に関する設定ファイルを作る

LDAP認証に関する設定を書く。このファイルは新規に作成する。
/etc/prosody/conf.avail/ldap.cfg.lua
authentication = 'ldap2'

ldap = {
-- 連携するSamba AD DCと接続条件を指定
hostname = 'addc.hogeserver.hogeddns.jp',
use_tls = true,
-- ユーザー認証に使うユーザーを指定(専用のユーザーを作ったほうが良さそう)
bind_dn = 'cn=administrator,cn=Users,dc=hogeserver,dc=hogeddns,dc=jp',
bind_password = 'secret',
-- 利用可能なユーザーをどうフィルタするか指定
user = {
usernamefield = 'samAccountName',
basedn = 'cn=Users,dc=hogeserver,dc=hogeddns,dc=jp',
filter = 'objectClass=user',
  namefield = 'givenName',
},
}

※恐らく、bind_dnやbasednの設定値はActive Directoryの場合と違っていると思われる。

独自の項目をユーザーに持たせて、Jitsi Meetを利用できるユーザーを制限することができそう。

また、Jitsi Meetを使える人!というグループを作って管理することもできそうな気がする。試していないのでなんとも言えないが、この情報でいけるかと。
Github / mod_lib_ldap

ここに良いサンプルになりそうなものがある。
Github / getkaiwa / kaiwa-server

 

こうして作成した設定を有効化させる。実際には、availディレクトリにあるファイルのシンボリックリンクをconf.dに作成する。

$ sudo ln -sf /etc/prosody/conf.avail/ldap.cfg.lua /etc/prosody/conf.d/

 

Prosodyの基本動作を一部変更

BOSH接続を許可する。最終行にあるincludeの前に書くべきらしい。
/etc/prosody/prosody.cfg.lua
--  component_secret = "password"

consider_bosh_secure = true

------ Additional config files ------

 

Jitsi Meetの認証方法の変更

Jitsi Meetの認証設定をLDAPに変更する。
/etc/prosody/conf.abail/temp.hogeserver.hogeddns.jp.cfg.lua

--authentication = "anonymous"
--authentication = "internal_plain" ← Prosdyによるユーザー管理をやめる
authentication = "ldap2"
-- Properties below are modified by jitsi-meet-tokens package config

VirtualHost "guest.temp.hogeserver.hogeddns.jp" ←これはProsodyによるユーザー管理と同じ
authentication = "anonymous"
c2s_require_encryption = false

 

その他の設定(おさらい)

1年前に書いた記事でテスト環境を構築しているので、既に設定はしてあるのだが、だからといって「そっち見て!」というのはちょっと不親切。いつか自分も困りそう。

ということで、JicofoとVideobridgeの設定についてもこちらに書いてみる。

Jicofoの設定

1年前に記事を書いたときには空ファイルだったが、今は1行だけ設定が書かれている。ここにProsodyがインストールさているホストを設定する。標準のインストールをしているので、同一サーバーにある。

/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.temp.hogeserver.hogeddns.jp
org.jitsi.jicofo.auth.URL=XMPP:temp.hogeserver.hogeddns.jp

 

Meetの設定

ゲストユーザーの認証で使うドメインを指定する。

/etc/jitsi/meet/temp.hogeserver.hogeddns.jp-config.js
var config = {
・・・
    hosts: {
        // XMPP domain.
        domain: 'temp.hogeserver.hogeddns.jp',
// When using authentication, domain for guest users.
anonymousdomain: 'guest.temp.hogeserver.hogeddns.jp',

guest. がないとマイク・カメラが選択できない症状が現れる。
※最後のカンマを忘れずに。

 

設定を反映させる

だいぶわかってきた気がするのが、以下で関連するサービスがすべて再起動できるっぽいこと。

$ sudo systemctl restart apache2 prosody jicofo jitsi-videobridge2

※apache2のところは、nginxかもしれない。

なお、prosodyについてはreloadコマンドも用意されているが、試した感じうまく働いているようには思えなかった。

設定を反映させたら、接続、ログインしてみる。

起きたこと

ログインユーザーのドメイン名がちょっと違う

ログイン時に rohhie が使える。しかし、ログインユーザーは本来
rohhie@hogeserver.hogeddns.jp であるべきところ、
rohhie@temp.hogeserver.hogeddns.jp になっている。

設定→プロフィールで見ると、ログインアカウントが違っていることがわかる。

このことは、ユーザーに混乱を与えるかもしれないので修正したかったが、設定を変えると接続ができなくなるなど、ちょっと困ったことになるので諦めた。

Androidアプリはオレオレ証明書に対応していない

テスト用にAndroidデバイスを使おうとしたけれど、自己署名証明書だと危険と見なされてアクセスができない。オレオレCAの証明書を端末にインストールしてもだめだった。

Jitsi Community / How can I trust self signed SSL in Android Jitsi?

どうしてもテストがしたかったので、Chromeでアクセスし、PC版サイトにチェックを入れてアクセスした。

Logicool QCam Pro 4000がとうとう故障?

Windows 10のカメラでは動いていたようだった。UbuntuのCheeseでも動いていたようだった。しかし、Jitsi Meetで動作させるとカメラの画像が取れなくなる。

Windows 10では会議が終わってもランプが点きっぱなしになり、2回目以降はカメラが「使用中」扱いで使えない、会議室に入れない、PC再起動時にハングアップするという症状が出た。

Ubuntuではカメラのランプが一瞬点灯し、すぐに消えてそれ以降ビデオの操作が反応しなくなる。ちょっと前まではUbuntuなら問題なく使えていたのに…おかしい。

最初はちゃんと動いていた気がするけれど、いつの間にか動かなくなった。Jitsiのアップデートで何かが変わったのかもしれないし、そろそろ寿命が来たのかもしれない。

ダウンロードが遅い

今(2020/4/25)のこの情勢なので、超人気システムになっていると思われる。うちの契約はFlet’sだけれどもv6プラス契約していて、それなりの速度が出ている。にもかかわらずダウンロードには時間がかかる。

構築のタイミングで、少し気になるかもしれない。

マニュアルがちょっと…

インストールするだけで簡単に使えるようにしっかりと練り込まれている。その点は大変ありがたいのだが、ちょっと変わったことをやろうとすると情報が足りない。

数十人規模の会議がそれなりの数になってくるとかなりCPUを食うので、Videobridgeの増強をしたが、もう、ググっては試し、ググっては試すのカットアンドトライ状態になった。古いバージョンとはやり方が違っていたりするので、もう大変。

Videobridgeの増強は1/4を業務時間内に行ったため記事にしない。そのへんのけじめはしっかりつけておきたい。

認証をActive Directoryでやりたいなと思っていたので、休日の朝からこの課題に取り組んだが、これもカットアンドトライ。大変だったけど、どうにか実装できたので記事にした。

なお、この認証設定はVideobridgeの増強で行う設定とは重なる部分がない。このことだけは記しておく。

さいごに

この設定ができれば、ユーザーはパスワードが一緒なので使いやすいだろう。シングルサインオンまで設定できればもっと良いに決まっているけれど、これはもうちょっと先に頑張ることにする。

マニュアルがなさすぎて、何ができるのかがわからないのがちょっとつらいな。設定ファイルにもう少しコメントが入っているだけでも随分違うと思うけれど、なんせ無料だし、ユーザー側でだれかが勝手に手順を整理して、みんなで使っていくんだろうなぁ。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です