OpenLDAP服务器的学习

来源:互联网 发布:淘宝兼职刷单是真的吗 编辑:程序博客网 时间:2024/06/05 10:24

     

1、基本概念

 

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

       LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。常见的例子是通讯簿,由以字母顺序排列的名字、地址和电话号码组成。

目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。也就是目录服务不适于进行频繁的更新,属于典型的分布式结构。

总结:对于查询操作多于更新操作的(认证)系统来说,使用OpenLDAP是一个比关系数据库如MySq、PostgreSQL等更好的选择。


2、基本功能



      LDAP的功能模型中定义了一系列利用LDAP协议的操作,主要包含以下4部分:

查询操作:允许查询目录和取得数据,其查询性能比关系数据库好。

更新操作:目录的更新操作没关系数据库方便,更新性能较差,但也同样允许进行添加、删除、修改等操作。

复制操作:前面也提到过,LDAP是一种典型的分布式结构,提供复制操作,可将主服务器的数据的更新复制到设置的从服务器中。

认证和管理操作:允许客户端在目录中识别自己,并且能够控制一个会话的性质。


    LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。


3、基本属性


LDAP连接服务器的连接字串格式为:ldap://servername/DN

DN:Distinguished Name,可以叫做条目区分名。在一个目录中这个名称总是唯一的,也是用来标识一个节点的主要方式。它有若干属性:  

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

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

3、DC= DomainComponent 为目录结构

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

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


4、基本语法


LDAP中,schema用来指定一个目录中所包含的objects的类型(objectClass)以及每一个objectClass中的各个必备(mandatory)和可选(optional)的属性(attribute)。因此,Schema是一个数据模型,它被用来决定数据怎样被存储,被跟踪的数据的是什么类型,存储在不同的Entry下的数据之间的关系。schema需要在主配置文件slapd.conf中指定,以用来决定本目录中使用到的objectClass。管理员可以自己设计制定schema,一般包括属性定义(AttributeDefinition)、类定义(ClassDefinition)以及语法定义(SyntaxDefinition)等部分。

创建好schema文件后,将做好的schema文件拷贝到ldap的schema目录下。然后修改slapd.conf文件,将新的schema文件加入申明。



5、常见问题



配置主机DNS,添加与LDAP相关的域名,而大部分教程都没有提及这个,需要配置。安装好OpenLDAP后首先需要配置slapd.conf这个文件,其中里面有

suffix        "dc=example, dc=com"

这样一句需要自己配置,这两个dc代表什么意思呢?其实dc就是“domainComponent”,也就是域名的组成部分,准确的说是主机域名的后缀组成部分,如果这里的配置与你的主机域名不对应的话,服务一般是启动不了的。那么怎么配置域名呢?Linux和Windows下的配置文件如下:

Linux下:/etc/hosts

Windows下:C:\Windows\System32\drivers\etc\hosts

需要在hosts文件里添加一条域名(如果没配置的话),格式如下:

127.0.1.1       hostname.example.comhostname

比如我的主机名是min,并添加的域名配置是:

127.0.1.1       min.alexia.cnmin
那么相应的我就需要在slapd.conf里这样配置suffix:

suffix        "dc=alexia, dc=cn"
当然这里域名后缀不一定只有两级,也可以是hostname.example.com.cn,然后suffix就应该是“dc=example, dc=com, dc=cn”,这随便你怎么设置了,只要对应就行。

















0 0
原创粉丝点击