授权管理-LDAP-介绍与环境搭建

栏目: 数据库 · 发布时间: 5年前

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

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把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。类型的一个例子就是mail,其值将是一个电子邮件地址。

LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。

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

2. LDAP简称对应

  • c – countryName(国家)
  • dc – domainComponent(域名)
  • o– organization(组织-公司)
  • ou – organization unit(组织单元-部门)
  • sn – suer name(真实名称)
  • cn – common name(常用名称)

3. 目录设计

设计目录结构是LDAP最重要的方面之一。下面我们将通过一个简单的例子来说明如何设计合理的目录结构。该例子将通过Netscape地址薄来访问。假设有一个位于美国US(c=US)而且跨越多个州的名为Acme(o=Acme)的公司。Acme希望为所有的雇员实现一个小型的地址薄服务器。

1、我们从一个简单的组织DN开始:

dn: o=Acme, c=US

Acme所有的组织分类和属性将存储在该DN之下,这个DN在该存储在该服务器的目录是唯一的。Acme希望将其雇员的信息分为两类:管理者(ou= Managers)和普通雇员(ou=Employees),这种分类产生的相对区别名(RDN,relative distinguished names。表示相对于顶点DN)就shi :

dn: ou=Managers, o=Acme, c=US

dn: ou=Employees, o=Acme, c=US

在下面我们将会看到分层结构的组成:顶点是US的Acme,下面是管理者组织单元和雇员组织单元。因此包括Managers和Employees的DN组成为:

dn: cn=Jason H. Smith, ou=Managers, o=Acme, c=US

dn: cn=Ray D. Jones, ou=Employees, o=Acme, c=US

dn: cn=Eric S. Woods, ou=Employees, o=Acme, c=US

为了引用Jason H. Smith的通用名(common name )条目,LDAP将采用cn=Jason H. Smith的RDN。然后将前面的父条目结合在一起就形成如下的树型结构:

cn=Jason H. Smith

+ ou=Managers

+ o=Acme

+ c=US

-> dn: cn=Jason H. Smith,ou=Managers,o=Acme,c=US

2、现在已经定义好了目录结构,下一步就需要导入目录信息数据。

目录信息数据将被存放在LDIF文件中,其是导入目录信息数据的默认存放文件。用户可以方便的编写 Perl 脚本来从例如/etc/passwd、NIS等系统文件中自动创建LDIF文件。

下面的实例保存目录信息数据为testdate.ldif文件,该文件的格式说明将可以在man ldif中得到。

在添加任何组织单元以前,必须首先定义Acme DN:

dn: o=Acme, c=US

objectClass: organization

这里o属性是必须的。o: Acme

下面是管理组单元的DN,在添加任何管理者信息以前,必须先定义该条目。

dn: ou=Managers, o=Acme, c=US

objectClass: organizationalUnit

这里ou属性是必须的。ou: Managers

第一个管理者DN:

dn: cn=Jason H. Smith, ou=Managers, o=Acme, c=US

objectClass: inetOrgPerson

cn和sn都是必须的属性:

cn: Jason H. Smith

sn: Smith

但是还可以定义一些可选的属性:

telephoneNumber: 111-222-9999

mail: headhauncho@acme.com

localityName: Houston

可以定义另外一个组织单元:

dn: ou=Employees, o=Acme, c=US

objectClass: organizationalUnit

ou: Employees

并添加雇员信息如下:

dn: cn=Ray D. Jones, ou=Employees, o=Acme, c=US

objectClass: inetOrgPerson

cn: Ray D. Jones

sn: Jones

telephoneNumber: 444-555-6767

mail: jonesrd@acme.com

localityName: Houston

dn: cn=Eric S. Woods, ou=Employees, o=Acme, c=US

objectClass: inetOrgPerson

cn: Eric S. Woods

sn: Woods

telephoneNumber: 444-555-6768

mail: woodses@acme.com

localityName: Houston


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

第二次机器革命

第二次机器革命

[美]埃里克·布莱恩约弗森 / 蒋永军 / 中信出版社 / 2014-9 / 59.80

“一本非常鼓舞人心的书!”——托马斯•L•弗里德曼 《世界是平的》作者 一场革命开始了! 在《第二次机器革命》这本书中,埃里克•布莱恩约弗森和安德鲁•麦卡菲——这两位处于数字技术时代最前沿的思想家,向我们阐述了驱动我们经济和生活的发生变革的力量。他们认为,数字技术将会给我们带来难以想象的巨大变革:想象一下令人眩目的个人数字技术产品、一流的基础设施,都将会给我们带来极大的便利。数字技术(......一起来看看 《第二次机器革命》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具