文档库 最新最全的文档下载
当前位置:文档库 › 使用LDAP在Web中实现基于角色的访问控制

使用LDAP在Web中实现基于角色的访问控制

使用LDAP在Web中实现基于角色的访问控制
使用LDAP在Web中实现基于角色的访问控制

收稿日期:2005-03-03

作者简介:谢轶才(1978—

),男,安徽人,硕士研究生,研究方向为网络安全。

使用LDAP 在Web 中实现基于角色的访问控制

谢轶才,殷兆麟

(中国矿业大学计算机学院,江苏徐州221008)

摘 要:当前多数Web 服务器采用的基于用户身份的访问控制方法不能适应大型企业的安全需求。而另一方面,RBAC 已成为一种公认的方便而有效的访问控制策略。为将它应用到Web 当中,可以利用LDAP 面向目录的特性,将LDAP 目录服务器当作角色服务器使用。用户或Web 服务器在一种安全模式下(在SSL 上)得到角色服务器中用户的角色信息,从而实施相关的RBAC 策略以达到访问控制的目的。文中给出这两种运行方式的框架并分析其利弊。关键词:访问控制;轻量级目录访问协议;基于角色的访问控制;安全套接字层

中图分类号:TP393.08 文献标识码:A 文章编号:1005-3751(2005)12-0164-03

Implementation of RBAC on Web Using LDAP

XIE Y i 2cai ,YIN Zhao 2lin

(College of Computer Science and Technology ,China University of Mining and Technology ,Xuzhou 221008,China )

Abstract :Current approaches to access control on Web servers do not suit to enterprise -wide systems because they are mostly based on in 2dividual user identities.On the other hand ,RBAC is considered a strong and efficient technology to manage and enforce security in large -scale systems.For its directory -oriented feature ,LDAP server can be used as a role server to apply RBAC to the Web https://www.wendangku.net/doc/7318437585.html,er or Web server pull the role information from the role server in a secure manner (over SSL ),then the Web server uses the roles for RBAC.Both operational architectures are described and a comparison is also given.K ey w ords :access control ;LDAP ;RBAC ;SSL

0 前 言

Web 技术的迅猛发展特别是基于Web 的网上贸易的

出现,使得Web 事务的安全性成为一个关注的焦点。而内联网的安全性很大程度上依赖于访问控制管理,因为它是系统保密性、完整性、可用性和合法使用性的基础。

当前的Web 服务器多数采用基于用户身份或用户组的访问控制策略,这种访问控制方法缺少可扩展性和灵活性,不能适应大规模的Web 应用环境。而RBAC (基于角色的访问控制)已经被公认为一种强而有效的访问控制技术。只要将Web 技术与RBAC 成功结合,就可以实现大型企业中安全有效的访问控制。这种方法的关键在于如何安全地提供用户的角色信息,使得Web 服务器能够信任该信息并使用它来实施RBAC 策略。

Park 和Sandhu 给出了两种在Web 上获取用户属性

途径的体系结构:user -pull 和server -pull ,每种体系结构都有基于用户和基于主机的模式[1]。这两种结构的区别在于:谁在“拉取(pull )”用户的属性?在前者当中,用户从属性服务器获取他的属性,然后将其递交给Web 服务器,

服务器根据属性采取动作。而在后者当中,是Web 服务器自己从属性服务器获取信息。

由于在Intranet 中,多个不同的系统都要求获取用户的角色信息,所以可以采用目录机制来消除数据的冗余和方便管理。笔者使用LDAP (轻量级目录访问协议)目录服务器作为角色信息服务器,用户或Web 服务器通过访问角色服务器获得用户的角色,然后Web 服务器通过

RBAC 来控制用户对资源的访问。为提供安全性,角色信

息的获取过程建立在SSL 协议上。

1 相关技术

1.1 RBAC

RBAC 已被公认为大规模企业级应用中最强效的访

问控制技术。不同于传统的MAC 和DAC ,访问控制策略体现在RBAC 模型里是用户—角色、角色—权限和角色—角色之间的关系。对RBAC 最基本的理解是:权限与角色

(而不是用户)相关联,用户被指派到一定的角色。图1是

一个简化RBAC 模型。一个用户可以是多个不同角色的成员,一个角色也可以包含多个不同用户;一个角色可以拥有多个不同权限,一个相同的权限也可以被多个不同角色拥有。图中用双箭头表示这种多对多的关系。

第15卷 第12期2005年12月 微 机 发 展Microcomputer Development Vol.15 No.12Dec.2005

图1 简化的RBAC 模型

以角色为中介,用户和它具有的权限分离开来,管理员可以将用户的授权和权限的划分进行分别处理,通过给用户授予角色来实现用户的授权操作。这大大简化了安全管理,例如在一个企业当中,可以根据工作岗位来划分角色,角色拥有的权限根据该岗位的职能确定,这样对用户的授权操作简化为给职员指定工作岗位。在机构人员发生变动时,只需在相应角色中添加或删减用户即可。

由于企业规模和复杂程度可能有相当大的差异,

RBAC 可以很简单也可能很复杂。Ravi Sandhu 在文献[2]中提出了4个RBAC 的由简单到复杂的梯度模型。其

中,RBAC0是任何支持RBAC 系统需要满足的最低要求。

RBAC1和RBAC2都包含RBAC0

,但是分别有各自的特

点。RBAC1增加了角色之间可以相互继承访问权限的层次的概念,而RBAC2则对RBAC 组件添加了限制条件的约束(如一个用户不能同属于两个在职能上互斥的角色),

RBAC 1和RBAC2相互独立。RBAC3则同时包含了RBAC1和RBAC2。1.2 LDAP

由于在企业内联网中,多个不同的系统都要求获取用户的信息,如用户名、密码、网络访问权限等,如果没有一个集中化的管理手段,这些信息就会零碎地在内联网中传输,将导致数据的冗余和不一致。目录机制被认为是解决此类问题的最佳方法之一。而轻量级目录访问协议

(LDAP )正是这样一个从面向目录的服务器传输项目的

协议。LDAP 最早由密歇根大学开发,它基于X.500目录服务,用较低的代价实现了X.500提供的大部分功能。同时与X.500不同的是,它在TCP/IP 协议栈上运行因而在因特网上迅速推广使用,而后者却是基于OSI 的网络协议的。

LDAP 应用C/S 架构,服务器端存储基于属性的信

息,提供目录服务。当LDAP 的客户请求LDAP 服务器中的某一项目时,LDAP 客户生成一个包含请求头的LDAP 消息,然后将此消息发送给LDAP 服务器。服务器从它的数据库中提取出相应项目,然后在一个LDAP 消息中发送回客户端,同时在另一独立的消息中终止会话。它的运行结构如图2所示。其中,服务端与数据仓库之间的连接采用了ODBC 机制,因而可以使用任何具有或支持ODBC 的数据库软件[3]。

图2 LDAP 服务器工作结构图

由于目录服务的这些特性,笔者使用LDAP 服务器和

客户端在Web 中实现RBAC 。

1.3 SSL(安全套接字层)

到目前为止,最初由Netscape 研发的SSL 仍然是

Web 中占统制地位的安全协议。可将SSL 看作是应用层

和传输层之间的一个层次,它在Web 客户和服务器之间提供了数据加密和身份鉴别。

该协议以一个握手阶段开始,就加密算法(如DES 或

IDEA 等)和密钥进行协商,还向客户鉴别服务器的身份(通过X.509证书)。作为选项,客户也可以向服务器鉴

别身份。一旦握手完成就开始传输应用程序数据,所有数据都用握手阶段的会话密钥加密。SSL 广泛应用于因特网商务中,几乎所有流行的浏览器和Web 服务器都实现了这一协议[4]。

在用户角色信息的传输过程中,需要一定的安全机制。虽然SSL 不是绝对安全的协议(如它不保障端系统的安全),但由于它的普及性和实现的方便,仍然是在Web 中实现安全通信的首选技术。

2 使用LDAP 实现Web 中的RBAC

如前所述,根据是由用户还是Web 服务器来获取角色信息这一判决条件,可以将运行体系分为user -pull 和

server -pull 。在两种架构中都有3个组件:客户端,Web

服务器和角色服务器。客户端使用浏览器通过HTTP 和

Web 服务器连接。角色服务器由管理员维护,在相应的

域中完成用户到角色的委任(user -role assignment ),文献

[5]中描述了一种实现方法。本节分别讨论如何在两种体

系结构下使用LDAP 实现Web 中基于角色的访问控制。

无论采用哪种结构,Web 服务器都需要首先对用户进行认证。用户可以向Web 服务器提交自己基于主机或基于自身标识的信息,前者如机器的IP 号码,后者如用户名/口令等。基于主机的认证模式相当便利,不需要用户的参与,但用户被限制到固定的机器,缺少对移动性的支持;相反,在基于用户标识的认证模式中,用户只需要拥有正确的认证信息就可以使用任意支持HTTP 的机器,但同时它需要用户的合作,如输入口令等。这两种认证模式都缺少足够的安全性。基于主机的方式很容易招致IP 哄骗攻击,基于用户的方式容易遭受嗅探或回放攻击。所以在特定应用中应采用更安全的认证方式如客户证书等。为服务器提供对客户的认证是SSL 的选项,采用这种方式时,需要对Web 服务器进行配置,让它接受并理解客户证书。需要注意的是,这个SSL 通道与后面讨论的安全提供用户角色信息的通道是完全独立的。

2.1 server -pull 结构下的RBAC

在这种结构中,用户不需要访问他的角色。相反,仅仅需要提供自己的认证信息。通过用户认证后,Web 服

务器从角色服务器获取用户的角色。如果角色服务器安全地提供用户的角色,Web 服务器就可信任该角色信息

?

561?第12期 谢轶才等:使用LDAP 在Web 中实现基于角色的访问控制

并随之进行RBAC 。

在具体的实现当中,系统选用OpenLDAP 作为角色服务器,它是Michigan 大学发布的免费软件,当前版本已经实现了LDAP v3的功能,它提供原代码,可以在包括

Linux ,Windows 在内的平台上运行。它提供对SSL 和TLS (Transport Layer Security ,传输层安全)的直接支持。

角色服务器中存储URA (User -Role Assignment ,用户-角色分配)信息,由管理员维护。Web 服务器中包含一个PRA (Permission -Role Assignment ,权限-角色分配)表,它定义了访问Web 服务器中某项资源所需的角色。此表被用来查对用户是否有足够权限对特定资源进行某项操作。用户通过HTTP 或者HTTPS 使用浏览器与Web 服务器连接。

事务细节流程如图3所示。一个客户将他的认证信息提交给Web 服务器(1),这里可以使用用户名/口令、IP 号码、客户证书或其它的技术来达到此项目的。Web 服务器使用相应的认证机制来认证用户。一旦用户成功认证(相反会得到错误消息),为客户返回一个初始页面(2),用户通过点击链接请求访问资源时(3),Web 服务器触发

CGI 脚本来执行LDAP 客户程序。LDAP 客户程序和服

务器建立一个SSL 连接(4)。在SSL 上客户端通过LDAP 发送一个查询请求(5),LDAP

服务器将用户的角色在同一个SSL 会话中送回LDAP 客户端(6)。Web 服务器将用户的角色同PRA 表格中的对比,向用户显示可以访问的资源列表(7)。

图3 Server -Pull 架构下的事务流程

2.2 在user -pull 结构中实现RBAC

在这种结构中,3个主要组件仍然是客户端、Web 服务器和角色服务器,但访问角色服务器的是用户。用户从角色服务器中先将其角色信息下载到本地机器(通过SSL 上的LDAP ),当他需要访问Web 服务器时,需要提交自己的认证信息和角色信息,通过客户身份认证和角色确认,

Web 服务器就可以根据PRA 表中的信息来实施对资源的

访问控制。

在这种工作系统中,必须考虑用户角色和身份的绑定问题,如果用户提交的是自己的身份和他人的角色,Web 服务器应能拒绝其连接请求。Park 和Sandhu 在文献[1]中提出了一些通用的将用户属性和身份绑定的方法。

3 两种体系结构的对比

以上所述的两种体系都能很好地工作,但由于它们自

身不同的特点,应当根据具体的应用环境合理选择以达到最佳的运行效率。以下对两种结构进行一些简单的对比。

user -pull 结构实现起来稍显复杂,需要提供用户身

份和角色信息的绑定机制,但它降低了Web 服务器的负担,可以提高其运行效率。另外它提供了很好的重用性。一旦用户获得他的角色,在角色的使用时效之前,他就能在不同的会话甚至不同的Web 服务器中使用。由于这个特点,user -pull 结构对于那些需要频繁地在多个不同站点上保持和使用角色信息的应用来说非常适用。然而采用这种方式,角色信息的“新鲜度”将不能保证。即是说,用户获得了他的角色后将长期持有,如果没有使用相应的同步程序,角色服务器中的对角色信息的更新将不能立即反馈到Web 服务器,这在某些关键的更新产生时可能会给系统带来安全隐患。

server -pull 结构实现起来更为简洁,但要求服务器

的合作以获得用户的角色信息,这就降低了Web 服务器的性能。在这种结构当中,每次会话Web 服务器从角色服务器获得用户的角色信息,这保证了用户角色信息的“新鲜度”,但当然也因此损失了重用性。因此,这种结构适用于常有重要角色信息更新产生的应用,如电子支付等。但是,在这种方式中,每次会话都要访问角色服务器,使它成为系统的瓶颈,引发单点故障。

4 结 论

使用RBAC 和LDAP 等较成熟的技术在Web 中实现了安全的访问控制。描述了在两种不同体系结构(user -pull 和server -pull )中的实现框架并将二者进行了简要的

对比。其中,对user -pull 结构中的主体身份和角色信息的绑定问题需要进一步深入的探讨。

参考文献:

[1] Park J S ,Sandhu R S.Binding identities and attributes using

digitally signed certificates[A].In Proceedings of 16th Annual Conference on Computer Security Application [C ].[s.l.]:IEEE Press ,2000.120-127.

[2] Sandhu R S ,Coyne E J ,Feinstein H L ,et al.Role -based ac 2

cess control models[J ].IEEE Computer ,1996,29(2):38-47.

[3] HOWES T ,SMITH M ,GOOD G.Understanding and Deploy 2

ing LDAP Directory Services[M].Indianapolis ,IN :Macmillan Publishing Co.,Inc.,1999.

[4] WA GNER D ,SCHNEIER B.Analysis of the SSL 3.0proto 2

col[A ].In Proceedings of the USENIX Conference on Elec 2tronic Commerce [C].Berkeley ,CA :USENIX Assoc.,1996.29-40.

[5] 桂艳峰,林作铨.一个基于角色的WEB 安全访问控制系统

[J ].计算机研究与发展,2003.40(8):1186-1194.

 

?

661? 微机发展 第15卷

LDAP配置

LDAP 中的访问控制列表 本节介绍Senior Level Linux Professional (LPIC-3) 301 考试的303.2 主题的内容。此主题的权值是2。 在本节中,学习如何: ?计划LDAP 访问控制列表 ?了解访问控制语法 ?授予和撤消LDAP 访问权限 LDAP 树中可以存储各种数据,包括电话号码、出生日期和工资表信息。其中一些数据可能是公开的,一些数据可能只能由由特定的人访问。根据用户的不同,同样的信息可能有不同的限制。例如,也许只有记录的所有者和管理员可以更改电话号码,但是每个人都可以读取这些号码。访问控制列表(ACL) 处理这些限制的配置。 计划LDAP 访问控制列表 在开始编写配置之前,应该确定要实现的目标。树的哪部分包含敏感信息?哪些属性需要保护,保护其不被谁访问?如何使用树? ACL 的组件 ACL 条目提供三条信息: 1.ACL 指定what条目和属性 2.ACL 应用于who 3.授予的access级别

指定 “what” 子句时,可以选择根据对象的区分名(distinguished name ,DN )、LDAP 风格的查询筛选器、属性列表或以上三者的 组合来进行筛选。最简单的子句允许一切内容,但也可以有很多限制。 根据 DN 筛选允许您指定精确匹配,比如 ou=People,dc=ertw,dc=com 或正则表达式 (参阅 “正则表达式”) 查询筛选器可以匹配特定的 objectClass 或其他属性。属性列表中的属性名称用逗号分隔。更复杂的匹配条件可以是 “身份是管理员的 ou=People,dc=ertw,dc=com 下的所有密码条目”。 可以灵活地确定将 ACL 应用于 who 。用户一般由绑定到树上的 DN 来识别,这称为 bindDN 。每个 LDAP 条目可以具有一个 userPassword 属性,用于对特定的用户进行身份验证。在一些上下文中,您可以将当前登录的用户称为自己, 这有利于允许用户编辑自己的详细信息。 如果用户没有绑定,则被视为匿名用户。默认情况下,匿名用户可以 读取树,所以您必须决定是否需要更改此行为。可以通过 IP 地址或 用于连接的方法(比如明文和加密的方法)来对匿名用户(或任何用户)进行分割。 一旦确定了 what 和 who ,必须确定访问级别。访问权限可以是无 一直到写 访问。还可以指定用户可以验证条目,但不可以读取;或可以允许用户读取、搜索和比较访问。 无论如何配置您的 ACL ,任何已配置的 rootDN 用户可以完全控制其数据库。不可以对此进行更改,除非将 rootDN 配置从 slapd.conf 中移除。 了解访问控制语法 ACL 的基本格式使用 Backus-Naur Form 表示,也就是: access to [ by [ ] [ ] ]+ 描述 what what 描述 ACL 强制的属性和条目。实现此目标的 BNF 表示法如清单 1 所示。 清单 1. ACL 的 what 部分的 BNF 描述

LDAP认证方式

LDAP认证方式,https加密传输 他们用的是WSS3.0 + LDAP认证方式,https加密传输,主要用于做文档管理,没有任何自己开发的代码在其中。 首先是关于崩溃问题(笔记记载如下): 前两天出了一点小故障,问题描述要比解决方案复杂得多。。 开始可以出现登录页面,但是登录上去就抱错,说找不到default页面,然后看到winows update里面有个sharepoint的升级,就运行了。重启了机器后sharepoint的务就挂了。。。 唯一能想到的修复方法就是运行那个sharepoint配置向导,但是第9步会说spadmin服务没有起,十分伤心。就扔下不管了。 今天有人要用了,只好硬着头皮看看,发现这次配置向导竟然通过了。唉,微软的东西就是搞不懂,不过网站还是起不来,就乱改了一通iis配置,然后又用配置向导修复了好几次,终于可以出现登录页面了,但总说我登录不上。研究了半天估计是ldap配置出了问题,果然一检查是把上面2的web.config给覆盖了,于是恢复了就好了。。。 现在想一想当初可能就是升级后把一些配置给我覆盖了吧。。 然后是关于WSS3.0如何使用LDAP认证的问题: 基本按照网上的一些步骤配置,不过有些改动,详细内容可以参考这个网页: https://www.wendangku.net/doc/7318437585.html,/helloitsliam/archive/2006/08/15/10027.aspx 这里只说一下具体做法 1. 从一个装了moss2007的机器上copy一个microsoft.office.server.dll文件放在桌面上,在 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI目录,然后将这个文件拖进c:\WINDOWS\assembly目录,注意一定要拖进。。 2. 修改sharepoint管理中心网站和web网站的web.config文件,默认在 c:\Inetpub\wwwroot\wss\VirtualDirectories\80(和另一个管理端口) 在这行和之间加入: 保存关闭。注意useDNAttribute="false"一句比较重要,搜索的资料很多没有说,否则会连不上。3. 打开sharepoint的管理中心(可以从开始->管理工具->),应用程序管理,验证提供程序,编辑现有的默认验证,验证类型选中表单,这里要打开一下匿名的权限(注意稍后再给禁掉),成员身份提供程序要和前面添加的一致,如LdapDemoMembership,角色管理不用填,最下面启用客户端集成,然后保存。

LDAP协议

目录服务 目录服务就是按照树状模式组织信息,实现信息管理和服务接口的一种方式。目录服务中一般包括两个方面的内容:第一个组成部分是:数据库,这种数据库有别于日常所用到的关系型数据库,它是一种分布型的数据库,并且需要一个描述数据的规则;第二个组成部分是:访问和处理数据库的相关的协议。 目录服务和关系数据库不同,目录服务不支持批量更新事务处理能力,目录一般只执行简单的更新操作,适合于进行大量数据的检索;目录具有广泛的复制信息的能力,从而在缩短响应时间的同时,提高了可用性和可靠性;目前,目录服务技术的国际标准有两个,即较早的X.500标准和近年迅速发展的LDAP标准。 X.500虽然是一个完整协议群组,但是其目录访问协议DAP这种应用层的协议是严格按照复杂的ISO七层协议模型制定的,对相关层协议环境要求过多,主要运行在unix机器上,在许多小系统上,如PC和Macintosh(苹果机)上无法使用,因此没有多少人按照DAP开发应用程序,TCP/IP协议体系的普及,更使得这种协议越来越不适应需要。 LDAP协议 LDAP全称为Light Directory Access Protocol,轻量级目录访问协议,LDAP 协议从1993年批准,有了V1版本,1997年发布了第三个版本LDAP v3,使得LDAP协议不仅仅做为X.500的简化版,同时提供了LDAP协议许多自有功能特性,LDAP V3协议也不是一个单一的协议,而是一个协议群组,包括内容如下: RFC2251-LDAP V3协议核心协议,定义了LDAP V3协议的基本模型和操作;RFC2252-定义了LDAP V3基本数据模式(Schema)以及标准的系统数据模式,Schema包括语法、匹配规则、属性类型和对象类; RFC2253-定义了LDAP V3中的分辨名(Differentiate Name, DN)表达方式;RFC2254-定义了LDAP V3中过滤器的表达方式; RFC2255-定义了LDAP V3中统一资源地址格式; RFC2256-定义了在LDAP V3中使用X.500的Schema列表; RFC2829-定义了LDAP V3的认证方式; RFC2830-定义了LDAP V3如何通过扩展使用TLS服务; RFC1823-定义了C的关于LDAP V3客户端开发接口; RFC2847-定义了LDAP数据导入、导出的文件接口LDIF; 在这些协议中,主要定义了LDAP的内容,同时定义了信息模型,确定了LDAP 目录中所存储的信息的格式和字符集,如何表示目录信息(定义对象类、属性、匹配规则和语法等模式)。 一个命名空间:确定对信息进行的组织方式即就是目录信息树DIT,以DN和RDN 为基础的命名方式,以及LDAP信息的Internet表示方式; 一个功能模型:确定可以在信息上执行的操作的通讯协议以及在客户端尽心这些操作的API接口; 一个安全框架:保证目录中信息的安全,匿名、用户名/密码、SASL等多种认证方式以及与TLS结合的通讯保护框架; 一个操作模型:分布式的操作模型,基于Referral方式的分布式操作框架; 一个LDAP扩展框架:基于控制和扩展操作的LDAP扩展框架。

LDAP使用手册

LDAP使用手册 一、LDAP介绍 LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。它是目录访问协议的移植,但是简化了实现方法。 二、目录服务与关系数据库之间的区别 a)目录查询操作比关系数据库有更高的效率,但是更新效率比关系数据 库低 b)目录不支持关系数据库那样的复杂查询,比如两个表的连接。 c)目录不支持多操作的事物完整性,没有方式确认一些操作是全部成功 还是全部失败 d)目录能够能好和更灵活的支持子查询和匹配查询 e)目录协议更适合应用于广域网,比如因特网或者大型公司的网络 f)目录的管理,配置,和调试比关系型数据库更简单 g)在使用关系数据库之前,必须首先定义表结构(模式)才可以进行操 作。而目录中所使用的模式是由LDAP定义好的一系列类组成的。对 于目录中的每条记录中必须属于其中的一个类或者多个类。这些类定 义了该记录中可以存储的信息。 h)目录以对象的形式存储数据。信息被组织成树型结构。 i)目录服务支持分布式存储结构,容易实现数据的扩展,能满足大容量 存储的要求。 三、LDAP的优点

1:可以存储在其它条件下很难存储的管理信息 2:数据安全可靠,访问控制粒度细腻。 3:LDAP是一个标准的,开放的协议,具有平台无关性。 4:数据分布广,规模可灵活扩充。 5:LDAP目录服务器可以使任何一种开放源代码或商用的LDAP目录服务器。 四、LDAP模型 LDAP模型是从协议中继承过来的。是LDAP的一个组成部分,用于指导客户如何使用目录服务 LDAP 定义了四个模型,包括信息模型,命名模型,功能模型,安全模型。 信息模型(LDAP information model) LDAP信息模型用于描述LDAP中信息的表达方式。 LDAP信息模型包含三部分Entries Attributes Values Entry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为, 目录树中的一个节点。在目录中添加一个Entry时,该 Entry必须属于一个或多个object class ,每一个object class规定了该Entry中必须要包含的属性,以及允许使 用的属性。Entry所属的类型由属性objectclass规定。 每一个Entry都有一个DN(distinguished name) 用于唯 一的标志Entry在directory中的位置。如下图所示: 根节点DN的命名有多种方法,其中之一就是域名命名法。

LDAP元素规范与应用

LDAP元素规范与应用 信息部 当前版本:v1.0 修改日期:2011-525 作者:王兵旺

目录 一、概述 (3) 二、ldap元素解读 (3) 三、ldap常用元素 (4) 3.1 常用元素 (4) 3.2 目录规范 (5) 四、ldap元素自定义 (6)

一、概述 本文仅描述ldap节点创建的方法及属性的匹配。通过剖析ldap的schema 来讲解如何有效的产生目录节点,最后达到信息化建设与维护的目标。需要了解开源openldap的安装配置与协议请参考《OpenLdap使用手册》。 二、ldap元素解读 openldap通过slapd.conf文件来引入所需的schema定义。整个schema主要描述了二大类元素:objectclass与attributetype。下面请跟我一起来解读两者之间的关联。 对于objectClass来说,初学者不妨把它理解为数据库中的一个table,如此一来,attributetype就是table中的一个coloum(这样比较好理解)。与数据库中的table,coloum不同的是,ldap中的objectClass呈现一种类似与面向对象编程中的继承关系。 objectClass在ldap中的具体表现形式就是诸多的对象类定义。如organization、country、person等等。每个对象类在声明语法中都会以下几个主要部分: 1、SUP 2、MUST 3、MAY SUP表示当前objectClass继承于另外某个objectClass。ldap的objectClass能表示一种继承的上下关系,如SUP top STRUCTURAL表示top是

ldap介绍

LDAP介绍 【摘要】在学习crm维护模块时,发现7层管理结构是存储在mysql的systree表中的,其实也可以使用LDAP来存储管理者的信息。本文介绍了一些LDAP的基本概念,及如何用LDAP来管理维护模块的7层管理者结构,并介绍了LDAP与MYSQL 的区别。 【关键词】LDAP,维护模块 1.LDAP简介 在介绍LDAP之前,先简单介绍一下目录服务。目录服务就是按照树状模式组织信息,实现信息管理和服务接口的一种方式。目录服务中一般包括两个方面的内容:第一个是数据库,这种数据库有别于日常所用到的关系型数据库,它是一种分布型的数据库,并且需要一个描述数据的规则;第二个组成部分是:访问和处理数据库的相关的协议。目录服务和关系数据库不同,目录服务不支持批量更新事务,目录一般只执行简单的更新操作,适合于进行大量数据的检索;目录具有广泛的复制信息的能力,从而在缩短响应时间的同时,提高了可用性和可靠性;目前,目录服务技术的国际标准有两个,即较早的X.500标准和近年迅速发展的LDAP标准。目录数据库常用于管理树状组织结构信息,如行政,人事教育,政府部门,社会保障,公安,军队信息等。 LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。LDAP协议从1993年批准,有了V1版本,1997年发布了第三个版本LDAP v3,LDAP V3协议也不是一个单一的协议,而是一个协议群组,包括内容如下:RFC2251-LDAP V3协议核心协议,定义了LDAP V3协议的基本模型和操作; RFC2252-定义了LDAP V3基本数据模式(Schema)以及标准的系统数据模式,Schema 包括语法、匹配规则、属性类型和对象类; RFC2253-定义了LDAP V3中的分辨名(Differentiate Name, DN)表达方式; RFC2254-定义了LDAP V3中过滤器的表达方式; RFC2255-定义了LDAP V3中统一资源地址格式; RFC2256-定义了在LDAP V3中使用X.500的Schema列表;

OpenLdap使用手册

OpenLdap使用手册 一、文档概述 (2) 二、LDAP简介 (2) 2.1 LDAP介绍 (2) 2.2 LDAP优劣 (3) 2.3 LDAP协议 (3) 2.4 LDAP服务器 (4) 2.5 LDAP使用权限 (4) 2.6 LDAP目标 (4) 三、安装配置 (5) 3.1 软件安装 (5) 3.2 软件配置 (5) 3.3 软件运行 (5) 3.4 初始数据 (6) 四、LDAP应用 (8) 4.1 LDAP常用属性 (8) 4.2LDAP Schema语法 (9) 五、LDAP客户端 (9) 5.1 增加目录属性 (10)

5.2 删除目录属性 (11) 5.3 修改目录属性 (11) 5.4 增加目录 (11) 5.5 修改目录 (12) 5.6 删除目录 (13) 六、应用举例 (14) 附录: (15) X.500 (15) 一、文档概述 本文从介绍ldap入手,讲述了ldap的使用场合,并进一步的指导用户进行openldap安装与配置。是新手入门的一个教程。 二、LDAP简介 2.1 LDAP介绍 LDAP的英文全称是Lightweight Directory Access Protocol,它是基于 X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP 支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把LDAP目录作为系统集成中的一个

LDAP简介

科技部科技基础性工作专项资金重大项目 研究成果 项目名称:我国数字图书馆标准规范建设 子项目名称:数字资源检索与应用标准规范研究 项目编号:2002DEA20018 研究成果类型:研究报告 成果名称:LDAP协议应用指南 成果编号:CDLS-S07-002 成果版本:总项目组推荐稿 成果提交日期:2003年2月 撰写人:张智雄(中国科学院文献情报中心)

项目版权声明 本报告研究工作属于科技部科技基础性工作专项资金重大项目《我国数字图书馆标准规范建设》的一部分,得到科技部科技基础性工作专项资金资助,项目编号为2002DEA20018。按照有关规定,国家和《我国数字图书馆标准规范建设》课题组拥有本报告的版权,依照《中华人民共和国著作权法》享有著作权。 本报告可以复制、转载、或在电子信息系统上做镜像,但在复制、转载或镜像时须注明真实作者和完整出处,并在明显地方标明“科技部科技基础性工作专项资金重大项目《我国数字图书馆标准规范建设》资助”的字样。 报告版权人不承担用户在使用本作品内容时可能造成的任何实际或预计的损失。 作者声明 本报告作者谨保证本作品中出现的文字、图片、声音、剪辑和文后参考文献等内容的真实性和可靠性,愿按照《中华人民共和国著作权法》,承担本作品发布过程中的责任和义务。科技部有关管理机构对于本作品内容所引发的版权、署名权的异议、纠纷不承担任何责任。 《我国数字图书馆标准规范建设》课题组网站(https://www.wendangku.net/doc/7318437585.html,)作为本报告的第一发表单位,并可向其他媒体推荐此作品。在不发生重复授权的前提下,报告撰写人保留将经过修改的项目成果向正式学术媒体直接投稿的权利。

LDAP中文学习手册

L D A P使用手册一、LDAP介绍 LDAP是轻量级目录访问协议的简称(LightweightDirectoryAccessProtocol). 用于访问目录服务。它是X.500目录访问协议的移植,但是简化了实现方法。 二、目录服务与关系数据库之间的区别 a)目录查询操作比关系数据库有更高的效率,但是更新效率比关系数据库低 b)目录不支持关系数据库那样的复杂查询,比如两个表的连接。 c)目录不支持多操作的事物完整性,没有方式确认一些操作是全部成功还是全 部失败 d)目录能够能好和更灵活的支持子查询和匹配查询 e)目录协议更适合应用于广域网,比如因特网或者大型公司的网络 f)目录的管理,配置,和调试比关系型数据库更简单 g)在使用关系数据库之前,必须首先定义表结构(模式)才可以进行操作。而目 录中所使用的模式是由LDAP定义好的一系列类组成的。对于目录中的每条记录中必须属于其中的一个类或者多个类。这些类定义了该记录中可以存储的信息。 h)目录以对象的形式存储数据。信息被组织成树型结构。 i)目录服务支持分布式存储结构,容易实现数据的扩展,能满足大容量存储的 要求。 三、LDAP的优点 1:可以存储在其它条件下很难存储的管理信息 2:数据安全可靠,访问控制粒度细腻。

3:LDAP是一个标准的,开放的协议,具有平台无关性。 4:数据分布广,规模可灵活扩充。 5:LDAP目录服务器可以使任何一种开放源代码或商用的LDAP目录服务器。四、LDAP模型 LDAP模型是从X.500协议中继承过来的。是LDAP的一个组成部分,用于指导客户如何使用目录服务 LDAP定义了四个模型,包括信息模型,命名模型,功能模型,安全模型。 1.LDAP信息模型(LDAPinformationmodel) LDAP信息模型用于描述LDAP中信息的表达方式。 LDAP信息模型包含三部分EntriesAttributesValues(条目属性值) Entry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为,目录树中的 一个节点。在目录中添加一个Entry时,该Entry必须属于一个 或多个objectclass,每一个objectclass规定了该Entry中必须 要包含的属性,以及允许使用的属性。Entry所属的类型由属性 objectclass规定。每一个Entry都有一个 DN(distinguishedname)用于唯一的标志Entry在directory中 的位置。如下图所示: 根节点DN的命名有多种方法,其中之一就是域名命名法。例如:我们要以公司 的网址作为公司目录树的根节点。如https://www.wendangku.net/doc/7318437585.html,那 么根节点的DN应该为DN:dc=sohu,dc=com 上图中根节点的DN:dc=example,dc=com而该根节点有两个子节 点,ou=people,和ou=servers。

LDAP服务器

第一八章LDAP服务器 学习目标: 了解LDAP服务器的相关知识。学会配置Mirapoint Directory目录服务器。 1LDAP基础 LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。现在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从 LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把 LDAP 目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。 1.1 LDAP的优势 如果需要开发一种提供公共信息查询的系统一般的设计方法可能是采用基于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目录到底有些什么优势了。现在LDAP的流行是很多因数共同作用的结果。可能LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。

LDAP协议与Weblogic Server设置简介

LDAP:轻量级目录访问协议及相关设置简介 LDAP的英文全称是Lightweight Directory Access Protocol,即轻量级目录访 问协议.我们知道,人们对计算机网络的使用和管理涉及了各种庞杂的资源,信息. 为了提高性能,便于使用,有效管理分布式应用的服务,资源,用户及别的对象信 息,这些信息需要清晰,一致地组织起来.基于这样的需求,描述各种用户,应用, 文件,打印机和其它可从网络访问的资源的信息被集中到一个特殊的数据库中, 这种数据库被称为目录.目录存放对象的公开或非公开的信息,这些信息以某种 顺序组织,描述了每个对象的细节.电话簿,图书馆藏书卡片目录就是常见的目录. LDAP是基于X.500标准的,访问 X.500 目录需要某种协议,例如:目录访问 协议 (DAP).然而,DAP 需要大量的系统资源和支持机制来处理复杂的协议.LDAP 仅通过使用原始 X.500目录存取协议 (DAP) 的功能子集而减少了所需的系统 资源消耗,而且可以根据需要定制.此外,与X.500不同,LDAP支持TCP/IP,这对访 问Internet是必须的. 为了能对LDAP协议进行更好的理解,我们需要对以下概念有初步的认识: 目录:Directory,存放对象的信息,这些信息以某种顺序组织,详细描述每个对象. 目录信息树:DIT,Directory Information Tree,目录条目的集合构成了目录信息树。 条目:Entry,目录信息树中的一个结点,是一个对象信息的集合,是目录信息中最 基本的单位,包含该对象的一系列属性. 属性:Attribute,属性描述对象的特征.一个属性由属性类型(type)和一个或多 个属性值 (values)构成. 相对标识名:RDN,Relative Distinguished Name,条目的名字. 唯一标识名:DN,Distinguished Name,在一个目录信息树中唯一标识一个条目的 名字. 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把数据

Java LDAP介绍

Java:LDAP (1) 什么是LDAP LDAP, Lightweight Directory Access Protocol, 轻量级目录访问协议,是X.500协议的简化版本。LDAP的规范为RFC 2251(ftp://https://www.wendangku.net/doc/7318437585.html,/in-notes/rfc2251.txt),"The Lightweight Directory Access Protocol (v3)"。Microfost的Active Directory,Lotus的Domino Directory、IBM的WebSphere都是LDAP的实现,LDAP的开源实现是OpenLDAP。 LDAP由以下几部分组成: LDAP协议,一个标准的、可扩展的Internet目录访问协议; 使用目录的四种模型:信息模型,信息如何存储;命名模型,如何安排和引用目录数据;功能模型,如何操作数据;安全模型,如何进行访问控制; LDIF,LDAP Data Interchange Format,标准的交换目录数据的文本格式; LDAP服务软件; 和LDAP服务软件捆绑在一起的命令行工具和基于LDAP的应用程序; LDAP编程API,用于开发LDAP客户应用程序。 (2) LDAP协议 客户端发起一个请求消息,请求LDAP服务器的某条目录信息,该请求包含唯一的消息ID,如下图。 服务器收到该请求后,返回客户需要的信息,然后在一条独立的消息中返回结果代码。客户端也可以在一条消息中请求多条目录信息,服务器依次返回这些目录条目,并在最后一条消息中返回结果代码,如下图。

客户端还可以同时发出多条请求消息,服务器响应这些请求,响应中包含请求消息ID,如下图。 $False$ LDAP协议的操作分为三大类: 查询操作:search, compare 更新操作:add, delete, modify, modify DN(rename) 认证和访问控制:bind, unbind, abandon 下图是一个典型的LDAP协议操作过程。 I. 客户端向LDAP服务器打开TCP连接,提交一个bind操作,该操作包含客户用来炎症的目录条目,以及验证凭据(通常为口令或者证书);

LDAP基本概念介绍(Lightweight Directory Access Protocol)

LDAP基本概念介绍(Lightweight Directory Access Protocol) 如果你在计算机行业工作,那么对LDAP可能早有耳闻了。想深入地了解LDAP吗?那么可以好好地读一下这篇文章。这篇介绍性的文章是一系列介绍如何在企业中设计、实现和集成LDAP环境的文章的头一篇。主要是先让你熟悉一下LDAP的基本概念,那些比较困难的细节问题将放到以后讨论。在这篇文章中我们将要介绍: 什么是LDAP? 什么时候该用LDAP存储数据? LDAP目录树的结构 单独的LDAP记录 作为例子的一个单独的数据项 LDAP复制 安全和访问控制 现在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。如果Oracle、Sybase、Informix或Microsoft SQL数据库中已经存储了类似的数据,那么LDAP和这些数据库到底有什么不同呢?是什么让它更具优势?请继续读下去吧!

什么是LDAP? LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP 的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。 怎么使用LDAP这个术语呢? 在日常交谈中,你可能会听到有些人这么说:“我们要把那些东西存在LDAP中吗?”,或者“从LDAP数据库中取出那些数据!”,又或者“我们怎么把LDAP和关系型数据库集成在一起?”。严格地说,LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议。更为确切和正式的说法应该是象这样的:“通过使用LDAP,可以在信息目录的正确位置读取(或存储)数据”。但是,也没有必要吹毛求疵,尽管表达得不够准确,我们也都知道对方在说什么。 LDAP目录是数据库吗? 就象Sybase、Oracle、Informix或Microsoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但是不是关系型数据库。不象被设计成每分钟需要处理成百上千条数据变化的数据库,例如:在电子商务中经常用到的在线交易处理(OLTP)系统,LDAP主要是优化数据读取的性能。 LDAP目录的优势 现在该说说LDAP目录到底有些什么优势了。现在LDAP的流行是很多因数共同作用的结果。我在这里说的不过是一些基本的原因,请你注意一下这不过是一小部分原因。 可能LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端

OpenLDAP

OpenLDAP篇 LDAP(轻量级目录访问服务),通过配置这个服务,我们也可以在linux下面使用目录的形式管理用户,就像windows下面的AD一样,方便我们管理。下面我们就一起来配置openldap服务。本文运行环境:CentOS 5。 软件需求: db-4.7.25.tar.gz (https://www.wendangku.net/doc/7318437585.html,/technology/global/cn/software/products/berkeley-db/index.h tml) openldap-stable-20090411.tgz (https://www.wendangku.net/doc/7318437585.html,/software/download/) phpldapadmin-0.9.8.5.tar.gz (https://www.wendangku.net/doc/7318437585.html,/wiki/index.php/Main_Page) 另外,运行phpldapadmin需要apache和php的支持,有关apache和php的安装,大家可以参考我的另一篇文章:Linux服务器部署系列之一—Apache篇 (https://www.wendangku.net/doc/7318437585.html,/379574/168534) 1. 安装openldap 1)安装BerkeleyDB # tar zxvf db-4.7.25.tar.gz # cd db-4.7.25/build_unix # ../dist/configure # make

# make install # vi /etc/ld.so.conf 加入一下语句: /usr/local/BerkeleyDB.4.7/lib # /sbin/ldconfig 2)安装openldap # tar zxvf openldap-stable-20090411.tgz # cd openldap-2.4.16 # env CPPFLAGS=”-I/usr/local/BerkeleyDB.4.7/include” LDFLAGS=” -L/usr/local/BerkeleyDB.4.7/lib” ./configure --prefix=/usr/local/openldap --enable-ldbm # make depend # make # make install 3)检查安装结果 安装好后,系统会自动生成一些.schema文件,我们可以使用命令:# ll /usr/local/openldap/etc/openldap/schema/*.schema来查看,如下图:

相关文档