Linux系统快速实现基于LDAP协议目录服务

ciyuquan

ciyuquan

2016-02-20 13:24

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Linux系统快速实现基于LDAP协议目录服务的教程,热爱PS的朋友们快点看过来吧!

如果需要开发一种提供公共信息查询的系统,如通过用户姓名能够获得该用户的邮件地址、家庭住址等信息,如Yahoo提供的People search服务和Windows Outlook中提供的消息簿功能。

一般的设计方法可能是采用基于WEB的数据库设计方式,即前端使用浏览器而后端使用WEB服务器加上关系数据库。后端在Windows的典型实现可能是Windows NT + IIS + Acess数据库或者是SQL服务器,IIS和数据库之间通过ASP技术使用ODBC进行连接,达到通过填写表单查询数据的功能;后端在Linux系统的典型实现可能是Linux + Apache + Postgresql,Apache和数据库之间通过PHP3提供的函数进行连接。使用上述方法的缺点是后端关系数据库的引入导致系统整体的性能降低和系统的管理比较繁琐,因为需要不断的进行数据类型的验证和事务的完整性的确认;并且前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级。

目录服务的推出主要是解决上述数据库中存在的问题。目录与关系数据库相似,是指具有描述性的基于属性的记录集合,但它的数据类型主要是字符型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax),而不是关系数据库提供的整数、浮点数、日期、货币等类型,同样也不提供象关系数据库中普遍包含的大量的函数,它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现All-or-Nothing,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功能。

LDAP(Lightweight Directory Acess Protocol)是目录服务在TCP/IP上的实现(RFC 1777 V2版和RFC 2251 V3版)。它是对X500的目录协议的移植,但是简化了实现方法,所以称为轻量级的目录服务。在LDAP中目录是按照树型结构组织,目录由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有区别名DN(Distinguished Name)的属性(Attribute)集合,DN相当于关系数据库表中的关键字(Primary Key);属性由类型(Type)和多个值(Values)组成,相当于关系数据库中的域(Field)由域名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。LDAP协议集还规定了DN的命名方法、存取控制方法、搜索格式、复制方法、URL格式、开发接口等。

Linux支持的LDAP服务器一般有Michigan大学开发的免费软件包和Openldap组织基于Michigan大学的开发包提供的Openldap免费软件发行包,其中Openldap发行包安装配置更加简单。RedHat 6.1 Linux发行版中就包含了Openldap软件包,该发行版可从计算机世界报信息服务中心得到,对LDAP的支持是Redhat6.1提供的一个重要扩展,(参见Redhat 6.1产品介绍),以下详细介绍在Linux中安装并配置Openldap的方法,以及使用该软件包为Windows Outlook中的帐号提供消息簿的后端。

1.安装Openldap-1.2.7-2.rpm软件包

如果不是使用的RedHat 6.1直接进行系统安装,可以单独使用管理器rpm进行独立安装,其格式为:

       rpm - i openldap-1.2.7-2.rpm        rpm - i openldap-devel-1.2.7-2.rpm
  
2.相关文件

安装完毕后,相应的执行文件主要有:

/usr/sbin/slapd是单独运行的LDAP看守进程,它监听客户端请求,端口号一般是389。

/usr/sbin/slurpd是单独运行的LDAP更新和复制进程,它能够把本地数据库的变化通知相关服务器进行更新。

/usr/sbin/ldifldbm、/usr/sbin/ldbmcat等将LDIF(LDAP Directory Interchange Format)文件(实际是纯文本形式的文件)转化为gdbm形式的二进制数据文件以及相关的工具。

/usr/bin/ldapsearch、/usr/bin/ldapdelete、/usr/bin/ldapmodify、/usr/bin/ud等是LDAP的客户端软件,能够完成对目录的搜索、添加、修改、删除等功能。

生成的配置文件在/etc/openldap目录下,主要的配置文件有:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

slapd.conf是slapd和slurpd的配置文件,其一般形式如下:

  defaultaccess read      access to attr=userpassword by self write by * compare      access to attr=mail by self write by * read       include /etc/openldap/slapd.at.conf      include /etc/openldap/slapd.oc.conf      schemacheck off      #referral ldap://sunshine.mccc.net      pidfile /var/run/slapd.pid      argsfile /var/run/slapd.args      ########################################      # ldbm database definitions      ########################################      database ldbm      #suffix "dc=your-domain, dc=com"      #suffix "o=Your Organization Name, c=US"      suffix "o=mccc, c=US"      directory /usr/tmp      rootdn "cn=root, o=mccc, c=US"      rootpw secret      #replica host=zx.mccc.net:389      binddn="ou=people, o=mccc, c=US" bindmethod=simple
对这个配置文件的关键修改是对suffix后缀为本地的组织形式,可以按照域名的形式,也可以按照组织模式。其中的rootdn定义了本地目录树的根,rootpw即是相对于本目录树的管理员口令,缺省是使用的明文为“secret”。

其中的replica指定备份目录服务器的地址,如果是备份服务器则不需要replica配置项,而是添加udpatedn=主目录服务器的地址,同时指定referral为主目录服务器。同时,缺省的目录数据是以ldbm形式(Linux中实际gdbm格式)存放在/usr/tmp目录中。Access定义了对目录信息的访问信息,它是基于条目的,即用户自己可以通过输入自己的口令修改自己的数据,其口令存放在自己的口令域(userpassword)中。

ldap.conf是本地系统LDAP客户的缺省配置,启动slapd后可以使用客户端软件使用ldap.conf的信息作为缺省信息。根据我们的具体情况,将其修改为如下形式:

  BASE O=mccc,C=US      HOST sunshine.mccc.net

  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

3.生成目录数据

生成数据文件的方法:

编辑LDIF文件

LDIF文件是文本文件的形式,例如为Windows的消息簿提供一个目录格式可为如下形式:

     dn: o=mccc,c=US      o: mccc      objectclass: organization      dn: cn=test,o=mccc,c=US      cn: test      cn: 测试中文      mail: testmail@mccc.net      othermailbox: testmailother@mccc.com      givenname: givenname      sn: test sn      surname: surname     st: st      c: china     co: co      o: mccc     ou: ou      url: http://sunshine.mccc.net      homephone: homephone      homepostaladdress: homepostaladdress      facsimiletelephonenumber: facsimiletelephonenumber      otherfacsimiletelephonenumber: otherfacsimiletelephonenumber      officefax: officefax      mobile: mobile       otherpager: otherpager      officepager: officepager      pager: pager      info: info      title: title      telephonenumber: telephonenumber        l: location      postaladdress: postaladdress      streetaddress: streetaddress      department: department      comment: comment      postalcode: postalcode      physicaldeliveryofficename: physicaldeliveryofficename      initials: initials      conferenceinformation: conferenceinformation      labeleduri: labeleduri      manager: manager      reports: reports       objectclass: organization

  其中的:后面的值中均可以填写中文信息,使用上述格式主要是为了方便在Windows 消息簿中对照用户的信息。

展开更多 50%)
分享

猜你喜欢

Linux系统快速实现基于LDAP协议目录服务

电脑入门
Linux系统快速实现基于LDAP协议目录服务

基于Linux的目录服务实现

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux的目录服务实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux系统如何搭建搭建ldap服务器

电脑入门
Linux系统如何搭建搭建ldap服务器

基于Linux操作系统实现的传真系统

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux操作系统实现的传真系统

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

基于Linux系统服务器优化及安全配置

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux系统服务器优化及安全配置

Linux服务器集群系统实现方案解析

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux服务器集群系统实现方案解析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux市场一直没超越Windows的五大原因

Linux市场一直没超越Windows的五大原因

Linux新手学堂 Tar高级应用技巧详细介绍

Linux新手学堂 Tar高级应用技巧详细介绍
下拉加载更多内容 ↓