Usługi katalogowe

ITpedia

Usługi katalogowe (directory services) to jedne z najistotniejszych elementów rozproszonych systemów komputerowych, ponieważ upraszczają administrowanie, zapewniając spójny system zarządzania użytkownikami, aplikacjami i urządzeniami. Zapewniają również lepszą ochronę, obejmującą usługi zabezpieczające desktopy użytkowników wewnętrznych oraz komputery użytkowników zdalnych i zewnętrznych. Pozwalają też na standaryzację dostępu do wszystkich aplikacji korzystających z katalogów, a także, za pośrednictwem metakatalogów, umożliwiają synchronizację innych katalogów.

Usługi katalogowe są istotnym uzupełnieniem systemów operacyjnych i wielu aplikacji oraz systemów zarządzania, sterowania dostępem do zasobów, bazodanowych i przesyłania komunikatów.

Zarządzanie rozbudowaną siecią przedsiębiorstwa - we wszystkich jego aspektach - trudno sobie wyobrazić bez usług katalogowych. Pozwalają one na prowadzenie swego rodzaju książki adresowej zasobów, a także na utrzymywanie i synchronizowanie informacji związanych z bezpieczeństwem systemów komputerowych, takich jak zakresy uprawnień użytkowników, reguły udostępniania zasobów itp.

Katalog jest specjalizowaną bazą danych zawierającą informacje o wszystkich zasobach i użytkownikach sieci. Jest specjalizowanym repozytorium informacji o obiektach - zazwyczaj o strukturze hierarchicznej, nierelacyjnej - zoptymalizowanym pod kątem szybkiego dostępu do informacji. Ważną jego cechą jest skalowalność. Repozytorium to zawiera zazwyczaj dane dotyczące użytkowników, ich grup i administrowania, a także informacje o usługach sieciowych, takich jak drukowanie i inne zasoby obliczeniowe dostępne w sieci.

Może być używane do zarządzania szerokim zakresem informacji dotyczących pracowników, partnerów handlowych czy klientów, a także uprawnieniami i prawami dostępu do różnego typu aplikacji lub zasobów obecnych w sieci. Katalog może być także używany do inwentaryzowania zasobów sprzętowych i oprogramowania. Katalogi dostarczają informacji, które mogą być wykorzystywane przez wszystkie aplikacje. Wspomagają też integrację aplikacji, które funkcjonowały jako systemy niezależne.

Katalogi są nieodzowne do przetwarzania rozproszonego, opartego na sieci. Specjalizowana baza danych - przechowująca informacje o obiektach sieciowych: użytkownikach, drukarkach, bazach danych, współdzielonych plikach - pozwala użytkownikom i zasobom na odnajdywanie się w sieci. Informacja w katalogu może reprezentować dowolny zasób, którym chce się zarządzać - pracownicy, sale konferencyjne, partnerzy biznesowi czy współdzielone zasoby sieciowe, takie jak drukarki, to tylko kilka przykładów.

W ujęciu bardziej technicznym usługi katalogowe to procesy programowe oczekujące na zlecenia strony klienckiej (przeglądarki webowe, klienty poczty elektronicznej, oprogramowanie zarządzające, aplikacje itp.). Procesy te przetwarzają otrzymane zlecenia, przeszukując bazę informacji katalogowych lub wysyłając zlecenie do innych, powiązanych usług katalogowych, i ostatecznie zwracają wyniki kwerend zlecającemu. Zbiór informacji o obiekcie katalogowym tworzy pozycję katalogu (directory entry). Obiekty są definiowane jako składowe poszczególnych klas obiektów ('object class), zgodnie z techniką obiektową. W trakcie tworzenia architektury katalogu definiuje się strukturę każdej pozycji katalogu i przypisuje jej jedną lub kilka klas obiektów. Różne klasy obiektów mogą się składać z różnych atrybutów. I tak atrybuty pozycji „pracownik” mogą obejmować tytuł zawodowy, adres poczty elektronicznej, numer telefonu itp.

W sieciach przedsiębiorstwa jest często wiele katalogów do różnego rodzaju zasobów i funkcji. Obejmuje to: zasoby kadrowe, listy płac, pocztę elektroniczną, pocztę głosową, bezpieczeństwo itp. Im większe przedsiębiorstwo, tym więcej katalogów. Im więcej katalogów, tym bardziej złożone jest sterowanie systemem. Ponadto potrzeba zarządzania dostępem do korporacyjnych zasobów danych, otwieranym dla partnerów biznesowych i klientów z sieci zewnętrznych (Internet lub ekstranety), wymaga metod uwierzytelniania i autoryzowania dostępu. Z tych powodów usługi katalogowe stały się kluczowym komponentem w projektowaniu platform e-biznesowych.

Standaryzacja

Specyfikacja X.500 jest zestawem protokołów, hierarchii danych i zestawem definicji usług katalogowych. Opracowała ją International Telecommunication Union (ITU).

Katalogi X.500 pracowały na dużych komputerach uniksowych i dostęp do nich przy użyciu protokołu DAP (Directory Access Protocol), opisanego w X.500, wymagał angażowania dużych zasobów - przez procesy realizowane na szczycie siedmiowarstwowego modelu OSI (Open Systems Interconnection). DAP został zastąpiony alternatywną, opartą na TCP/IP, okrojoną (tzw. lekką) wersją specyfikacji o nazwie LDAP (Lightweight Directory Access Protocol). Protokół ten został zaaprobowany przez IETF jako standard i znalazł szerokie zastosowanie w implementacjach usług katalogowych.

W typowym środowisku biznesowym, w którym funkcjonuje zazwyczaj wiele różnych katalogów, koszt implementacji i administrowania nimi jest wysoki - w praktyce każdy katalog musi być zarządzany oddzielnie. Rozwiązaniem jest stosowanie aplikacji obsługujących LDAP.

Dzisiejsze produkty zgodne z LDAP mogą być używane przez platformy zarządzania do administrowania użytkownikami, uwierzytelniania ich, jako repozytorium reguł polityki bezpieczeństwa systemu komputerowego, do personalizacji usług itp.

Dostępne są rozwiązania usług katologowych w postaci wieloplatformowych, zgodnych z LDAP serwerów katalogowych, zapewniających infrastrukturę będącą podstawą do rozwijania aplikacji zarządzania tożsamością i zaawansowanej architektury dla web services. Są to usługi katalogowe dla dużych przedsiębiorstw, w których sieciach funkcjonują intranety, ekstranety i połączenia z Internetem. Zapewniają zunifikowaną architekturę, pozwalającą na projektowanie systemów współdzielących dane z innymi katalogami i aplikacjami.

Dane są przesyłane z wykorzystaniem protokołu SSL (Secure Socket Layer). Sterowanie dostępem do danych katalogowych pozwala na zejście do poziomu indywidualnych atrybutów, umożliwiając samoobsługę użytkowników i delegowanie zadań administrowania. Dopuszcza też dostęp do ograniczonej liczby atrybutów w danej pozycji, co pozwala użytkownikom na manipulowanie tylko określonymi atrybutami, podczas gdy pozostałe są dostępne jedynie do odczytu.

Inne rozwiązania tworzą centralne repozytorium danych o użytkownikach. Są to systemy tworzące katalog przedsiębiorstwa zawierający listy pracowników i zasobów. Opierają się zazwyczaj na LDAP i pozwalają na kontrolowanie uprawnień dostępu oraz poziomów ochrony dla aplikacji wykorzystujących katalogi. Przeznaczone dla dużych wdrożeń e-commerce, pomagają zarządzać identyfikatorami użytkowników, hasłami, kontrolą dostępu i autoryzacją klientów, dostawców, partnerów i własnych pracowników.

Podstawowe mechanizmy to: replikacja typu multi-master, bardzo duża skalowalność (rzędu milionów użytkowników), obsługa XML, zapewniające elastyczny dostęp do danych katalogów LDAP, bardzo duża wydajność, centralne usługi zarządzania i standaryzowany oraz hierarchiczny system nazw.

Replikacja katalogów

Sposób, w jaki usługi katalogowe przechowują informację, ma bezpośredni wpływ na wydajność i skalowalność tych usług. Usługi katalogowe muszą obsługiwać dużo większą liczbę zapytań niż uaktualnień. Z tego powodu niezwykle ważna staje się możliwość powielania zawartości bazy danych w różnych miejscach sieci. Tworząc repliki katalogu i utrzymując je na bieżąco w stanie aktualnym, można znacznie zwiększyć liczbę zapytań kierowanych do usług katalogowych bez jednoczesnego zmniejszenia wydajności i czasu reakcji. Taka reprodukcja i synchronizacja katalogów jest nazywana multimaster replication (replikacje rozproszone).

W systemie multimaster pewna liczba kopii (replik) katalogu, w których administratorzy mogą uaktualniać dane, a użytkownicy uzyskiwać informacje, jest udostępniana w całej sieci. System ten - utrzymując informacje blisko tych, którzy jej potrzebują - zapewnia odporność na błędy, zmniejsza obciążenie ruchu WAN i przyspiesza wykonanie zapytań o dane.

Stosowanie tej techniki ma też konsekwencje. Ponieważ dane mogą być uaktualniane i przechowywane w wielu miejscach, może pojawić się problem z utrzymaniem integralności danych w sytuacjach, gdy dwóch lub więcej administratorów wykonuje zmiany tej samej informacji w ramach tego samego cyklu replikacji.

Jeżeli dane w poszczególnych kopiach są rozbieżne, to aplikacja korzystająca z tych danych, i zakładająca ich integralność, może zachowywać się niepoprawnie lub nawet załamać się całkowicie. Aplikacje opierające się na założeniu integralności danych pracują najczęściej na transakcyjnych bazach danych.

Uważa się jednak, że ryzyko stosowania replikacji rozproszonych jest niewielkie w porównaniu z korzyściami, jakie daje ta technika. W praktyce pozwala ona bowiem na zaniechanie nieustannych połączeń z bazami danych i pracę prawie wyłącznie lokalną, a tym samym kontynuowanie pracy nawet w przypadku utraty połączeń sieciowych.

Innym sposobem stosowanym przez usługi katalogowe przy uaktualnianiu jest podejście master-slave: wszystkie uaktualnienia muszą być wykonane na głównej kopii katalogu, a następnie replikowane na kopie zależne. Ten sposób jest odpowiedni dla katalogów z niewielką liczbą kopii oraz środowisk, gdzie wszystkie zmiany mogą być wykonywane centralnie. W środowiskach zdecentralizowanych i dużych organizacjach podejście takie jest niepraktyczne. W replikacjach typu multimaster każda indywidualna zmiana wykonana na jednej z kopii katalogu jest automatycznie powielana na wszystkich innych kopiach.

Do śledzenia uaktualnień można używać stempli czasowych. Rozstrzyganie kolejności zmian opiera się na wartości „datownika” przypisanego danej zmianie. W katalogu typu master-slave, gdzie wszystkie uaktualnienia są wykonywane centralnie, jest to metoda odpowiednia, ale w katalogach zdecentralizowanych jej skuteczność jest kwestionowana. Jeżeli czas nie jest perfekcyjnie synchronizowany pomiędzy wszystkimi miejscami, gdzie znajdują się kopie katalogu, to istnieje poważna szansa zagubienia danych lub wręcz uszkodzenia katalogu. Zamiast stempli czasowych można używać numerów sekwencyjnych uaktualnień (USN - Update Sequence Number).

Za każdym razem, gdy jakiś użytkownik wpisuje coś do obiektu katalogowego, zapis taki uzyskuje USN, który jest przetrzymywany na komputerze i zwiększany za każdym razem, gdy w stosunku do tego obiektu są wykonywane zmiany - taki mechanizm pozwala na śledzenie zmian. Jeżeli użytkownik na określonym komputerze uaktualnia jakiś obiekt, bieżąca wartość USN na tym komputerze jest zwiększana i dopisywana do obiektu wraz z tą zmianą i unikatową sygnaturą komputera generującego zmianę. Obiekt przenosi także USN dla każdej właściwości (cechy) obiektu. Gdy cecha jest uaktualniana, jest awansowany nowy USN.

Partnerzy replikacyjni danego komputera odpytują o wszystkie zmiany z numerem większym od ostatnio otrzymanego USN. Komputer źródłowy przeszukuje katalog i odnajduje obiekty, których numer sekwencyjny jest większy od prezentowanego przez partnera z innej maszyny.

Zmiany cech są rozstrzygane indywidualnie: gdy zmiana jest replikowana, uaktualniane są jedynie cechy z wyższym USN. W razie kolizji (gdy dwa różne komputery uaktualniły tę samą cechę) obowiązuje zmiana z późniejszym stemplem czasowym. Stempel ten jest używany jako najprostsza „dogrywka” rozstrzygająca, tak więc synchronizacja czasu w tym systemie nie jest tak istotna.

Mechanizm synchronizacji czasowej zapewnia wszystkim serwerom tę samą podstawę czasową. W sieciach wyróżniane są serwery wzorcowe czasu zapewniające wzorce czasowe dla wielu serwerów podrzędnych i stacji klienckich. Wzorce czasowe dla serwerów wzorcowych pobierane są najczęściej z superdokładnych źródeł zewnętrznych, takich jak zegar atomowy. Zapewniana jest automatyczna synchronizacja replik katalogu, dopuszczając jednocześnie ręczną synchronizację replik w sytuacjach, gdy repliki nie uzyskały poprawnej synchronizacji.

Problemy synchronizacji

Synchronizacja czasowa jest skomplikowana i wymaga sporego nakładu pracy planistycznej. Podejściem bardziej praktycznym są metody niewymagające skomplikowanych układów synchronizacji czasu.

Niezależnie jednak od podejścia, administratorzy korzystający z zalet replikacji typu multimaster nie powinni ignorować potencjalnych zagrożeń związanych z możliwością utraty integralności danych katalogowych.

Ponieważ żadna ze stosowanych metod nie gwarantuje propagowania poprawnej informacji w każdej sytuacji, wszystkie zmiany powinny być rejestrowane w specjalnym logu. Takie logi można następnie przeglądać w celu wykonania ewentualnych korekt nieaktualnych zmian.

Skutki uboczne replikacji zdecentralizowanych są minimalizowane przez fakt, iż dane katalogowe są uaktualniane niezbyt często, jak również niskim prawdopodobieństwem tego, że dwóch użytkowników będzie jednocześnie zmieniać te same dane. Strategią obniżającą prawdopodobieństwo negatywnych zjawisk związanych z replikacjami zdecentralizowanymi jest utrzymywanie nielicznej grupy administratorów. Liczna grupa administratorów, na dodatek z dużymi uprawnieniami, może siać spustoszenie w systemie multimaster.

Kolizje pomiędzy uaktualnieniami katalogów są nieodłącznym problemem systemów multimaster. Najlepszym sposobem zapobiegania tego typu problemom jest skrócenie cyklu replikacji, ale wiąże się to z większymi kosztami sieciowymi.

Dla zmian propagowanych przez repliki katalogu ważne jest to, aby były one stosowane do wszystkich kopii w takim samym porządku. Można używać numeru sekwencyjnego do ustalania kolejności zmian, a w przypadku istnienia rozbieżności zdać się na pewną liczbę „dogrywek” decyzyjnych określających ostatecznie, które zmiany mają być przyjęte, a które odrzucone. Kryterium rozstrzygającym może być czas wykonania zmiany, co wymaga bardzo starannego pilnowania systemu synchronizacji czasu. Nie ulega wątpliwości, że integralność wszystkich kopii danych jest sprawą kluczową. Można założyć, że usługi katalogowe następnej generacji pozwolą na używanie reguł do określania, które uaktualnienia przejmować, a które nie, rozwiązując tym samym problem rozstrzygania o aktualności zmian.

-
-