基于Linux的目录服务实现

2016-01-29 19:51 10 1 收藏

基于Linux的目录服务实现,基于Linux的目录服务实现

【 tulaoshi.com - Linux 】

       基于Linux的目录服务实现
  · 魏星 王舒晟·CPCW
  
  摘要:
  
   本文的目的是通过使用Linux系统支持的应用软件包(openldap),快速实现基于LDAP协议的目录服务系统来支持Windows消息簿中的用户查询功能。作者从用户的观点介绍了目录服务的特点,并比较了其与通常使用的关系数据库在处理数据上的差别,作者只是普通的Linux的爱好者,尝试将所学到的一点Linux知识进行综合应用,希望对大家有所启发。
  
  关键字:目录、LDAP
  
   如果需要开发一种提供公共信息查询的系统,如通过用户姓名能够获得该用户的邮件地址、家庭住址等信息,如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

来源:https://www.tulaoshi.com/n/20160129/1510242.html

延伸阅读
标签: Java JAVA基础
一、AOP编程概览 面向对象编程技术进入软件开发的主流对软件的开发方式产生了极大的影响,开发者可以用一组实体以及这些实体之间的关系将系统形象地表示出来,这使得他们能够设计出规模更大、更复杂的系统,开发周期也比以前更短。OO开发的唯一问题是,它本质上是静态的,需求的细微变化就可能对开发进度造成重大影响。...
标签: SQLServer
  一、在Analysis Services项目中定义数据源视图 1、根据模板创建Analysis Services项目 BIDS(Business Intelligence Development Studio)利用模板创建不同类型的项目,Analysis Services项目即为其中的一个模板,而且这些模板是可自定义的。 2、定义数据源 使用Native OLE DB\Microsoft OLE DB Provider for SQL Server...
域名服务器搭建主要涉及的文件主要有: (1)/etc/named.conf,此文件一般是个软链接; (2)/etc/hosts(非必须) (3)/etc/host.conf (一般不需要修改,有 order hosts,bind即可) (4)/var/named/* 此文档只是一个NFS的初级搭建工程,就是能够运行的级别,没有什么高级设置,目的是快速入门。 当然首先要查查系统是否已经安装了DN...
标签: word
Word 2007实现自动编排目录   许多同学在文章开头手动做了个目录,但是自己反复增删、导师不断修改后,每次都用辛苦地把目录重新编排一遍。要把目录里的页码和实际的页码核对一致更是头让你吐血。 我们看一下,怎么添加自动生成的目录。 现在大家看这个没有太多格式的文档,假设它就是你的论文。 在 Word 2007 中目...
 Ajax(asynchronous javascript and xml)异步的javascript和xml.     是为了解决传统的web应用中"发送请求-等待响应"这种模式的弊端,(浏览器在发送完请求后,只能等待服务器的响应,用户不能做其他的操作,浏览器发送完请求,会抛弃整个页面,等待服务器返回新的页面,也就是说,浏览器和服务器之间交互...

经验教程

799

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部