• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 访问 LDAP

php 搞代码 4年前 (2022-01-23) 28次浏览 已收录 0个评论

LDAP 的全称是“轻量级目录访问协议(Lightweight Directory Access Protocol)”,是一种简单的目录协议。所谓目录,是一种专门的数据库,可以用来服务于任何应用程序。在企业应用中使用 LDAP可以让企业范围内的所有应用程序LDAP 目录中获取信息,应用程序可以从网络上直接从 LDAP 目录获取信息,而不局限于操作系统与服务器的类型。这里主要介绍如何使用 PHP 来访问 LDAP。

连接 LDAP 服务器

PHP 中用于连接 LDAP 服务器的函数是 ldap_connect,其语法格式如下所示。

1

ldap_connect([string hostname [, int port]])

其中,hostname 是 LDAP 服务器所在的主机地址,port 是 LDAP 服务器的端口号。以下代码实现了对位于 192.168.3.1 地址的 LDAP 服务器的连接。

1

<?php

2

$ldap_host= “ldap://192.168.3.1”;//LDAP 服务器地址

3

$ldap_port= “389”;//LDAP 服务器端口号

4

$ldap_conn= ldap_connect($ldap_host,$l6来源gaodaimacom搞#^代%!码网搞gaodaima代码dap_port)ordie(“Can’t connect to LDAP server”);//建立与 LDAP 服务器的连接

5

?>

与前面介绍过的方法类似,上面的代码使用了“or die”来美化错误信息。

绑定 LDAP 服务器

绑定 LDAP 服务器的含义是使用特定的用户名或密码来登陆 LDAP 服务器。PHP 中用于绑定 LDAP服务器的函数是 ldap_bind,其语法格式如下所示。

1

ldap_bind(ldap_conn [, string username [, string password]])

其中,ldap_conn 是前面连接 LDAP 服务器时创建的连接对象,username 是登陆 LDAP 服务器时使用的用户名,password 是登陆时所用的密码。以下代码实现了对位于 192.168.3.1 地址的 LDAP 服务器的绑定。

1

<?php

2

$ldap_host= “ldap://192.168.3.1”;//LDAP 服务器地址

3

$ldap_port= “389”;//LDAP 服务器端口号

4

$ldap_user= “”;//设定服务器用户名

5

$ldap_pwd= “”;//设定服务器密码

6

$ldap_conn= ldap_connect($ldap_host,$ldap_port)//建立与 LDAP 服务器的连接

7

ordie(“Can’t connect to LDAP server”);

8

ldap_bind($ldap_conn,$ldap_user,$ldap_pwd)ordie(“Can’t bind to LDAP server.”);//与服务器绑定

9

?>

断开 LDAP 服务器

与 LDAP 服务器断开的过程与绑定 LDAP 服务器相反,PHP 中用于绑定 LDAP 服务器的函数是ldap_unbind,其语法格式如下所示。

1

ldap_unbind(ldap_conn)

其中,ldap_conn 是前面连接 LDAP 服务器时创建的连接对象。以下代码在绑定了对位于 192.168.3.1地址的 LDAP 服务器后与其断开连接。

01

<?php

02

$ldap_host= “ldap://192.168.3.1”;//LDAP 服务器地址

03

$ldap_port= “389”;//LDAP 服务器端口号

04

$ldap_user= “”;//设定服务器用户名

05

$ldap_pwd= “”;//设定服务器密码

06

$ldap_conn= ldap_connect($ldap_host,$ldap_port)//建立与 LDAP 服务器的连接

07

ordie(“Can’t connect to LDAP server”);

08

ldap_bind($ldap_conn,$ldap_user,$ldap_pwd)//与服务器绑定

09

ordie(“Can’t bind to LDAP server.”);

10

ldap_unbind($ldap_conn)ordie(“Can’t unbind from LDAP server.”); //与服务器断开连接

11

?>

查询 LDAP 目录内容

查询 LDAP 目录使用 ldap_search 函数来实现,其语法格式如下所示。

1

ldap_search(ldap_conn, base_dn, conditions)

其中,ldap_conn 是前面连接 LDAP 服务器时创建的连接对象。base_dn 是 LDAP 服务器的查询主键。conditions 是用于 LDAP 目录查询所用的条件。该函数返回一个结果对象,该结果对象保存查询到的所有记录。对于这个结果对象,可以使用 ldap_get_entries 函数进行简单的读取,其语法格式如下所示。

1

ldap_get_entries(ldap_conn, result)

其中,ldap_conn 是前面连接 LDAP 服务器时创建的连接对象,result 是前面查询 LDAP 目录时返回的对象。该函数返回一个数组,包含所有的结果记录。以下代码实现了对服务器上的内容进行查询。

01

<?php

02

$ldap_host= “ldap://192.168.3.1”;//LDAP 服务器地址

03

$ldap_port= “389”;//LDAP 服务器端口号

04

$ldap_user= “”;//设定服务器用户名

05

$ldap_pwd= “”;//设定服务器密码

06

$ldap_conn= ldap_connect($ldap_host,$ldap_port)ordie(“Can’t connect to LDAP server”);//建立与 LDAP 服务器的连接

07

ldap_bind($ldap_conn,$ldap_user,$ldap_pwd)ordie(“Can’t bind to LDAP server.”);//与服务器绑定

08

$base_dn= “ou=company,o=depart”;//定义要进行查询的目录主键

09

$filter_col= “mail”;//定义用于查询的列

10

<codeBitstream Vera Sans Mono','Courier New',Courier,monospace!important; font-size


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 访问 LDAP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址