49.1.4. LDAP

Protože udržovat další hesla je velmi nepříjemné, potřeboval jsem přimět RT aby používal hesla z firemního LDAP serveru. Toto nastavíme na dvou místech. První je Apache který převezme starost o ověřování uživatele. Do apache budeme potřebovat modul jenž nainstlaujeme z balíčku.

rt3:~# apt-get install libapache-auth-ldap

Do konfiguračního souboru /etc/apache/httpd.conf pak zapíšeme řádku.

LoadModule   auth_ldap_module    libexec/auth_ldap.so

Nebo u novější verze jen specifikujeme v době konfigurace, že se má zavést modul auth_ldap_module. Konfigurační skript pak zapíše uvedenou řádku do souboru /etc/apache/modules.conf.

V původním konfiguračním souboru /etc/apache/httpd.conf pak opravíme část specifikující RT takto.

### Request Tracker
<Location /rt>
        AuthLDAPURL     ldap://ldap/ou=people,dc=firma,dc=cz?uid
        require         valid-user
        AuthName        "LDAP authenticaton"
        AuthType        Basic
        Include         "/etc/request-tracker3/apache-modperl.conf"
</Location>

Apache se tedy bude ptát LDAPu na serveru ldap.firma.cz a bude hledat uid. Další kontrolu na uživatele neprovádím. Vycházím z toho, že Apache oveří zda uživatel je skutečně ten za koho se vydává a jméno uživatele pak předá RT. To zajistí následující řádky v souboru /etc/request-tracker3/RT_SiteConfig.pm.

Set($WebExternalAuth, 1);
Set($WebFallbackToInternalAuth, 1);

První řádek oznamuje RT že se má spolehnout na externí autentikaci kterou bude provádět Apache a předá jméno uživatele v proměnné. Druhý řádek je pro případ nefunkčního LDAP serveru. I když, nefunguje-li LDAP server, nepustí Apache nikoho k RT.