Lektion 20: LDAP (Lightweight Directory Access Protocol)

Derzeit, große Systeme zu bauen, ist es, wie man Daten, aus denen kann zwischen verschiedenen Systemen geteilt werden integrieren entscheidender Bedeutung. Insbesondere die Integration von Benutzerkonten ist die wichtigste Problem der “kritischen” auf.

Stellen Sie sich ein System mit ca. 5-6 verschiedenen Modulen, jedes Modul wird auf einer anderen Plattform entwickelt (Dort wird er mit Oracle Portal + AS, jemand DB2 mit WebSphere verbringen, andere hochrangige MySQL mit phpNuke, dann verbrachte er Fenster er dann installiert Linux, gibt es nur ein Verrückter wie Unix … hic, ist das wahre Leben die richtige Größe Tank), so sollte es ein anderes System Benutzer. Also, mit jedem Modul müssen die Benutzer einen Benutzernamen, ein anderes Passwort, das nicht akzeptabel ist zu haben. Benutzer, dass das System bald angewidert.

Wie kann auf die Systemintegration zwischen den Nutzern? Die Antwort ist LDAP.

Was ist LDAP Flossen?

LDAP – das Lightweight Directory Access Protocol, oder ins Vietnamesische übersetzt bedeutet schnelle Zugriffsprotokoll für Verzeichnisdienste.
• Ein Protokoll zu finden, greifen die Verzeichnisinformationen Form auf dem Server.
• Es ist eine Form von Protokoll-Client / Server verwendet, um Verzeichnisdienste zugreifen.
• LDAP läuft über TCP / IP oder andere verbindungsorientierte Dienste.
• Als Informationsmodell ermöglicht die Festlegung der Struktur und den Eigenschaften der Informationen in dem Verzeichnis.
• Ein Namespace können Sie festlegen, wie die Informationen referenziert und organisiert
• Ein Betriebsmodell erlaubt uns, die Referenz-und Datenverteilung zu identifizieren.
• Eine erweiterbare Protokoll
• als Informationsmodellerweiterungen.

Hier müssen wir, um Verwechslungen zwischen “Ordner”, wie der Ordner oder ein Verzeichnis auf Windows, die ein Verzeichnis in einem engen Sinne, das Dateisystem zu verwalten, ist zu vermeiden. Aus dem LDAP-Verzeichnis in einem breiteren Sinne, impliziert dies, die im Verzeichnis-Format (oder Index) gelistet Datenstrukturen – eine “Stichwort” Volksbibliothek bezieht sich, wie die Daten zu sortieren Der bequemste Zugang.

Arbeiten mit LDAP via PHP

Grundsequenz mit LDAP-Operation, wenn einschließlich der Schritte
• Connect (verbinden mit LDAP)
• Bind (Verbindungstyp: anonym oder authentifizierte Anmeldung)
• Search (Suche)
• Interpretieren Suche (Suchgriff)
• Ergebnis (Ergebnis)
• Enge Verbindung (Verbindung geschlossen)

Ldap_connect ():
Funktion verbindet sich mit dem LDAP-Server, diese Funktion hat zwei Parameter: Hostname (LDAP Server-Namen) und Port (Port, Standardport 389)
Ldap_connect (string hostname, int port);

PHP:
<?php

// LDAP variables
$ldaphost "ldap.example.com" // your ldap servers
$ldapport 389 // your ldap server's port number

// Connecting to LDAP
$ldapconn ldap_connect $ldaphost $ldapport )
or die( 
"Không thể kết nối được đến $ldaphost " ); 

Ldap_bind ();
Ham Verbindung mit LDAP-Server in der Lage, mit LDAP arbeiten
ZB eine Verbindung mit dem LDAP-Server mit einem gültigen Benutzernamen und Passwort

PHP:
 <?php

// using ldap bind
$ldaprdn 'uname' // ldap rdn or dn
$ldappass 'password' // associated password

// connect to ldap server
$ldapconn ldap_connect "ldap.example.com" )
or die( 
"Could not connect to LDAP server." );

if ( $ldapconn ) {

// binding to ldap server
$ldapbind ldap_bind $ldapconn $ldaprdn $ldappass );

// verify binding
if ( $ldapbind ) {
echo 
"LDAP bind successful..." ;
} else {
echo 
"LDAP bind failed..." ;
}

}

?> 

Wenn Sie mit dem Recht auf anonyme Verbindung

PHP:
<? Php

/ / Verwendung von LDAP bind anonym

/ / Verbindung zum Server-LDAP-
Ldap_connect ldapconn = $ ("ldap.example.com")
or die (
"Konnte nicht zum LDAP-Server verbinden.");

if ($ ldapconn) {

/ / Bindung anonym
Ldapbind ldap_bind = ($ ldapconn);

if ($ ldapbind) {
echo 
"LDAP bind anonyme erfolgreiche ...";
Else {}
echo 
"anonymen LDAP-Bindung fehlgeschlagen ...";
}

}

?>

ldap_search ();

PHP:
ldap_search resource link_identifier string base_dn string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref ]]]]] ) 

ZB Suche nach Informationen aller Menschen in “Meine Firma”, wo der Nachname oder in der Variablen $ Person enthalten Vorname. Dieses Beispiel erfordert die Server mehr Informationen über eine Immobilie gesucht werden herausfinden.

PHP:
<? Php
/ / $ Ds gültige Verbindungs-Kennung für einen Verzeichnis-Server

/ / $ Person ist ganz oder teilweise den Namen einer PersonzB "Jo"

Dn "o = Meine Firma, c = US";
Filter "(| (sn = $ Person *) (given = $ Person *))";
Justthese = array ("ou""sn""given""Mail");

Sr ldap_search ($ ds, $ dn, $ filter, $ justthese);

Info = $ ldap_get_entries ($ ds, $ sr);

echo $ info ["count""TRA Einträge \ n".
?>

Ldap_close ();

Schließt die Verbindung zu dem LDAP-Funktion Diese Funktion ist gleichwertig ldap_unbind ();

PHP:
bool ldap_unbind resource link_identifier ); 

Wenn dies gelingt, wird es zu schließen die Verbindung liefert TRUE, ansonsten FALSE.

Pin It