LDAP integrace v systému Calom

Calom a WebCalom umožňují používat LDAP (např. Active Directory) pro on-line i off-line synchronizaci DirDB databáze a pro přihlašování do WebCalomu. Pro on-line synchronizaci i pro přihlašování do WebCalomu je potřeba mít spuštěný LDAP frontend (program ldap_frontend_*, pojmenovaný podle typu konektoru).

Nastavení konfigurace

Konfigurace systému je možná jednak přímo a jednak prostřednictvím WebClaomu.

Obecné nastavení LDAP frontendu pro WebCalomu

Pro povolení integrace LDAP frontendu je potřeba nastavit v souboru config hodnotu ldap-frontend-path.
Konfigurační volby v hlavním konfiguračním souboru (config/webcalom.conf):

use-ldap-dirdb-resolving Hodnota "yes", "on" nebo "true" povolí LDAP integraci pro reporty
ldap-config-file Cesta ke konfiguračnímu souboru obsahujícímu většinu nastavení - může být relativní k hlavnímu ("kořenovému") adresáři WebCalomu (většinou "config/ldap_frontend.conf").
ldap-user-config-file Cesta ke konfiguračnímu souboru specifickému pro LDAP (relativní k podstromu konfigurace daného uživatele).
ldap-auth-dn-translation Definice transformace LDAP DN záznamu pro autorizaci z uživatelského jména. Např. "cn=${username},dc=example,dc=cz".
ldap-use-webcalom-credentials Hodnota "yes", "on" nebo "true" znamená, že se pro připojení k LDAP serveru použije jméno/heslo z WebCalomu (tj. spojení bude pod tímto účtem).
ldap-frontend-path (možné dát do config/severs.conf) Cesta k ldap_frontend_* programu ()
ldapsync-path (možné dát do config/severs.conf) Cesta k ldap_sync_* programu ()

Konfigurační volby v LDAP konfiguračním souboru (typicky config/ldap_frontend.conf):

ldap-server-uri URL LDAP serveru (např. "ldap://1.2.3.4/")
ldap-base Suffix LDAP rozlišovacího jména (tzv. "base DN", např. "DN=example,DN=cz")
auth-username Uživatelské jméno pro LDAP.
Používá se pouze pokud se nepoužívají přihlašovací údaje z WebCalomu (viz ldap-use-webcalom-credentials) a zároveň se nepoužije auth-dn.
auth-password Uživatelské heslo pro LDAP.
Používá se pouze pokud se nepoužívají přihlašovací údaje z WebCalomu (viz ldap-use-webcalom-credentials).
auth-dn Uživatelské jméno (ve tvaru DN, většinou není třeba zadávat)
auth-cid Hodnota CID pro SASL autentikaci, většinou odpovídá auth-username
auth-zid Hodnota ZID pro SASL autentikaci, formát je "dn:<distinguished name>" nebo "u:<usename>"
ldap-start-tls Hodnota "yes", "on" nebo "true" zapne SSL/TLS šifrování
auth-method Způsob autentikace, možnosti jsou LDAP_AUTH_SIMPLE, LDAP_AUTH_SASL
sasl-mech SASL autentikační mechanizmus, možnosti jsou DIGEST-MD5, NTLM, GSSAPI
auth-realm Autentikační doména, např. "example.cz", používá se pro SASL login
ldap-scope Implicitní hloubka pro dotazy (nutné nechat na nastavení "default")
auth-domain Doménové jméno použité pro autorizaci, pokud není obsaženo v uživatelském jméně. Také se používá pro automatickou detekci LDAP serveru pomocí DNS.
ldap-users-group LDAP DN skupiny obsahující uživatele (pouze MNUL)
ldap-authorized-group LDAP DN skupiny obsahující uživatele autorizované pro WebCalom (pouze MNUL)
PC-root LDAP kořen stromu nákladových středisek (pouze MNUL)
TL-root LDAP kořen stromu technických míst (pouze MNUL)
org-unit-base LDAP kořen stromu uživatelů (pouze FŘ)

Nastavení on-line synchronizace DirDB ve WebCalomu

WebCalom umožňuje spustit LDAP frontend před spuštěním reportu a po dokončení reportu frontend ukončit. Nastavení se povolí volbou use-ldap-dirdb-resolving. Pro detaily viz výše.

Nastavení off-line synchronizace DirDB ve WebCalomu

Pro off-line synchronizaci DirDB se používá program ldap_sync_*. Používá stejný formát konfiguračního souboru a je možné ho opět spouštět samostatně nebo v rámci WebCalomu.

ldapsync-config Cesta ke konfiguraci programu ldap_sync_*
ldapsync-root-org Kořen Calom DirDB stromu, do kterého se mají synchronizovat data

Nastavení LDAP přihlašování do WebCalomu

Pro přihlašování do WebCalomu je potřeba hlavně nastavení auth-method, např.:

auth-method Hodnota "users" nastaví přihlašování pouze prostřednictvím lokální databáze uživatelů, hodnota "ldap" nastaví přihlašování pouze pomocí LDAP, hodnota "users+ldap" ověří uživatele nejdřív podle lokálního nastavení a když není přihlašování úspěšné, použije se LDAP (typicky je lokální např. jen admin).
ldap-server-uri URL LDAP serveru (např. "ldap://1.2.3.4/")

Nastavení samostatného LDAP frontendu pro Calom server

Pro přímou konfiguraci platí to samé jako pro konfiguraci prostřednictvím WebCalomu. Frontend se spouští:

./ldap_frontend_* -c <konfigurační-soubor>
Případně je možné použít parametr -s pro použití připraveného skriptu:
./ldap_frontend_* -s <konfigurační-skript>
Skript může vypadat např.:
parse-config <konfigurační-soubor>
connect-ldap ldap://1.2.3.4
set secret xyz
listen <port>
exit
Tento skript vyvolá načtení konfiguračního souboru, připojení k LDAP serveru, nastavení bezpečnostního kódu, spustí poslouchání na zadaném portu a na závěr se odpojí od konzole (tj. bude jen poslouchat).

Stejný bezpečnostní kód a port je pak potřeba nastavit v Calom serveru, v souboru config, např.:

DIRDB RESOLVER "dirext://1.2.3.4:<port>/ldap.server?secret=xyz" GLOBAL

Konfiguracni zmeny:
-------------------

1. ldap_frontend.conf:
ldap-server-uri: ldap://172.25.1.11/
ldap-base: DC=hk,DC=ds,DC=mfcr,DC=cz
auth-domain: hk.ds.mfcr.cz
#auth-realm: hk.ds.mfcr.cz
#ldap-users-group:
org-unit-base: OU=Organizační jednotky,OU=FŘ v Hradci Králové,DC=hk,DC=ds,DC=mfcr,DC=cz
auth-username: clmusr1
#auth-dn: clmusr1
auth-password: clmusr1

2. webcalom.conf:
auth-method: users+ldap
ldap-config-file: config/ldap_frontend.conf
use-ldap-dirdb-resolving: yes
ldap-auth-dn-translation: ${username}
ldap-use-webcalom-credentials: false
ldapsync-config: config/ldap_sync.conf
ldapsync-root-org: AD

servers.conf:
ldap-frontend-path: helpers/ldap_frontend/ldap_frontend_FR
ldapsync-path: helpers/ldap_frontend/ldap_sync_FR

ln -s ../../../helpers/ldap_frontend/ldap_frontend_FR www/helpers/ldap_frontend/ldap_frontend_FR