Przykład Python LDAP

Przykład Python LDAP

LDAP to lekki protokół dostępu do katalogu. Jest to protokół internetowy, który działa na TCP/IP i służy do dostępu/pobierania informacji z katalogów. Wszystkie katalogi nie są preferowane; Zwykle służy do dostępu do tych aktywnych katalogów.

Cechy/charakterystyka LDAP

Wiadomo, że LDAP jest modelem funkcjonalnym; Jest prosty i wyjątkowy ze względu na jego zdolność unikania duplikacji danych, aby zachować bezpieczeństwo i spójność treści. Niektóre z głównych cech LDAP są następujące.

  • LDAP jest znanym jako protokół implementacyjny typu open source i można go pobrać bezpłatnie z Internetu.
  • Ma ważną funkcję dotyczącą bezpieczeństwa danych. W miarę obsługi bezpieczeństwa warstw transportowych (TLS), poufne dane można łatwo zabezpieczyć od porywczych.
  • LDAP jest również korzystne we wspieraniu systemów bazy danych. Ponieważ przechowuje katalogi i pozwala użytkownikowi wybrać bazę danych zgodnie z informacjami serwera.

LDAP ma wiele funkcji dotyczących świadczonych usług. Podkreślamy niektóre z nich tutaj.

Do uwierzytelniania klienta

Ponieważ LDAP jest łatwo dostępny i tworzy wiele operacji w celu podłączenia/odłączania się z/od serwera LDAP, powoduje prawa do dostępu i chroni informacje prywatne. Uwierzytelnia klientów, którzy przechodzą żądanie łączności, aby można było podłączyć tylko autentyczny i prawidłowy użytkownik. W procesie uwierzytelniania sesja klienta jest tworzona i kończąca się za pomocą funkcji. Jak wiązanie/rozpas, porzucić.

Do zapytania informacji

Obejmuje funkcje porównawcze i wyszukiwania, które są używane do pobierania informacji z katalogu. W tej sytuacji serwer odgrywa ważną rolę, ponieważ wykonuje wiele działań, postępując zgodnie z funkcjami takimi jak wyszukiwanie, porównaj pozycję.

Modyfikacja danych

Modyfikacja danych obejmuje dodanie, usunięcie i modyfikacja przechowywanych danych w określonym katalogu. Główne funkcje obejmują.

1. Dodaj wpis.

2. Usuń wprowadzanie danych.

3. Modyfikacja danych.

Ta modyfikacja jest na obu końcach. Na przykład klient ustanawia sesję z serwerem za pomocą nazwy hosta i numeru portu po stronie klienta. Do celów bezpieczeństwa użytkownik używa identyfikatorów i haseł do uwierzytelnienia. Podczas gdy po stronie serwera serwer jest w stanie odczytać, aktualizować i wyszukiwać dane.

Interakcja LDAP między klientem a serwerem

Jest podobny do dowolnej z prostych interakcji klient-serwer. W takim przypadku klient używa funkcji protokołu na serwerze. Poniższe punkty wyjaśniają krótko tę interakcję.

  1. Klient wysyła żądanie protokołu do serwera.
  2. Serwer wykonuje różne operacje w katalogu, takie jak wyszukiwanie itp.
  3. Odpowiedź serwera jest odesłana z powrotem do klienta.

Kilka oprogramowania może łatwo utworzyć połączenie i stworzyć serwer LDAP. Ale wszystkie wymagają katalogów. Jeśli użytkownik nie chce zainstalować serwera katalogu w systemie, ale chce używać LDAP, użytkownik może użyć Four11, Bigfoot itp. Tworzenie klienta LDAP jest proste, ponieważ w wielu innych językach, takich jak C ++, Java itp. Aby być klientem LDAP, użytkownik musi wykonać niektóre zadania.

  • Dla swojego języka programowania idź zdobądź SDK.
  • Użyj funkcji SDK do tworzenia LDAP.
  • Po tych krokach wykonaj teraz operacje na LDAP.

Tworzenie użytkownika LDAP

Teraz utworzymy użytkownika LDAP za pomocą skryptu w języku Python. Używany jest plik CSV. Po utworzeniu skrypt można dalej modyfikować zgodnie z wymaganiami, na przykład dodanie biblioteki kliknięcia, która tworzy indywidualne użytkowników.

Krok 1: Zainstaluj wymagania

Pierwszym krokiem jest zainstalowanie warunków wstępnych do tworzenia użytkowników. Obejmuje to instalację „Python-Ldap”.

# Instaluj Python-Ldap

Krok 2: Za pomocą Pythona tworzy połączenie z LDAP

Ten krok jest zbudowanie połączenia z LDAP. Po pierwsze, import modułów LDAP, SYS i LDAP_ADMIN_DN z biblioteki Python. Następnie zdefiniujemy funkcję, która nosi host i hasło jako argument funkcji.

Główna funkcja jest zapisana wewnątrz ciała „spróbuj” wyjątkowej obsługi. To wyeliminuje występowanie każdego dużego problemu, a jeśli wystąpi jakikolwiek błąd, żądanie wyjątku zostanie zgłoszone, co jest rozwiązane przez metodę Catch (). Nie jest to tutaj opisane.

Wracając do kodu, połączenie jest budowane za pomocą linii poniżej napisanej.

# Ldap_conn = ldap.inicjalizuj (ldap_host) importuj LDAP
Import Sys
Importuj ldap_admin_dn
def try_ldap_bind (ldap_host, admin_pass):
próbować:
ldap_conn = ldap.inicjalizuj (ldap_host)
Z wyjątkiem LDAP.SERWER NIE DZIAŁA:
Drukuj („Nie można skontaktować się z serwerem LDAP”)
Wyjście (4)
próbować:
ldap_conn.simple_bind_s (ldap_admin_dn, admin_pass)
Z wyjątkiem (LDAP.Invalid_credentials):
wydrukuj („To hasło jest nieprawidłowe!")
Sys.Wyjście (3)
Drukuj („uwierzytelnianie udane”)

Jeśli hasło lub nazwa hosta jest nieprawidłowa, wyświetlany jest komunikat, że hasło jest nieprawidłowe. W przeciwnym razie pokazuje wiadomość, że uwierzytelnianie odniesie sukcesy w przypadku prawidłowych poświadczeń.

Krok 3: Ładowanie pliku CSV

Po zaimportowaniu modułu CSV weźmiemy pustą tablicę. Aby otworzyć już utworzony plik CSV, używane jest tutaj komenda funkcji Open (). Plik jest otwarty za pomocą obiektu. Ten obiekt i oba pliki są przekazywane jako parametry Open Function (). Każda linia w kodzie jest uważana za wiersz według funkcji czytnika.

#vusers_reader = CSV.czytnik (users_csv_file)

Wszystkie wartości są wprowadzane do tablicy za pomocą pętli dla. Każde słowo jest umieszczane w każdym indeksie tablicy. Na przykład pierwsze słowo to nazwa użytkownika; jest umieszczony na zerowych indeksach tej tablicy. Podobny proces jest używany dla wszystkich indeksów. Te słowa są obecne w zmiennej „użytkownika”. Teraz są one dołączone do tablicy „Users_to_import” za pośrednictwem funkcji załącznika.

# Users_to_import.Dodatek (użytkownik)

W ten sposób dane obecne w pliku CSV są teraz ładowane.

Importuj CSV
Users_to_import = []
z otwartym (plik.csv ', „rb”) jako users_csv_file:
Users_Reader = CSV.czytnik (users_csv_file)
dla wiersza w Users_reader:
User =
„nazwa użytkownika”: wiersz [0],
„Hasło”: wiersz [1],
„FirstName”: wiersz [2],
„LastName”: wiersz [3],
„Grupa”: wiersz [4],
„Shell”: Row [5],
„Gospodarze”: wiersz [6],

Users_to_import.Dodatek (użytkownik)

Krok 4: Tworzenie użytkowników na serwerze LDAP

Z pliku CSV utworzymy użytkownika za pomocą funkcji. Pierwszy krok dotyczy zdefiniowania funkcji o nazwie „create_user”. Na przykład przypadek grupy, którą mamy:

# Gid = find_gid (użytkownik ['grupa']) def create_user (użytkownik, admin_pass):
dn = 'uid =' + użytkownik ['nazwa użytkownika'] + ',' + ldap_base_dn
FullName = User ['FirstName'] + + User ['LastName']
home_dir = home_base + '/' + użytkownik [„nazwa użytkownika”]
gid = find_gid (użytkownik ['grupa'])
lastchange = int (matematyka.podłoga (czas () / 86400))

Bierze nazwę użytkownika i hasło administratora. Wewnątrz ciała funkcyjnego każde pole formularza tworzenia użytkownika jest wypełnione otrzymywaną informacją. Informacje te są przechowywane w zmiennych. Zmienne te są używane podczas przypisywania wartości w tablicy. Ostatecznie używamy funkcji załącznika do powiązania wartości. Tutaj stosuje się if-zastęp. To sprawdzi długość tablicy „użytkownika” przez len ().

# if (len (użytkownik ['hosts'])):
# wpis.append ((„host”, użytkownik ['hosts'])) enter = []
wejście.rozszerzyć([
(„ObjectClass”, [„osoba”, „organizacjaPerson”,
„inetorgperson”, „posixAccount”, „top”, „shadowaccount”, „hostoBject”]), („uid”, użytkownik [„nazwa użytkownika”])),
(„cn”, pełna nazwa),
(„GiveName”, użytkownik [„FirstName”]),
(„SN”, użytkownik [„LastName”]),
(„poczta”, użytkownik [„e -mail”]),
(„UIDNumber”, str (użytkownik ['uid']))),
(„gidnumber”, str (gid)),
(„loginshell”, użytkownik [„powłoka”]),
(„Homedirectory”, home_dir),
(„Shadowmax”, „99999”),
(„Shadowwarning”, „7”),
(„shadowlastchange”, str (lastchange)), („userPassword”, użytkownik [„hasło”])
])
if (len (użytkownik ['hosts'])):
wejście.append ((„host”, użytkownik ['hosts'])))

Tutaj stosuje się ten sam proces deklaracji tablicy. Każdy indeks tablicy zawiera wartość z zawartości obecnej w pliku CSV. Tym razem każdy numer indeksu podano również nazwę zmiennej, której użyliśmy w powyższej funkcji.

Teraz przechodząc do ostatniej fazy tworzenia użytkowników, tutaj zbudujemy połączenie, gdy użytkownik zostanie utworzony, przypisując każdą wartość tablicy. Ponownie użyj ciała, aby zignorować błędy. Ostatecznie użyjemy funkcji Unbind, aby zamknąć połączenie.

# ldap_conn.unbind_s () ldap_conn = ldap.inicjalizuj (ldap_host)
ldap_conn.simple_bind_s (ldap_admin_dn, admin_pass)
próbować:
ldap_conn.add_s (dn, wpis)
Wreszcie:
ldap_conn.unbind_s ()

Wniosek

„Python LDAP Przykład” ma na celu dostarczenie funkcji, funkcji, funkcji i funkcji tworzenia użytkowników LDAP. Krótko wyjaśniliśmy ważne aspekty tego protokołu, podkreślając interakcję między serwerem a klientem. Mamy nadzieję, że ten samouczek będzie korzystny dla użytkownika w zakresie implementacji LDAP w języku Python.