LDAP服务架设
目前我只是使用OpenDS 2.2.0简单运行起来而已,这样就成了一个LDAP服务了。
打开OpenDS控制台,在OpenDS_HOME/bat/control-panel.bat
- 列表和计算条目数目
<?php
header("content-type:text/html;charset=utf-8");
if(!extension_loaded("ldap")){
if(substr(PHP_OS, 0,3)=="WIN"){
dl("php_ldap.dll");
}else{
dl("php_ldap.so");
}
}else{
echo "ldap 已经安装。<br/>";
}
$ldap = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ldap){
echo "连接到ldap服务器。<br/>";
$ldap_bind = ldap_bind($ldap, "cn=admin", "gbit");
if($ldap_bind){
echo "ldap binded successfully.<br/>";
$sr = ldap_list($ldap, "dc=example,dc=com", "sn=*");
echo "有".ldap_count_entries($ldap, $sr)."记录<br />";
//print_r($sr);
$info = ldap_get_entries($ldap, $sr);
//print_r($info["count"]);
for($i=0;$i<$info["count"];$i++){
print_r( $info[$i]["cn"][0]);
}
}else{
echo "ldap binded failed.<br/>";
}
ldap_unbind($ldap);
}
$i=1;
$password="password";
echo $password{$i};
//ldap_close($ldap);
?>
- 添加一个简单的条目
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
// 在添加一个条目时,cn、sn、objectClass是必填属性,每个属性都是一个对象数组。
// 添加姓名全称
$info["cn"][0]="John jeniess";
// 添加姓氏
$info["sn"][0]="jeniess";
// 添加对象类,此对象类用描述该条目的性质。
$info["objectClass"][0]="top";
$info["objectClass"][1]="inetOrgPerson";
$info["objectClass"][2]="organizationalPerson";
$info["objectClass"][3]="person"; // 个人条目
if(ldap_add($ds, "cn=John jeniess,dc=example,dc=com", $info)){
echo "添加成功~";
}
ldap_close($ds);
}
?>
- 修改条目
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
$info["cn"][0]="John jeniess1";
// 添加姓氏
$info["sn"][0]="jeniess1";
// 添加对象类,此对象类用描述该条目的性质。
$info["objectClass"][0]="top";
$info["objectClass"][1]="inetOrgPerson";
$info["objectClass"][2]="organizationalPerson";
$info["objectClass"][3]="person"; // 个人条目
// 编辑时不能在根目录中操作(RDN= Root DN),即必需要先有A分组,然后才能对A分组的条目进行修改。ou相当于dc为j的People分组。
if(ldap_modify($ds, "uid=user.4,ou=People,dc=j", $info)){
echo "编辑成功~";
}
ldap_close($ds);
}
?>
- 删除条目
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
$dn = "uid=user.5,ou=People,dc=j";
// 删除方法比较简单,直接输入条目的dn路径的就可以了。
if(ldap_delete($ds, $dn)){
echo "删除成功~";
}
ldap_close($ds);
}
?>
- 增加条目属性
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
// 添加属性时,只需要把想要添加的属性增加到数组中即可。
$info["st"][0]="jeniess address";
if(ldap_mod_add($ds, "cn=John jeniess,dc=example,dc=com", $info)){
echo "条目属性添加成功~";
}
ldap_close($ds);
}
?>
- 修改条目属性
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
// 修改属性时,只需要把想要添加的属性增加到数组中即可。
$info["st"][0]="jeniess address 111";
// 此方法与增加属性的方法相当
if(ldap_mod_replace($ds, "cn=John jeniess,dc=example,dc=com", $info)){
echo "条目属性编辑成功~";
}
ldap_close($ds);
}
?>
- 删除条目属性
<?php
$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");
if($ds){
$r = ldap_bind($ds,"cn=admin","gbit");
// 删除条目属性时,需要把它的value值也加进来才行,不然会认为没有此属性。
$info["st"][0]="jeniess address 111";
if(ldap_mod_del ($ds, "cn=John jeniess,dc=example,dc=com", $info)){
echo "条目属性删除成功~";
}
ldap_close($ds);
}
?>
LDAP的数据结构
标准键
值
描述
o |
gbit |
组织 organization的单词首字母 |
ou |
db center |
组织单位 organization unit的两个单词首字母 |
l |
amoy fujian china |
城市/所在地(location) |
uid |
linzq |
用户名。应该是用到验证的用户名,与我们在数据库中用于登陆的用户名一样。 |
c |
zh-cn |
国家(country) |
cn |
林忠青 |
用户全名 |
sn |
林 |
用户名中的姓 |
st |
available |
状态,用户的使用状态(status) |
givenName |
忠青 |
用户名中的名字 |
employeeNumber |
A445 |
员工编号 |
employeeType |
|
员工类型 |
description |
|
描述 |
mail |
linzq@gbit.com |
邮箱地址 |
telephoneNumber |
13799265585 |
电话 |
facsimileTelephoneNumber |
|
传真号码 |
mobile |
|
移动电话号码 |
pager |
|
寻呼机号码 |
photo |
|
相片(应该是存放相片的字节流) |
postalAddress |
|
邮政地址 |
postalCode |
|
邮政编码 |
homePhone |
|
住宅电话号码 |
roomNumber |
|
门牌号 |
preferredLanguage |
zh-cn |
母语 |
street |
|
街道地址 |
entryDN |
cn=林忠青,dc=example,dc=com |
唯一标识 |
entryUUID |
b2d07f19-0214-425b-a652-409a84ed9ac4 |
全局ID值 |
userPassword |
e1NTSEF9aXUwSlNPWEEzejRBQlhOemd
0Q3NDaXdENUh1cmo4Y2labTBzeWc9PQ== |
用户密码 |
分享到:
相关推荐
**LDAP使用手册** LDAP(Lightweight Directory Access Protocol)是一种轻量级的目录访问协议,源自X.500协议但经过简化,适用于访问目录服务。它具有以下特点: 1. **存储灵活性**:LDAP能够存储在其他环境中...
### LDAP使用手册知识点详解 #### 一、LDAP简介 LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问目录服务的标准协议。它源自于X.500目录访问协议,但在实现上进行了简化,使得...
### 自己总结的LDAP使用经验 #### LDAP(轻量级目录访问协议)介绍 LDAP,全称为Lightweight Directory Access Protocol,即轻量级目录访问协议,是由美国密歇根大学开发并由IETF(互联网工程任务组)采纳为标准的一...
Open LDAP是一个广泛使用的轻量级目录访问协议(LDAP...配置Open LDAP使用TLS通信是一个需要综合考虑安全、稳定和效率的过程,不仅需要对LDAP协议有深入的理解,还要求管理员对服务器安全配置和维护有充分的知识和经验。
4. **过滤器支持**:允许使用标准的LDAP过滤语法进行复杂查询。 5. **属性编辑**:对每个条目的属性进行可视化编辑。 6. **脚本支持**:通过内置的JavaScript引擎,用户可以编写脚本来自动化执行一些任务。 **LDAP...
### LDAP使用手册知识点详解 #### 一、LDAP简介 **LDAP**(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种广泛应用于企业环境中的目录服务标准。它源自于更早的X.500标准,后者是由ITU-T和...
5. 使用指南:文档还包括用户指南部分,虽然具体细节未列出,但可以推断该部分将提供有关如何使用LDAP插件进行身份认证和授权的具体指南。 6. 发布说明与变更日志:这些部分记录了插件的版本信息和与之相关的改进、...
### LDAP使用手册 #### LDAP简介 LDAP(Lightweight Directory Access Protocol),即轻量级目录访问协议,是一种基于TCP/IP的应用层协议,用于访问目录服务。它源于ITU-T X.500标准,但进行了简化处理,使其更加...
本篇文章将深入探讨如何在Spring MVC项目中集成并使用LDAP进行用户身份验证和管理。 首先,理解LDAP的基本概念至关重要。LDAP目录服务是一种基于树形结构的数据存储,其中每个条目都有唯一的标识符(DN,...
Java 使用 LDAP 修改 AD 域用户密码 本文将详细介绍如何使用 Java 语言通过 LDAP 协议修改 Windows Active Directory 域用户的密码。同时,本文也将对相关概念进行解释,以便读者更好地理解整个过程。 LDAP 概念 ...
LDAP的特点是使用树状结构来存储数据,其中每个条目(Entry)都代表一个对象。 OpenLDAP是LDAP协议的开源实现,它遵循互联网标准并广泛应用于各种系统和应用中。OpenLDAP项目包括用于管理LDAP目录信息的服务器端...
结合LDAP使用时,可以实现基于用户身份的动态文件系统挂载,即根据用户的LDAP信息自动挂载相应的文件系统。 1. **配置AutoFS服务器**:设置auto.master文件指向特定的挂载配置文件,如/auto.ldap。 2. **定义挂载...
LDAP 介绍及简单使用指南 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是一种目录服务协议,用于提供目录信息服务。目录服务是一种特殊的数据库系统,专门针对读取、浏览和搜索操作进行了...
2. **设置LDAP端口号**:默认情况下,LDAP使用389端口。确保防火墙已打开此端口,同时防病毒软件没有监控它。 3. **配置LDAP的Internet站点参数**:如果启用了从"服务器\Internet站点"文档加载Internet配置,需在...
LDAP 使用树形结构来组织信息,每个条目(Entry)都有一个唯一的标识符(DN,Distinguished Name),并且可以拥有多个属性。 2. **LDAP操作**:LDAP 支持多种操作,如搜索(Search)、添加(Add)、删除(Delete)...
4. **端口开放**:默认情况下,LDAP使用端口389进行通信,如果使用的是Windows 2008,则可能需要额外配置端口。 ##### 3.2 安装OpenLDAP服务器 以CentOS为例,可以通过以下命令安装OpenLDAP服务器: ```bash sudo...
“Object Class Violation”错误提示是LDAP使用过程中常见的问题之一。通过理解对象类的概念、明确错误的原因以及采取相应的解决措施,可以有效地解决此类问题。在处理类似问题时,仔细检查配置文件、清理无效数据、...