Lewati ke isi

Otentikasi Jitsi dengan FreeIPA

Proses

#!/bin/bash
set -eux

# variabels
LDAP_HOST="'host.sub.domain.tld'"
BIND_DN="'uid=jitsi,cn=sysaccounts,cn=etc,dc=sub,dc=domain,dc=tld'"
BASE_DN="'dc=sub,dc=domain,dc=tld'"
BIND_PASSWORD="'bindPassword'"
FILTER="'(&(objectClass=person)(memberOf=cn=service-group,cn=groups,cn=accounts,dc=sub,dc=domain,dc=tld))'"
USER_NAME_FIELD="'uid'"
NAME_FIELD="'cn'"

# Pastikan Jitsi Meet (berserta paket lainnya) sudah terinstall
# systemctl status jitsi-videobridge2 jicofo prosody

# Instal modul untuk Prosody
apt-get install -y prosody-modules lua-ldap

# Buat dan sunting `ldap.cfg.lua`
cat << EOF > /etc/prosody/conf.avail/ldap.cfg.lua
-- Authentication configuration --
-- https://modules.prosody.im/mod_lib_ldap.html
-- https://modules.prosody.im/mod_auth_ldap2.html
authentication = 'ldap2'
ldap = {
  hostname = $LDAP_HOST,
  --use_tls = true,
  bind_dn = $BIND_DN,
  bind_password = $BIND_PASSWORD,
  user = {
    basedn = $BASE_DN,
    filter = $FILTER,
    usernamefield = $USER_NAME_FIELD,
    namefield = $NAME_FIELD,
  },
}
EOF

# membuat alias tautan ke direktori konfigurasi yang akan dibaca
ln -sf /etc/prosody/conf.avail/ldap.cfg.lua /etc/prosody/conf.d

Otentikasi LDAP

Konfigurasi domain akan digunakan untuk $INSTANCE_FQDN. Sunting metode utama untuk otentikasi menggunakan LDAP, dan guest.$INSTANCE_FQDN menggunakan anonim

nano /etc/prosody/conf.avail/$INSTANCE_FQDN.cfg.lua
...
--authentication = "anonymous"
authentication = "ldap2"
...
...
VirtualHost "guest.$INSTANCE_FQDN"
   authentication = "anonymous"

Sunting dan tambahkan parameter agar bosh dapat diakses dan dianggap aman

nano /etc/prosody/prosody.cfg.lua
-- Server-wide settings --
...
consider_bosh_secure = true
...

Mengabaikan permintaan sertifikat TLS saat terhubung ke LDAP

nano /etc/ldap/ldap.conf
TLS_REQCERT never

Memaksa tamu menentukan namanya, dan secara bawaan menonaktifkan video saat pertama kali gabung pada ruang konfrensi

nano /etc/jitsi/meet/central.proxsis.co.id-config.js
...
        // When using authentication, domain for guest users.
        // anonymousdomain: 'guest.example.com',
        anonymousdomain: 'guest.$INSTANCE_FQDN',
...
...
  // requireDisplayName: true,
  // Memaksa tamu menentukan namanya
  requireDisplayName: true,
...
...
  // startAudioOnly: false,
  // Secara bawaan menonaktifkan video saat pertama kali gabung pada ruang konfrensi
  startAudioOnly: true,

Manambahkan domain utama pada konfigurasi jicofo

nano /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:$INSTANCE_FQDN

Memuat ulang layanan

systemctl restart prosody jicofo

Rujukan