Heim php教程 php手册 linux ldap认证:windos 和 linux 下实现PHP和LDAP身份认证

linux ldap认证:windos 和 linux 下实现PHP和LDAP身份认证

Jun 21, 2016 am 08:50 AM
connect host ldap


我现在的老板曾要求我为企业内部互联网的Web服务提供一种标准的身份验证方法。我遇到的一个主要问题就是我们公司主要使用了两种平台:UNIX和Windows。所以,我的第一个想法并不很成功:它要求每个员工都使用UNIX或者Linux而放弃Windows。
我认为解决现在的UNIX/Windows问题的最好方法就是利用PHP的LDAP特性。由于LDAP服务器,要求我使用现有的系统,主要指的是一个巨大的Microsoft Exchange Server系统。我非常高兴使用Exchange,它很可靠,而且LDAP特性的使用和配置也极为简单。不过,请你注意:这套方案就身份验证角度来看并不是最安全的。如果有较高等级的安全需求,我强烈建议你采用LDAP和SSL。
从哪里开始学习
为了让你入门,我给出了一个PHP LDAP函数的清单并对函数的功能给以简要说明。然后,我将演示如何建立到LDAP服务器的连接并验证用户。为了代码简单起见,我将演示PHP连接的功能以及如何绑定到LDAP服务器。
一对绝配:PHP和LADP
下面是我在例子中将要使用的函数的清单。网上有相关资料。
ldap_connect—用来连接LDAP服务。
ldap_bind—用来绑定到特定的LDAP目录。
ldap_error—从LDAP服务器上获得错误信息。
ldap_search—用来开始搜索。
ldap_get_entries—从搜索结果中获得多个结果。
ldap_close—关闭LDAP连接。
现在我在例子中演示如何使用第一个函数(代码清单A)并适当介绍该函数的功能。
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
?>
将会返回一个到LDAP服务器的连接(也称为资源,即resource)。ldap_connect函数有两个参数:主机(host)和端口。第一个参数:主机就是LDAP主机名称,第二个参数是LDAP运行的端口。默认情况下,LDAP使用的端口号为389。如果你需要到LDAP服务器的一个安全连接,你可以把参数host改为一个你可以访问的LDAP服务器的URL,如下所示:
$ldap[‘conn’] = ldap_connect( “ldaps://ldap.example.com” );
由于你指定了URL而不是服务器名称,在这种方法下,你就不需要使用端口参数了。需要牢记的一点就是确切名称需要与加密套接字协议层证书(the SSL certificate)对应。
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
?>
演示了如何用用户名和口令来绑定到服务器。我创建了一个合适的域名(domain name ,DN)并用用户的口令来合法连接到LDAP。我们通过使用域名和口令就可以让LDAP服务器通过身份认证并允许绑定连接,这样我们就成功的绑定上了。ldap_bind的返回值是一个布尔类型。我们可以根据返回值判断用户的登录证书是否有效。当这个过程结束后,你就可以知道用户身份是否得到了认证。
如果发生了错误会怎样?调用ldap_error函数是判断发生了什么错误的好方法。ldap_error函数返回了一个字符串,其中包含了LDAP服务器发生的最后错误的信息。

// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to server {$ldap[‘host’]} );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
if( !$ldap[‘bind’] )
{
echo ldap_error( $ldap[‘conn’] );
exit;
}
?>
中,我向脚本中添加了ldap_error函数,如果绑定到LDAP服务器的用户身份没有得到确认,那么代码将退出运行。该函数返回一个字符串,该字符串包含了发送到LDAP服务器的最后一条指令产生的错误信息。如果你按给定用户名和口令的绑定没有成功登录,那么错误信息将包含这对无效的用户名和口令。
在我们的最后一个例子中
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’; 本文链接http://www.cxybl.com/html/wlbc/Php/20121126/34395.html



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Windows 11-Aufforderungen zum Herunterfahren des Task-Hosts. Der Fenster-Task-Host führt die Lösung für das Herunterfahren-Task aus Windows 11-Aufforderungen zum Herunterfahren des Task-Hosts. Der Fenster-Task-Host führt die Lösung für das Herunterfahren-Task aus Feb 12, 2024 pm 12:40 PM

In letzter Zeit haben viele Win11-Benutzer berichtet, dass sie beim Herunterfahren die Meldung erhalten, dass der Task-Host taskhostwindow die Aufgabe zum Herunterfahren ausführt. Was ist also los? Benutzer können den Desktop-Ordner im lokalen Registrierungseditor aufrufen und dann im rechten Fenster AutoEndTasks auswählen, um ihn festzulegen. Lassen Sie diese Website den Benutzern die Lösung für dieses Problem beim Herunterfahren sorgfältig vorstellen. Das Herunterfahren von Windows 11 zeigt an, dass der Task-Host „taskhostwindow“ die Shutdown-Aufgabe ausführt. Lösung: 1. Verwenden Sie die Tastenkombination Win-Taste + R-Taste, geben Sie „regedit“ ein und drücken Sie die Eingabetaste, wie in der Abbildung unten gezeigt. 2. Suchen Sie nach [HKEY

So überprüfen Sie, ob Aggregator host.exe in Windows 11 sicher ist So überprüfen Sie, ob Aggregator host.exe in Windows 11 sicher ist Apr 13, 2023 pm 04:22 PM

Wenn wir den Task-Manager starten, um eine Aufgabe zu beenden oder eine Anwendung zu stoppen, sehen wir normalerweise eine große Anzahl laufender Prozesse. Das ist völlig normal. Manchmal sehen wir jedoch Programme, die Systemressourcen verbrauchen, von denen wir überhaupt nichts wissen. Einer dieser Prozesse ist der Aggregator host.exe, der in letzter Zeit für einige Verwirrung unter den Benutzern sorgte. Bei einigen dieser Prozesse handelt es sich möglicherweise um legitime Windows-Anforderungen, bei anderen handelt es sich jedoch möglicherweise um Schadprogramme, die im Hintergrund ausgeführt werden und ohne Wissen oder Zustimmung des Benutzers Probleme verursachen. Nachdem wir die fünf Möglichkeiten kennengelernt haben, wie Sie den Task-Manager in Windows 11 starten können, zeigen wir Ihnen, wie Sie überprüfen, ob aggregator host.exe sicher oder ein Virus ist. weitermachen

Was ist der Unterschied zwischen Master und Host? Was ist der Unterschied zwischen Master und Host? Sep 28, 2023 pm 01:34 PM

Die Unterschiede zwischen Master und Host sind: 1. Der Host kann die Rolle eines Clients oder Servers spielen, während der Master der zentrale Server ist, der für die Koordination und Verwaltung anderer Slave-Server in einem verteilten System verantwortlich ist. 2. Der Host ist ein gewöhnliches Computergerät und der Master Normalerweise werden höhere Rechenleistung und Ressourcen verwendet, um Aufgaben zu verarbeiten und zu verteilen, Daten zu verwalten und die Stabilität des gesamten Systems aufrechtzuerhalten. 3. Der Host ist ein Knoten im Netzwerk, und der Master ist der Server, der eine zentrale Rolle spielt das verteilte System.

Was tun, wenn keine Route zum Host vorhanden ist? Was tun, wenn keine Route zum Host vorhanden ist? Oct 07, 2023 am 10:50 AM

Zu den Lösungen für „Keine Route zum Host“ gehören die Überprüfung der Netzwerkverbindung, die Überprüfung der IP-Adresse und des Ports, die Überprüfung der Firewall-Konfiguration, die Überprüfung der Routing-Konfiguration, die Überprüfung der Netzwerkgerätekonfiguration, die Überprüfung des Netzwerkdienststatus, die Überprüfung der Netzwerkkonfiguration und die Kontaktaufnahme der Netzwerkadministrator. Detaillierte Einführung: 1. Überprüfen Sie die Netzwerkverbindung, um sicherzustellen, dass die Netzwerkverbindung zwischen dem Client und dem Zielhost normal ist. Sie können versuchen, die Netzwerkkonnektivität über den Ping-Befehl oder andere Netzwerktools zu testen und zu überprüfen, ob Hardwaregeräte wie Netzwerkkabel vorhanden sind , drahtlose Netzwerke und Router funktionieren ordnungsgemäß. Stellen Sie sicher, dass die Netzwerkverbindung stabil ist usw.

Wie man die LDAP-Injektion versteht Wie man die LDAP-Injektion versteht May 22, 2023 pm 09:47 PM

1. LDAP-Injection LDAP (Light Directory Access Portocol) ist ein leichtes Verzeichniszugriffsprotokoll, das auf dem X.500-Standard basiert. Es stellt Dienste und Protokolle für den Zugriff auf Verzeichnisdatenbanken bereit. Es wird häufig zur Bildung von Verzeichnisdiensten mit Verzeichnisdatenbanken verwendet. Das Verzeichnis ist eine professionelle verteilte Datenbank, die für Abfragen, Durchsuchen und Suchen optimiert ist. Es organisiert Daten in einer Baumstruktur, ähnlich dem Dateiverzeichnis in Linux/Unix-Systemen. Daten, die nicht häufig geändert werden, wie z. B. öffentliche Zertifikate, Sicherheitsschlüssel und Informationen zu physischen Unternehmensgeräten, eignen sich für die Speicherung im Verzeichnis. LDAP kann als Suchprotokoll verstanden werden, das SQL ähnelt und über eine Abfragesyntax verfügt, jedoch auch das Risiko von Injektionsangriffen birgt. Die LDAP-Injection bezieht sich auf den Client

So führen Sie Range-Übungen mit Bee-Box-LDAP-Injektion durch So führen Sie Range-Übungen mit Bee-Box-LDAP-Injektion durch May 13, 2023 am 09:49 AM

Wenn die Essenz der SQL-Injektion darin besteht, Zeichenfolgen zu spleißen, ist die LDAP-Injektion als eine Art Injektion keine Ausnahme. Interessanter ist, dass es sich um das Spleißen von Klammern handelt (SQL-Injektion). verkettet auch Klammern, es ist jedoch konventioneller zu sagen, dass es Zeichenfolgen verkettet). Im Kapitel zur Umgebungskonfiguration wurde die Konfiguration der LDAP-Umgebung in Bee-Box ausführlich besprochen. Im Übungskapitel zum Schießstand geht es mehr um den Verbindungsprozess zwischen PHP und LDAP, die Einführung der in der Mitte verwendeten Sonderfunktionen einige Techniken zum Zusammenfügen von Klammern. Lassen Sie uns zunächst über den Anmeldevorgang des LDAP-Schießstands in bwapp sprechen: Erstens handelt es sich um eine LDAP-Anmeldeschnittstelle, die URL lautet http://192.168.3.184/bW

Wo ist die Hostdatei? Wo ist die Hostdatei? Jan 04, 2021 am 11:25 AM

Die Hostdatei befindet sich unter dem Pfad „C:\Windows\System32\drivers\etc“. Die Hostdatei ist eine reine Textdatei, die mit gewöhnlicher Textbearbeitungssoftware wie Notepad geöffnet werden kann um die Zuordnungsbeziehung der IP-Adresse zum Hostnamen zu enthalten.

So konfigurieren Sie die Umgebung für die Bee-Box-LDAP-Injektion So konfigurieren Sie die Umgebung für die Bee-Box-LDAP-Injektion May 12, 2023 pm 08:37 PM

1. Überblick Nach meinem Lernprozess muss ich das Modell und die Schwachstelle meines Webangriffs kennen. Jetzt bin ich auf eine unerwartete Situation gestoßen. Das erste Mal, dass ich LDAP gesehen habe Ich habe ein unbeliebtes (autorisiertes) gefunden und mein Interesse daran geweckt. Das Konzept von LDAP: Vollständiger Name: Lightweight Directory Access Protocol (Lightweight Directory Access Protocol), Merkmale: Ich werde nicht über das Protokoll sprechen, es ist zu esoterisch, es kann als Datenbank zum Speichern von Daten verstanden werden, seine Besonderheit ist das Es handelt sich um einen Baum in Form einer Datenbank

See all articles