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.