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-ldapDo 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.