Ldap学习笔记

合集下载

LDAP中文学习手册

LDAP中文学习手册

LDAP使用手册一、LDAP介绍LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。

它是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 信息模型(LDAP information model)LDAP信息模型用于描述LDAP中信息的表达方式。

LDAP信息模型包含三部分Entries Attributes Values (条目属性值) Entry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为,目录树中的一个节点。

OpenLDAP集中管理用户帐号学习笔记

OpenLDAP集中管理用户帐号学习笔记

本文使用Redhat Enterprice Linux 4.0版本测试,并成功实现。

经过2年多的测试和使用,在CentOS 5.x/Cent OS4.x/RHEL4.x/RHEL 5.x都没有任何问题。

只是软件包的版本有所所区别而已;服务器端配置完全一样,客户端配置仅命令不同而已。

openldap为系统自带工具,可以在安装时选择相应软件包安装或用rpm命令安装。

需要的包为(RHEL4):openldap-2.2.13-2:包含OpenLDAP 配置文件、库和文档openldap-servers-2.2.13-2:包含slapd 和slurpd 服务器、迁移脚本和相关文件openldap-clients-2.2.13-2:包含客户机程序,用来访问和修改OpenLDAP 目录启动:#service ldap start或#/etc/init.d/ldap start或#/etc/rc.d/init.d/ldap start将start参数改为restart或stop来重启或停止ldap服务。

设定在开机时自动启动:#chkconfig ldap on作为练习,可将系统的防火墙关闭;至于实际应用需打开的端口请自行参考iptables相关文档。

关闭iptables防火墙:#service iptables stop或#/etc/init.d/iptables stop下面配置ldap。

一、配置ldap服务器的账户修改:在配置文件/etc/openldap/slapd.conf中加入以下行:loglevel 296local4.debug /var/log/slapd.log#上面两行定义了ldap服务器执行的日志access to attrs=shadowLastChange,userPasswordby self writeby * authaccess to *by * read#access 行定义了谁可以访问目录中的内容。

LDAP笔记

LDAP笔记

LDAP简介LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。

目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。

目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。

目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。

而目录服务的更新则一般都非常简单。

这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。

为了访问存储在目录中的信息,就需要使用运行在TCP/IP之上的访问协议—LDAP。

LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。

而且也很容易定制应用程序为它加上LDAP的支持。

LDAP协议是跨平台的和标准的协议,。

LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。

大多数的LDAP服务器安装起来很简单,也容易维护和优化。

LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到远程的办公室,以增加数据的安全性。

复制技术是内置在LDAP服务器中的而且很容易配置。

如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。

LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。

例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。

ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。

因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。

LDAP对于这样存储这样的信息最为有用,也就是数据需要从不同的地点读取,但是不需要经常更新。

LDAP学习资料整理

LDAP学习资料整理

LDAP学习资料整理LDAP中的objectClass与Attribute初学LDAP时容易弄错的问题就是objectClass和Attribute之间的关系的,当时找过许多的中文资料都没有得到答案。

最近终于彻底弄明白了这个问题,于是决定做个笔记。

下面我会对照Java里面的一些概念来讲讲LDAP中的objectClass与Attribute,非常惊喜的是他们非常相似!LDAP中每一个Entry必须属于某一个objectClass,用Java的方式来理解就是Entry是一个Instance,而objectClass就是class。

在Java中Class可以分为Abstract,concrete两种,我们知道要new 一个Instance时必须要有一个concrete Class。

在LDAP中objectClass分为三种:Abstract,Structural,AUXIALIARY。

要定义一个Entry必须包含一个Structural类型的ObjectClass,其他两个类型可包括0或多个。

其中T op是一个顶级ObjectClass,里面定义了一个MUST Attribute:ObjectClass,于是也就决定了必须有一个其它的Structural ObjectClass才能定义一个Entry.其中ObjectClass 又可以存在继承关系,该继承关系于Java中有点相似,子ObjectClass会继承父ObjectClass中的全部Attribute.下面分析一下ObjectClass与Attribute的关系。

如同Java里面的一个类可以包括多个Field,在业务上可能会定义某些Field是必须的,另外一些是可选的。

在LDAP中也存在类似关系,每一个ObjectClass都定义了一些Attribute,其Attribute仍然可以是ObjectClass。

在这些Attriubte中分为两种类型MUST,MAY,MUST表示这个Entry必须包括的属性,MAY为可选。

LDAP基本概念

LDAP基本概念

LDAP基本概念LDAP(Lightweight Directory Access Protocol)是一种基于计算模型的客户机/服务器目录服务访问协议。

LDAP是从目录访问协议的基础上发展过来的,它是对的简化,它和的主要区别在于:1. LDAP是基于TCP/IP的,而是基于OSI网络协议栈,OSI很少有真正的应用2. LDAP删除了中一些繁琐而不常用的功能3. LDAP使用了更简洁的字符串来表示数据,而非比较复杂的结构化语法ASN1(Abstract Syntax Notation One)LDAP客户端和LDAP服务器端交互的一般过程1. LDAP客户端发起连接请求与LDAP服务器建立会话,LDAP的术语是绑定(binding)。

在建立绑定时客户端通常需要指定访问用户,以便能够访问服务器上的目录信息。

2. LDAP客户端发出目录查询、新建、更新、删除、移动目录条目、比较目录条目等操作3. LDAP客户端结束与服务器的会话,即解除绑定(unbinding)LDAP和RFC文档LDAP协议的版本目前是,它是有一系列RFC组成成的:RFC2251 Light-weight Directory Access Protocol主要定义了LDAP的操作、在客户端和服务器之间的交换的消息格式。

为了更好地支持国际化,它规定数据用UTF-8表示。

此外,相对旧版本RFC2251又添加了referral的功能,并把schema本身存放到目录中,使得客户端可以读取schema信息RFC2252 Light-weight Directory Access Protocol -- Attribute Syntax DefinitionRFC2253 Light-weight Directory Access Protocol -- UTF-8 String Representation of Distinguished NamesRFC2254 Light-weight Directory Access Protocol -- The String Representation of LDAP Search FiltersRFC2255 Light-weight Directory Access Protocol -- The LDAP URL formatRFC2256 A summary of user schema for use with LDAP v3一些常用的objectClass和属性已经由定义,该RFC对这些在LDAP中使用的objectClass 作了总结。

ldap常用命令 -回复

ldap常用命令 -回复

ldap常用命令-回复LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问分布式目录服务的开放标准协议。

它是基于TCP/IP协议栈的一种服务,通常是通过389端口进行通信。

LDAP协议旨在提供对目录服务的读写操作,可以用于搜索、添加、修改和删除目录中的条目。

为了更好地理解LDAP和它的常用命令,本文将一步一步回答以下问题:一、什么是LDAP?LDAP是一种用于访问分布式目录服务的协议,它提供了一种规范的方式来操作目录中的数据。

目录通常用来存储和检索组织结构的信息,比如用户、部门、组等。

LDAP提供了一种层次结构的数据存储方式,其中包含许多条目(entry),每个条目都有一个唯一的标识符(Distinguished Name,简称DN)来定位它在目录中的位置。

二、LDAP常用命令有哪些?1. ldapsearch:用于搜索目录中的条目,并返回符合指定条件的结果。

可以通过指定搜索过滤器(Filter)和搜索基准(Base DN)来进行搜索操作。

例如,查询所有用户的命令如下:ldapsearch -x -b "dc=example,dc=com""(objectClass=inetOrgPerson)"2. ldapadd:用于向目录中添加新的条目。

需要提供要添加的条目的信息,包括DN、对象类(ObjectClass)和属性(Attribute)。

例如,添加一个用户的命令如下:ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif3. ldapmodify:用于修改目录中已有条目的属性值。

需要提供要修改的条目的DN和相应的修改操作(如添加、删除和替换)。

例如,修改用户的命令如下:ldapmodify -x -D "cn=admin,dc=example,dc=com" -W -f user.mod4. ldappasswd:用于修改用户的密码。

ldap学习文档经典

ldap学习文档经典

冠:dn:cn=zhujian_jiluming,ou=biao_ming,dc=shujuku_mingsn 真实名称cn 常用名称也可是具体哪个管理员或用户ou 部门也可是管理员或用户o 公司c 国家dc 域名数据类型主要是字符型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等1、完整DN包括:基准DN:dc=..,dc=..,dc=..,等等相对路径(ou):可以是多层文件夹,例如ou=..,ou=..,ou=..,等等区别名(cn或uid):相当于记录的名字2、条目:相当于记录,而且每个条目必须属于某个或多个对象类OpenDS中左侧的属性大部分都是来自于左侧的所属的对象类3、如下是LDAP记录的详细信息dn:cn=stan,ou=linux,ou=computer,dc=school,dc=org 此处cn是记录的名字,与下面的cn不同objectClass:organizationalPerson 这个就是所属的对象类cn:stan cn是属性,此cn与下面的cn是同一个属性,只不过包含多个值吧了,方便查找cn:小刀cn是属性,这些属性大部分来自于所属的对象类sn:小刀sn是属性description:agoodboy(以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中)4、若使用系统提供的对象类,则必须遵守该对象类对包含的属性所做的限制,例如,你可以用哪些属性,哪些属性不能为空,哪些属性最多只能有一个值等,例如,你选择了“objectClass:organizationalPerson”,虽然这个类中没有“sex”这个属性,不过你完全可以用一个“空闲”的属性来顶替。

若使用自己定义的对象类,则没有上面的限制。

LDAP 连接池的最小尺寸:缺省值为 1。

OpenDS在刚开机时显示LDAP 连接池的最大尺寸:缺省值为 10。

LDAP 查询基本知识

LDAP 查询基本知识

本文讨论了轻量级目录访问协议 (LDAP) 查询,它在排查 Microsoft Exchange Server 及它与其目录之间关系的故障时十分有用,但是它也经常令人困惑不解。

本文介绍了有关 LDAP 查询的基本信息。

%26#8226; 基本 LDAP 语法%26#8226; 何时使用 LDAP 查询?%26#8226; 使用“Active Directory 用户和计算机”执行搜索%26#8226; 使用 LDP 执行搜索%26#8226; 使用 LDIFDE 执行搜索%26#8226; 在 ADModify 中使用 LDAP 查询%26#8226; 更多信息基本 LDAP 语法=(等于)%26#8226;此 LDAP 参数表明某个属性等于某个值的条件得到满足。

例如,如果希望查找“名“属性为“John”的所有对象,可以使用:(givenName=John)这会返回“名”属性为“John”的所有对象。

圆括号是必需的,以便强调 LDAP 语句的开始和结束。

%26#822%26amp;(逻辑与)6;如果具有多个条件并且希望全部条件都得到满足,则可使用此语法。

例如,如果希望查找居住在 Dallas 并且“名”为“John”的所有人员,可以使用:(%26amp;(givenName=John)(l=Dallas))请注意,每个参数都被属于其自己的圆括号括起来。

整个 LDAP 语句必须包括在一对主圆括号中。

操作符 %26amp; 表明,只有每个参数都为真,才会将此筛选条件应用到要查询的对象。

%26#822!(逻辑非)6;此操作符用来排除具有特定属性的对象。

假定您需要查找“名”为“John”的对象以外的所有对象。

则应使用如下语句:(!givenName=John)此语句将查找“名”不为“John”的所有对象。

请注意:! 操作符紧邻参数的前面,并且位于参数的圆括号内。

由于本语句只有一个参数,因此使用圆括号将其括起以示说明。

ldap search 语法

ldap search 语法

LDAP(轻型目录访问协议)是一种用于访问和管理目录服务的开放标准协议。

在LDAP中,搜索是一项非常重要的功能,而LDAP搜索语法则是用于描述搜索条件的语法规则。

在本文中,我们将深入探讨LDAP搜索语法,以便对其有一个全面的了解。

一、LDAP搜索基础1. LDAP搜索是什么?LDAP搜索是指在目录中对特定条件下的条目进行查询的过程。

通过指定搜索条件,可以精确地检索到需要的目录条目。

2. LDAP搜索基本语法在LDAP搜索中,可以使用过滤器来描述搜索条件。

过滤器的基本语法如下:=John Smith)表示查找具有通用名为John Smith的条目。

3. LDAP搜索的范围LDAP搜索的范围包括基础、单层和子树三种。

基础表示只搜索指定的条目,单层表示搜索指定条目的直属下级,子树表示搜索指定条目及其所有下级。

二、LDAP搜索进阶1. LDAP搜索过滤器LDAP搜索过滤器是描述搜索条件的表达式,可以使用多种操作符和逻辑操作符来构建复杂的搜索条件,如(&=John)(sn=Smith))表示查找通用名为John且姓氏为Smith的条目。

2. LDAP搜索控制LDAP搜索控制包括分页控件、排序控件等,可用于管理搜索结果的返回数量和顺序。

3. LDAP搜索范围限定可以通过设置搜索范围来限定搜索的深度和广度,以提高搜索效率。

三、个人观点和总结在实际工作中,对LDAP搜索语法的深入理解对于有效地管理和利用目录服务非常重要。

通过学习和掌握LDAP搜索的基础和进阶知识,可以更加灵活地进行目录查询和管理操作,提高工作效率。

合理使用LDAP搜索语法也能减少不必要的网络开销,保障系统的稳定性和安全性。

我们应该重视LDAP搜索语法的学习,并在实际工作中加以运用。

通过本文的介绍,相信读者对LDAP搜索语法有了更深入的了解,希望可以对大家在使用LDAP进行目录服务管理和开发时有所帮助。

在写作过程中,我们对LDAP搜索语法进行了从基础到进阶的深入探讨,包括基本语法、搜索范围、过滤器、控制等内容。

LDAP学习小结【仅原理和基础篇】

LDAP学习小结【仅原理和基础篇】

LDAP学习⼩结【仅原理和基础篇】 此篇⽂章花费了好⼏个晚上,⼤部分是软件翻译的英⽂⽂档,加上⾃⼰的理解所写,希望学习者能尊重每个⼈的努⼒. 我有句话想送给每个看我⽂章的⼈: 慢就是快,快就是慢 另外更希望更多⼈能从认真从原理学习,分享更多有质量的⽂章,⽽不是仅仅转载别⼈的⽂章. 以下仅介绍了OpenLDAP的基本原理和基本配置,⾄于更⾼级的配置,还需⾃⾏学习,因为有了以下基础,再去建楼,就会 更加容易,⽹上有太多⽂章都太⽼旧,实在难以让初学者对OpenLDAP有⼀个全⾯的基础认识,总搞的⼈云⾥雾⾥,这篇⽂章 希望对想学习OpenLDAP的⼈,打⼀个好的基础,从⽽能深⼊了解它.基本命令我就不贴出来了,希望想深⼊学习的⼈,⾃⾏学习 man⼿册. --------------马帮弟⼦:zcfLDAP: 原理:LDAP: 它是⽤来做统⼀⽤户⾝份认证的.即: 你访问CSDN它说你可以⽤微信登录,你登录微博,它也⽀持微信登录等, 这就是⼀种⽬录服务, 当然它们不⼀定⽤LDAP来做为他们的⽬录服务. LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级⽬录访问协议。

Linux上实现LDAP的⼯具是 openladp, 通过配置ldap服务器,将⽤户信息存储在其中,就可以使⽤ldap协议, 访问⽤户数据库,来实现LDAP⽤户认证.基本概念: ⽬录树概念 1. ⽬录树:在⼀个⽬录服务系统中,整个⽬录信息集可以表⽰为⼀个⽬录信息树,树中的每个节点是⼀个条⽬。

2. 条⽬:每个条⽬就是⼀条记录,每个条⽬有⾃⼰的唯⼀可区别的名称(DN)。

3. 对象类:与某个实体类型对应的⼀组属性,对象类是可以继承的,这样⽗类的必须属性也会被继承下来。

4. 属性:描述条⽬的某个⽅⾯的信息,⼀个属性由⼀个属性类型和⼀个或多个属性值组成,属性有必须属性和⾮必须属性。

名词: dn(Distinguished Name): “uid=songtao.xu,ou=oa组,dc=example,dc=com”,⼀条记录的位置(唯⼀) uid(User Id): ⽤户ID songtao.xu(⼀条记录的ID) ou(Organization Unit): 组织单位,组织单位可以包含其他各种对象(包括其他组织单元),如“oa组”(⼀条记录的所属组织) dc(Domain Component) :域名的部分,其格式是将完整的域名分成⼏部分,如域名为变成dc=example,dc=com(⼀条记录的所属位置) cn(Common Name): 公共名称,如“Thomas Johansson”(⼀条记录的名称) sn(Surname): 姓,如“许” rdn(Relative dn): 相对辨别名,类似于⽂件系统中的相对路径,它是与⽬录树结构⽆关的部分,如“uid=tom”或“cn= Thomas Johansson”配置openLDAP有两种⽅式: slapd.conf 修改它,需要重新⽣成数据库⽂件, ⽣成后需要重新赋予权限属主属组ldap.ldap . 接着重新加载slapd 进程, 配置才会⽣效.若使⽤单机版,不推荐。

LDAP使用手册

LDAP使用手册

LDAP使用手册1.LDAP介绍LDAP就是一种目录,或称为目录服务。

LDAP的英文全称是Lightweight Directory Access Protocol,即轻量级目录访问协议,是一个标准化的目录访问协议,它的核心规范在RFC中都有定义[16][17]。

LDAP基于一种叫做X.500的标准,X.500是由ITU-T和ISO定义的目录访问协议,专门提供一种关于组织成员的电子目录使得世界各地因特网访问权限内的任何人都可以访问该目录。

在X.500目录结构中,需要通过目录访问协议DAP,客户机通过DAP查询并接收来自服务器目录服务中的一台或多台服务器上的响应,从而实现对服务器和客户机之间的通信控制。

然而DAP需要大量的系统资源和支持机制来处理复杂的协议。

LDAP仅采纳了原始X.500目录存取协议DAP的功能子集而减少了所需的系统资源消耗,而且可以根据需要进行定制。

在实际的应用中,LDAP比X.500更为简单更为实用,所以LDAP技术发展得非常迅速。

目前在企业范围内实现的支持LDAP的系统可以让运行在几乎所有计算机平台上的所有应用程序从LDAP目录中获取信息,LDAP目录中也可以存储各种类型的数据,如:电子邮件地址、人力资源数据、公共密匙、联系人列表,系统配置信息、策略信息等。

此外,与X.500不同,LDAP支持TCP,这对当今Internet来讲是必须的。

目前己有包括微软、IBM在内的几十家大型软件公司支持LDAP技术。

1997年发布了第三个版本LDAPV3[17],它的出现是LDAP协议发展的一个重要转折,它使LDAP协议不仅仅作为X.500的简化版,同时提供了LDAP协议许多自有的特性,使LDAP协议功能更为完备,安全性更高,生命力更为强大。

1.1组成LDAP的四个模型组成LDAP的四个模型是:信息模型,命名模型,功能模型,安全模型。

1.1.1信息模型LDAP信息模型定义能够在目录中存储的数据类型和基本的信息单位。

CAS整合LDAP实现单点登录学习笔记

CAS整合LDAP实现单点登录学习笔记

SJTUCrushing Blow ——CAS整合LDAP实现单点登录学习笔记Solomon leo********************8/15/2010目录Contents目录 (1)1单点登录 (2)2 CAS (3)2.1 JA-SIG(CAS)的设计愿景 (3)2.2 CAS1.0服务架构实现 (3)2.3 CAS服务的具体实现 (4)2.4代理认证Proxy Authentication (6)2.5 CAS2.0代理认证流程 (6)2.6 CAS2.0凭证 (7)3 LDAP (8)4 CAS整合LDAP配置过程 (9)4.1说明 (9)4.1 LDAP安装(A) (9)4.2 配置服务器(A) (10)4.3 配置客户端(B,业务服务器) (15)4.4关于CASTestClient和cas的说明 (16)5参考目录 (19)1单点登录什么是SSO(Single Sign On)单点登录?所谓单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。

目前单点登录主要基于Web的多种应用程序,即通过浏览器实现对多个B/S架构应用的统一账户认证。

2 CAS2.1 JA-SIG(CAS)的设计愿景CAS(Central Authentication Service – 中心认证服务)的目的就是使分布在一个企业内部各个异构系统的认证工作集中在一起,通过一个公用的认证系统统一管理和验证用户的身份。

在CAS上认证的用户将获得CAS颁发的一个证书,使用这个证书,用户可以在承认CAS证书的各个系统上自由穿梭访问,不需要再次的登录认证。

打个比方:对于加入欧盟的国家而言,在他们国家中的公民可以凭借着自己的身份证,在整个欧洲旅行,不用签证。

对于企业内部系统而言,CAS就是这个颁发欧盟认证的系统,其它系统都是加入欧盟的国家,它们要共同遵守和承认CAS的认证规则。

ldap资料

ldap资料

LDAP资料14.4 管理OpenLDAP启动OpenLDAP服务器程序之后,接下来的操作就是通过客户端程序对目录进行操作,包括添加、修改、删除和搜索数据等操作。

能对LDAP进行操作的客户端程序很多,本节简单介绍在Linux命令方式下进行这些操作的方法。

14.4.1 向目录数据库中添加数据初始状态下,LDAP是一个空目录,即没有任何数据。

可通过程序代码向目录数据库中添加数据,也可使用OpenLDAP客户端工具ldapadd命令来完成添加数据的操作,该命令可将一个LDIF文件中的条目添加到目录。

因此,需要首先创建一个LDIF文件,然后再进行添加操作。

1.LDIF文本条目格式LDIF用文本格式表示目录数据库的信息,以方便用户创建、阅读和修改。

在LDIF 文件中,一个条目的基本格式如下:# 注释dn: 条目名属性描述: 值属性描述: 值属性描述: 值... ...dn行类似于关系数据库中一条记录的关键字,不能与其他dn重复。

一个LDIF 文件中可以包含多个条目,每个条目之间用一个空行分隔。

例如,以下内容组成一个条目:1: dn: dc=wyh, dc=com2: objectclass: top3: objectclass: dcobject4: objectclass: organization5: dc: wyh6: o: wyh,Inc.在以上文本中,各行含义如下:●第1行的dn定义该条目的标识。

●第2~4行定义该条目的objectcCass,可以定义多个属性,如上面代码中定义了3个objectClass。

条目的属性根据objectClass的不同而不同,有的objectClass有必须设置的属性。

在2~4行的3个objectClass中,top没有必须定义的属性,dcobject必须定义属性dc,用来表示一个域名的部分,而organization必须定义属性o,用来表示一个组织的名称。

●根据objectClass的要求,第5、6行分别定义属性dc和属性o的值。

LDAP的概念-objectclass等

LDAP的概念-objectclass等

LDAP的概念-objectclass等LDAP的概念2006-08-19 17:32:56大中小.3 LDAP SecurityLDAP是轻量级目录服务(Lightweight Directory Access Protocol)。

越来越多的应用开始采用LDAP作为后端用户存储。

在安全上,LDAP Security是基于ACL(Access Control List)的,它通过给一个用户组分配LDAP 操作资源(比如对一个子树的查询,修改等)来最终完成权限的控制。

因此在LDAP中,授权工作是以用户组为单位进行的。

一个用户组一般来说是拥有如下一组属性的LDAP Entry:图1-3-1其中objectclass可以为groupOfUniqueNames或者groupOfNames,它们对应的组成员属性分别是uniquemember和member。

如果是动态组,objectclass为groupOfURLs。

动态组一般应用在成员可以通过某种业务逻辑运算来决定的情况下。

比如,经理为ZHANGSAN的全部员工。

下面是一个典型的动态组,memberURL属性定义了哪些entry属于该组:图1-3-2从图1-3-1中我们可以看出,用户WANTXIAOMING,ZHANGSAN,LISI属于组HR Managers。

这种组和成员的关系是通过属性uniquemember来决定的。

同时LADP Group 支持嵌套,即一个组可以是另外一个组的成员,比如我们将Accounting Managers 组分配给HR Managers组作为其成员:图1-3-3这样将表示Accounting Managers中的成员,同时也是组HR Managers的成员。

通过这种层级关系可以使权限分配变的更加灵活。

下面是一些名词的解释,希望大家对LDAP有更好的理解:a) Objectclass ——LDAP对象类,抽象上的概念类似与一般我们理解的class。

LDAP中文学习手册

LDAP中文学习手册

LDAP使用手册一、LDAP介绍LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。

它是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 信息模型(LDAP information model)LDAP信息模型用于描述LDAP中信息的表达方式。

LDAP信息模型包含三部分Entries Attributes Values (条目属性值)Entry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为,目录树中的一个节点。

LDAP学习报告

LDAP学习报告

UCM的LDAP客户端配置1、LDAP服务器1)只支持输入字母、数字或下划线,输入其他字符,提示错误;输入wang11_3a,同步后创建的LDAP电话薄名称为wang11_3a2)分别填写LDAP Server为wang和Wang(W为大写)进行同步,会生成生成ou=wang和ou=Wang两个电话薄,他们分机信息相同,区分大小写(bug 40698)2、服务器地址1)服务器地址使用IP或域名进行同步,LDAP同步成功2)服务器地址使用域名进行同步时,如果是DNS的A记录查询,同步成功;如果是DNS的SRV查询,同步失败(抓包查看到只发送A记录查询请求,没有SRV查询请求)(bug35907)3、端口1)端口使用除389外的其他端口,tcp三次连接建立失败,导致同步失败;使用389端口,同步成功,支持输入1-655354、使用不同属性同步对端LDAP电话薄(同步分机范围:本地分机和LDAP服务器上分机)1)UCM的LDAP客户端配置中分别用CallerIDName Email AccountNumbe FirstName LastName(如FirstName=aa*)等属性过滤,LDAP同步成功,在dial by name中查询成功2)使用| 、&符号(如(&(Email=124216*) (FirstName=aa3)) )进行组合条件过滤,LDAP同步成功3)在LDAP Server上修改分机信息,再再本地UCM进行LDAP同步,生成电话薄的分机信息为修改后的信息4)当使用的查询条件在查询后无结果,提示“没有搜索结果”不同过滤条件查询列表:过滤条件过滤值返回结果固定属性查找(AccountNumber=3000) 分机3000(Email=1242164569@) 包含邮箱的分机(CallerIDName=long wang) CallerIDName为long wang的分机(!(AccountNumber=3*)) 除了分机号以3开头之外的其余分机多个属性查找(|(AccountNumber=3*)(Email=*com )) 包含分机号是3开头或者邮箱是com结尾的分机(&(AccountNumber=3*)(Email=*com )) 包含分机号是2开头并且邮箱是com结尾的分机查找以某个字符开头(AccountNumber=3*) 以3开头的分机查找包含某个固定字符 (AccountNumber=*3*) 包含3的分机(以3开头和结尾的也包括)查找以某个字符结尾(AccountNumber=*3) 以3开结尾的分机查找所有(AccountNumber=*) 返回所有分机filter的运算符5、当根节点配置与用户名中对应节点配置不同时,提示错误;在LDAP客户端填写对端默认服务器根节点dc=pbx,dc=com,同步成功;修改对端服务器根节点为dc=pbx2,dc=com3,本端使用修改后根节点dc=pbx2,dc=com3,同步成功;使用修改前的根节点,同步失败6、使用不同用户同步对端LDAP电话薄1)使用用户名同步。

LDAP学习笔记总结

LDAP学习笔记总结

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服务,如Microsoft的ActiveDirectory、Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。

LDAP的开源实现是OpenLDAP,它⽐商业产品⼀点也不差,⽽且源码开放。

OpenLDAP 是最常⽤的⽬录服务之⼀,它是⼀个由开源社区及志愿者开发和管理的⼀个开源项⽬,提供了⽬录服务的所有功能,包括⽬录搜索、⾝份认证、安全通道、过滤器等等。

⼤多数的 Linux 发⾏版⾥⾯都带有 OpenLDAP 的安装包。

OpenLDAP 服务默认使⽤⾮加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。

由于⼤多数⽬录服务都是⽤于系统的安全认证部分⽐如:⽤户登录和⾝份验证,所以它也⽀持使⽤基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。

OpenLDAP 是使⽤OpenSSL 来实现 SSL/TLS 加密通信的。

LDAP的信息模型是建⽴在"条⽬"(entries)的基础上。

⼀个条⽬是⼀些属性的集合,并且具有⼀个全局唯⼀的"可区分名称"DN,⼀个条⽬可以通过DN来引⽤。

ladp学习笔记--插入根节点及其他节点

ladp学习笔记--插入根节点及其他节点

LDAP原创学习笔记LDAP插入根节点及其他节点(原创文档,转载需注明出处,并不得修改)Ladp的slapd.conf 的内容如下:######################################################## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.ucdata-path ./ucdatainclude ./schema/core.schemainclude ./schema/cosine.schemainclude ./schema/inetorgperson.schema# Define global ACLs to disable default read access.# Do not enable referrals until AFTER you have a working directory# service AND an understanding of referrals.#referral ldap:/pidfile ./run/slapd.pidargsfile ./run/slapd.args# Load dynamic backend modules:# modulepath ./libexec/openldap# moduleload back_# moduleload back_# moduleload back_# moduleload back_# moduleload back_# Sample security restrictions# Require integrity protection (prevent hijacking)# Require 112-bit (3DES or better) encryption for updates# Require 63-bit encryption for simple bind# security ssf=1 update_ssf=112 simple_bind=64# Sample access control policy:# Root DSE: allow anyone to read it# Subschema (sub)entry DSE: allow anyone to read it# Other DSEs:# Allow self write access# Allow authenticated users read access# Allow anonymous users to authenticate# Directives needed to implement policy:# access to dn.base="" by * read# access to dn.base="cn=Subschema" by * read# access to *# by self write# by users read# by anonymous auth## if no access controls are present, the default policy# allows anyone and everyone to read anything but restricts# updates to rootdn. (e.g., "access to * by * read")## rootdn can always read and write EVERYTHING!######################################################################## BDB database definitions####################################################################### database ldbm#suffix "dc=my-domain,dc=com"suffix "dc=zhangtao,dc=com"#rootdn "cn=Manager,dc=my-domain,dc=com"rootdn "cn=manager,dc=zhangtao,dc=com"# Cleartext passwords, especially for the rootdn, should# be avoid. See slappasswd(8) and slapd.conf(5) for details.# Use of strong authentication encouraged.#rootpw secretrootpw 111111# The database directory MUST exist prior to running slapd AND# should only be accessible by the slapd and slap tools.# Mode 700 recommended.directory ./data# Indices to maintainindex objectClass eq根据sun 公司的网站的文章。

LDAP协议基础概念优秀doc资料

LDAP协议基础概念优秀doc资料

LDAP协议基础概念优秀doc资料1. 从用途上阐述LDAP,它是一个存储静态相关信息的服务,适合“一次记录多次读取”。

常用LDAP服务存储的信息:•公司的物理设备信息(如打印机,它的IP地址、存放位置、厂商、购买时间等)•公开的员工信息(地址、、电子邮件…)⎫•合同和账号信息(客户信息、产品交付日期、投标信息、项目信息…)⎫•凭证信息(认证凭证、许可证凭证…)⎫2. 从数据结构上阐述LDAP,它是一个树型结构,能有效明确的描述一个组织结构特性的相关信息。

在这个树型结构上的每个节点,我们称之为“条目(Entry)”,每个条目有自己的唯一可区别的名称(Distinguished Name ,DN)。

条目的DN是由条目所在树型结构中的父节点位置(Base DN)和该条目的某个可用来区别身份的属性(称之为RDN如uid , cn)组合而成。

对Full DN :“shineuserid=linly , ou=Employee , dc=jsoso , dc=net”而言,其中Base DN:“ou=Employee , dc=jsoso , dc=net”,RDN:“shineuserid=linly”下面是一个LDAP服务器的数据结构图:3. 从协议衍化上阐述LDAP,它是“目录访问协议DAP——ISO X.500”的衍生,简化了DAP协议,提供了轻量级的基于TCP/IP协议的网络访问,降低了管理维护成本,但保持了强壮且易于扩充的信息框架。

LDAP的应用程序可以很轻松的新增、修改、查询和删除目录内容信息。

LDAP目录条目(Directory Entry)简述从Object Classes谈起在LDAP目录数据库中,所有的条目都必须定义objectClass这个属性。

这有点像Java语言里说阐述的“一切皆对象”的理念,每个条目(LDAP Entry)都要定义自己的Object Classes。

Object Class可以看作是LDAP Entry的模板,它定义了条目的属性集,包括必有属性(requited attribute)和可选属性(option attribute)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1Schema介绍
schema类似关系数据库的字段说明,包括字段名,数据类型,数据长度等等。

最重要的是core.schema。

为了适应我们的应用,我们要创建自己的schema文件。

在LDAP的schema中,有四个重要的元素:
1. Objectclass
objectclass定义了一个类别,这个类别会被不同的目录(在LDAP中就是一个Entry)用到,它说明了该目录应该有哪些属性,哪些属性是必须的,哪些又是可选的。

一个objectclass的定义包括名称(NAME),说明(DESC),类型(STRUCTURAL或AUXILARY ,表示是结构型的还是辅助型的),必须属性(MUST),可选属性(MAY)等信息。

$隔开
2. Attribute
attribute就是一个上面objectclass中可能包含的属性,对其的定义包括名称,数据类型,单值还是多值以及匹配规则等。

后面用具体的例子来说明。

3. Syntax
syntax是LDAP中的“语法”,其实就是LDAP中会用到的数据类型和数据约束,这个语法是遵从X.500中数据约束的定义的。

其定义需要有一个ID(遵从X.500)以及说明(DESP)
4. Matching Rules
是用来指定某属性的匹配规则,实际上就是定义一个特殊的Syntax的别名,让LDAP服务器可以识别,并对定义的属性进行匹配。

所有的Attribute可能被放到一起用来组成一个叫做Object Class的类型
如果你熟悉关系型数据库,那么下面的描述有助于你对Schema的理解:Attribute相当于字段(Field),而Object Calss相当于表。

Sup表示父类(有点想面向对象编程),top表示没有父类,自己就是顶级。

Structual是存储方式。

attributeType的说明
a) 第一个数字表示序号
b) Name表示属性的名字
c) Desc是对该属性的说明文字
d) AUXILIARY说明是辅助型
e) 下面的表示匹配方式,substr是字符串匹配,equality是相等匹配,ORDERING是顺序匹配,
syntax表示字段的数据类型
f) Single-value 表示这个属性只有一个值,有些属性可以有多个值,比如联系地址。

默认是多值。

g) 这一串数字1.3.6.1.4.1.1466.115.121.1.5就代表了LDAP中的字符串,这个数字串的定义和
X.500相关,包括了它的存储方式,所占空间大小等。

h) 在Schema中最难理解的是匹配规则,这是LDAP中为了加快查询的速度,针
对不同的数据类型,可以提供不同的匹配方法,如针对字符串类型的相等、
模糊、大于小于均提供自己的匹配规则。

自己编写的schema文件必须放在core.schema的后面,因为
2环境搭建3Ldap操作4Ldap工具。

相关文档
最新文档