2. System PAM-LDAP

Za podstawę rozwiązania obrany został projekt: "Using OpenLDAP For Authentcation" [3] opracowany z myślą o dystrybucji Linux Mandrake. Wybrany system autentykacji opiera się na wykorzystaniu, jednej w skali klastra, bazy danych o kontach. Do informacji przechowywanych w bazie LDAP aplikacje odwołują się poprzez biblioteki NSS (Name Serwer Switch) i moduły PAM (Pluggable Authentication Modules), które to moduły stanowią warstwę pośredniczącą w autentykacji. Na rysunku poniżej przedstawiono ogólny schemat interakcji modulów PAM z aplikacjami oraz bazami danych o kontach (rys. 1).

Moduł PAM można rozpatrywać w aspekcie biblioteki funkcji, z których korzysta aplikacja dokonująca autentykacji oraz dalszych etapów logowania (wymienionych na rysunku) poprzedzających udzielenie dostępu użytkownikowi do zasobów systemu. Komunikacja pomiędzy aplikacją a modułem PAM odbywa się poprzez standardowe API, a więc istnieje dowolność w rozwoju i tworzeniu samych modułów PAM, w tym w wyborze źródeł danych z informacjami o kontach użytkowników. Aplikacja odwołuje się do modułów PAM zgodnie z ich konfiguracją zawartą w odpowiednich plikach. Skonfigurować można zestaw modułów, kolejność ich przetwarzania, oraz znaczenie dla całej procedury logowania. Standardowo, zdecydowana większość systemów uniksowych wykorzystuje moduły PAM sprzężone z bazami danych w postaci plików tekstowych. W nowo wdrożonym systemie stosuje się hierarchiczną bazę danych w standardzie LDAP (Lightweight Directory Access Protocol) i darmowej implementacji OpenLDAP. Wykorzystano moduły firmy PADL Software [1].

Część powszechnie wykorzystywanych przez użytkowników aplikacji wymaga informacji dotyczących kont do celów innych niż autentykacja. Takie programy odwołują się do funkcji systemowych, najczęściej w poszukiwaniu powiązań pomiędzy numerami porządkowymi użytkowników czy grup a ich nazwami (np. polecenie "ps u"). Ustalenie źródeł takich danych odbywa się poprzez konfigurowanie mechanizmu NSS. Na UKŁADzie zainstalowane zostały biblioteki LIBNSS-LDAP, skonfigurowane do przekazywania danych pobieranych z bazy LDAP.