首页建站ldapserver(如何在Windows上搭建LDAP服务器)

ldapserver(如何在Windows上搭建LDAP服务器)

编程之家2024-02-06112次浏览

一、linux搭建ldap服务器详细步骤

ldap这种原始的服务器搭建起来比较复杂,同时它也是CE必考的(客户端的搭建)。

ldapserver(如何在Windows上搭建LDAP服务器)

1、安装openldap-servers软件包

2、查看ldap模板文件的存放位置:

3、拷贝ldap模板文件到配置文件目录并修改文件名为slapd.conf。

4、删除/etc/openldap目录下原有的文件,保留下这几个文件,注意:以前学时是要删除schema文件,直留下三个,但是我测试时如果删除schema服务将失败。

5、修改slapd.conf文件的权限:

6、修改sldap.conf配置文件:如下:(主要配好红色的就ok,没有的都是被注释掉的)

ldapserver(如何在Windows上搭建LDAP服务器)

复制代码

   

代码如下:

include/etc/openldap/schema/corba.schema

   include/etc/openldap/schema/core.schema

   include/etc/openldap/schema/cosine.schema

ldapserver(如何在Windows上搭建LDAP服务器)

   include/etc/openldap/schema/duaconf.schema

   include/etc/openldap/schema/dyngroup.schema

   include/etc/openldap/schema/inetorgperson.schema

   include/etc/openldap/schema/java.schema

   include/etc/openldap/schema/misc.schema

   include/etc/openldap/schema/nis.schema

   include/etc/openldap/schema/openldap.schema

   include/etc/openldap/schema/ppolicy.schema

   include/etc/openldap/schema/collective.schema

   allow bind_v2

   pidfile/var/run/openldap/slapd.pid argsfile/var/run/openldap/slapd.args

   database bdb suffix"dc=example,dc=com" checkpoint 1024 15 rootdn

   "cn=Manager,dc=example,dc=com"

   rootpw redhat

   directory/var/lib/ldap

   index objectClass eq,pres

   index ou,cn,mail,surname,givenname eq,pres,sub

   index uidNumber,gidNumber,loginShell eq,pres

   index uid,memberUid eq,pres,sub

   database monitor

   access to* by dn.exact="cn=Manager,dc=example,dc=com" read by* none

7、重启动ldap服务器:

8、创建ldap用户目录:

9、编辑一个自动创建ldap用户的脚本:

10、执行此脚本添加用户:

11、把ldap用户,组分别导出来,到一个文件中:(例子只做了组)用户在、/etc/passwd下

12、安装软件包:

13、去它的目录下编译ldap用户组文件:

14、修改migrate_common.ph文件:

15、执行./migrate_base.pl文件,并导出到一个目录下边,进行进行修改,只留下最基本的三个配置:

16,、分别使用./migrate_passwd.pl     ./migrate_group.pl编译我们已经导出的ldap用户和组文件:/mnt/user/mnt/group分别是从/etc/passwd/etc/group导出的ldap用户和组文件

/date/user.ldif /date/group.ldif是编译后生成的文件要以ldif结尾

17、看下/date下我们编译好的几个文件:

18、添加ldap用户和组:

首先提示输入密码,其次添加成功。

还有个用户,必须首先执行base.ldif文件,它是最基本的配置。

二、如何组建和操作LDAP数据库

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(NetworkInformation Service)、DNS(Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

1.1 LDAP的存储规则

区分名(DN,DistinguishedName)

和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。

在文件系统中,这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd,/opt/passwd,但是根据它们的完整路径,它们仍然是唯一的。

在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。比如,我的dn是"uid=aghaffar, ou=People, o=developer.ch"。不可能有相同的dn,但是我们可以有诸如"uid=aghaffar,ou=Administrators, o=developer.ch"的dn。这同上面文件系统中/etc/passwd和/usr/passwd的例子很类似。

我们有独一无二的属性,在"ou=Administrators,o=developer.ch"中uid和在"ou=People,o=developer.ch"中的uid。这并不矛盾。

CN=Common Name为用户名或服务器名,最长可以到80个字符,可以为中文;

OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;

O=Organization为组织名,可以3—64个字符长

C=Country为国家名,可选,为2个字符长

LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值(这与关系型数据库用行和列来存取数据有根本的不同)。

mail= testmail@mccc.net

othermailbox= testmailother@mccc.com

givenname= givenname

sn= test sn

属性可添加,以下一个属性必须赋值:

objectclass=person(值为:person或 server或organization或其他自定义的值)

2 PHP(PHP培训php教程)如何操作LDAP

2.1 Php如何与LDAP连接和关闭

$ds=ldap_connect("ServerName")

ServerName是LDAP的服务器名,

例:

$ds=ldap_connect(“10.31.172.30:1000”)

返回值是:true或false

关闭连接

ldap_close($ds);

2.2在php中如何搜索用户信息

$ds=ldap_connect("10.31.172.30:1000");

//首先连接上服务器

$justthese=array("cn","userpassword",”location”);

//搜索函数中的一个参数,要求返回哪些信息,

//以上传回cn,userpassword,location,这些都要求小写

$sr=ldap_search($ds,"o=jite","cn=dom*",$justthese);

//第一个参数开启LDAP的代号

三、什么是LDAP服务器

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP之上的访问协议—LDAP。

LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。条目相当于关系数据库中表的记录;条目是具有区别名DN(Distinguished Name)的属性(Attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(Primary Key)。属性由类型(Type)和一个或多个值(Values)组成,相当于关系数据库中的字段(Field)由字段名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。类型的一个例子就是mail,其值将是一个电子邮件地址。

LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织(organization)(o=Acme)或组织单元(organizational units)(ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有打印机等信息。此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例如:inetorgPerson对象类需要支持sn(surname)和cn(common name)属性,但也可以包含可选的如邮件,电话号码等属性。

从零开始学习单片机(从零开始的单片机学习(一))aspnetpager(aspnetpager使用介绍)