Benutzer-Werkzeuge

Webseiten-Werkzeuge


ldap

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

ldap [2025/03/26 23:36]
ldap [2025/03/27 00:03] (aktuell)
Zeile 1: Zeile 1:
 +LDAP (Lightweight Directory Access Protocol) ist ein standardisiertes Netzwerkprotokoll zur Abfrage und Verwaltung von Informationen in einem [[verzeichnisdienst|Verzeichnisdienst]]. Es wurde entwickelt, um den Zugriff auf Verzeichnisse effizienter und plattformunabhängig zu gestalten. LDAP wird häufig für die Verwaltung von Benutzerkonten, Authentifizierung, Autorisierung und allgemeine Verzeichnisinformationen verwendet.
  
 +[[active_directory|Active Directory]] ist die Windows Implementierung von LDAP. OpenLDAP ist die Linux Implementierung von LDAP.
 +
 +JExplorer ist ein LDAP Browser in [[coding:java|Java]].
 +
 +LDAP verwendet das Client-Server-Modell, bei dem ein LDAP-Client Anfragen an einen LDAP-Server sendet und der Server die entsprechenden Antworten zurückgibt. Der Server speichert die Daten in einem hierarchischen Verzeichnisbaum, der als Directory Information Tree (DIT) bezeichnet wird. Jeder Eintrag im Baum wird als Distinguished Name (DN) bezeichnet und enthält Attribute, die Informationen über den Eintrag enthalten.
 +
 +Die LDAP-Architektur besteht aus folgenden Komponenten:
 +
 +  * **LDAP-Client**: Ein LDAP-Client ist eine Anwendung oder ein System, das LDAP-Anfragen an einen LDAP-Server sendet. Der Client kann verschiedene Operationen wie das Suchen, Hinzufügen, Ändern oder Löschen von Einträgen im Verzeichnis durchführen.
 +  * **LDAP-Server**: Der LDAP-Server ist die Softwarekomponente, die die LDAP-Anfragen empfängt, verarbeitet und die entsprechenden Antworten zurücksendet. Der Server speichert die Verzeichnisdaten und ermöglicht den Zugriff und die Verwaltung dieser Daten über das LDAP-Protokoll.
 +  * **Verzeichnis**: Das Verzeichnis enthält die gespeicherten Daten, die über LDAP abgefragt und verwaltet werden können. Die Daten sind in einem hierarchischen Baumstrukturformat organisiert, wobei jeder Eintrag im Baum als Distinguished Name (DN) identifiziert wird.
 +  * **Schema**: Das Schema definiert die Struktur und die Attribute, die für die Einträge im Verzeichnis verwendet werden können. Es legt fest, welche Informationen gespeichert werden können und welche Attribute erforderlich oder optional sind.
 +
 +LDAP unterstützt verschiedene Operationen zum Abfragen und Verwalten des Verzeichnisses. Hier sind einige der grundlegenden Operationen, die mit LDAP durchgeführt werden können:
 +
 +  * **Bind**: Der Bind-Vorgang wird verwendet, um sich beim LDAP-Server zu authentifizieren und eine Sitzung zu etablieren. Der Client sendet seine Anmeldeinformationen an den Server, der dann überprüft, ob sie gültig sind.
 +  * **Search**: Die Search-Operation wird verwendet, um nach Einträgen im Verzeichnis zu suchen, die bestimmte Kriterien erfüllen. Der Client gibt die Suchkriterien an, wie z.B. den DN-Pfad, Attribute oder Filter, um die gewünschten Einträge zu finden.
 +  * **Add**: Die Add-Operation wird verwendet, um einen neuen Eintrag im Verzeichnis hinzuzufügen. Der Client sendet die Daten für den neuen Eintrag an den Server, der diese Informationen validiert und den Eintrag entsprechend erstellt.
 +  * **Modify**: Die Modify-Operation wird verwendet, um vorhandene Einträge im Verzeichnis zu ändern. Der Client gibt die zu ändernden Attribute und ihre neuen Werte an, und der Server aktualisiert den Eintrag entsprechend.
 +  * **Delete**: Die Delete-Operation wird verwendet, um einen Eintrag aus dem Verzeichnis zu löschen. Der Client gibt den DN des zu löschenden Eintrags an, und der Server entfernt den Eintrag aus dem Verzeichnis.
 +
 +
 +[[https://www.forumsys.com/2022/05/10/online-ldap-test-server/|Online LDAP Testserver]]
 +
 +{{domain-tree-forrest.jpg}}
 +
 +=====Tools=====
 +
 +  * adcli info servername
 +  * samba-tool spn list servername$
 +  * ldap-utils (ldapsearch, ldapadd, ldapremove,..)
 +====ldapsearch====
 +
 +Objekte suchen
 +
 +<code bash>
 +ldapsearch -x -h ldap://dc.domain.local -D "administrator@domain.local" -w "password" -b "ou=users,dc=mydomain,dc=com" -s sub "(objectClass=user)" 
 +
 +# sub: search filter for e.g (cn=Em Brain) (mail=*) (sn=*)
 +</code>
 +
 +====ldapadd====
 +
 +Objekte erstellen
 +
 +<code ldif>
 +# new_user.ldif
 +dn: cn=Max Mustermann,ou=Users,dc=example,dc=com
 +objectClass: inetOrgPerson
 +cn: Max Mustermann
 +sn: Mustermann
 +givenName: Max
 +mail: max.mustermann@example.com
 +userPassword: somesecretpassword
 +</code>
 +
 +<code>
 +ldapadd -x -H ldap://dc.dom.local -D "administrator" -w "password" -f new_user.ldif
 +</code>
 +
 +====ldapmodify====
 +
 +Objekte bearbeiten
 +
 +<code>
 +ldapmodify -x -H ldap://dc.dom.local -D <admin> -w <adminpass> -f template.ldif
 +</code>
 +===add attribute===
 +
 +<code ldif>
 +dn: cn=Max Mustermann,ou=Users,dc=example,dc=com
 +changetype: modify
 +add: title
 +title: IT Administrator
 +</code>
 +
 +===edit attribute===
 +
 +<code ldif>
 +dn: cn=Max Mustermann,ou=Users,dc=example,dc=com
 +changetype: modify
 +replace: telephoneNumber
 +telephoneNumber: +49 123 456789
 +</code>
 +
 +===delete object===
 +
 +<code ldif>
 +dn: ou=othergroup,dc=dom,dc=local
 +changetype: delete
 +</code>
 +=====PHP LDAP Funktionen=====
 +
 +<code>
 +ldap_8859_to_t61 --  Übersetzt 8859 Zeichen nach t61 Zeichen
 +ldap_add --  Einträge einem LDAP Verzeichnis hinzufügen
 +ldap_bind -- Bindung zu einem LDAP Verzeichnis
 +ldap_close -- Verbindung zum LDAP Server schliessen
 +ldap_compare --  Vergleicht gefundenen Wert eines Merkmal in einem Eintrag, der durch Angabe von dn bestimmt wird.
 +ldap_connect -- Verbindung zu einem LDAP Server
 +ldap_count_entries -- Zählt die Anzahl der Einträge bei einer Suche
 +ldap_delete -- Löscht einen Eintrag aus einem Verzeichnis
 +ldap_dn2ufn --  Konvertiert DN in ein benutzerfreundliches Namensformat
 +ldap_err2str --  Konvertiert eine LDAP Fehlernummer in einen Fehlertext
 +ldap_errno --  Liefert die LDAP Fehlernummer des letzten LDAP Kommandos
 +ldap_error --  Liefert die LDAP Fehlermeldung des letzten LDAP Kommandos
 +ldap_explode_dn --  Aufteilung eines DN in seine Bestandteile
 +ldap_first_attribute -- Liefert das erste Merkmal
 +ldap_first_entry --  Liefert die Kennung des ersten Ergebnisses
 +ldap_first_reference --  Liefert die erste Referenz
 +ldap_free_result --  Gibt den belegten Speicher wieder frei
 +ldap_get_attributes --  Liefert Merkmale eines Suchergebnis-Eintrags
 +ldap_get_dn -- Liefert den DN eines Ergebnis-Eintrags
 +ldap_get_entries -- Liefert alle Ergebnis-Einträge
 +ldap_get_option --  Liefert den aktuellen Wert für eine gegebene Option
 +ldap_get_values --  Liefert alle Werte eines Ergebnis-Eintrags
 +ldap_get_values_len --  Liefert alle binären Werte eines Ergebnis-Eintrags
 +ldap_list -- Einstufige Suche
 +ldap_mod_add --  Hinzufügen von Merkmalswerten zu aktuellen Merkmalen
 +ldap_mod_del --  Löschen von Merkmalswerten aktueller Merkmale
 +ldap_mod_replace --  Ersetzen von Merkmalswerten mit neuen Merkmalswerten
 +ldap_modify -- Verändern eines LDAP-Eintrags
 +ldap_next_attribute --  Liefert das nächste Merkmal im Ergebnis
 +ldap_next_entry --  Liefert den nächsten Eintrag des Ergebnisses
 +ldap_next_reference --  Holt die nächste Referenz
 +ldap_parse_reference --  Gewinnt Informationen aus einem Referenz-Eintrag
 +ldap_parse_result --  Gewinnt Informationen aus einem Ergebnis
 +ldap_read -- Lesen eines Eintrags
 +ldap_rename --  Verändert den Namen eines Eintrags
 +ldap_search -- Suche im LDAP Baum
 +ldap_set_option -- Setzt den Wert der gegebenen Option
 +ldap_set_rebind_proc --  Set a callback function to do re-binds on referral chasing.
 +ldap_sort --  Sortiert LDAP Ergebniseinträge
 +ldap_start_tls --  Startet TLS
 +ldap_t61_to_8859 --  Übersetzt t61 Zeichen nach 8859 Zeichen
 +ldap_unbind -- Unbind von einem LDAP Verzeichnis
 +</code>
 +
 +=====Links=====
 +
 +  * https://www.selflinux.org/selflinux/html/ldap04.html
 +  * https://www.openldap.org/doc/
 +  * https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/
 +  * https://docs.huihoo.com/ubuntu/11.10/serverguide/openldap-server.html
 +  * https://www.youtube.com/watch?v=NcvIqK4G_fQ
 +  * https://www.youtube.com/watch?v=kSCx3tzC0cA