LDAP基础培训资料.ppt_第1页
LDAP基础培训资料.ppt_第2页
LDAP基础培训资料.ppt_第3页
LDAP基础培训资料.ppt_第4页
LDAP基础培训资料.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浪潮软件技术培训,LDAP基础,-浪潮软件 李向阳,目录,LDAP简介 LDAP主要产品 JNDI简介 LDAP基本模型 LDAP目录设计,LDAP简介,什么是目录服务? 目录服务就是按照树状信息组织模式,实现信息管理和服务接口的一种方法。目录服务系统一般由两部分组成。第一部分是数据库,一种分布式的数据库,且拥有一个描述数据的规划;第二部分则是访问和处理数据库有关详细的访问协议。,LDAP简介,目录服务与关系数据库的区别: 目录不支持批量更新所需要的事务处理功能,目录一般只执行简单的更新操作,适合于进行大量数据的检索 目录具有广泛复制信息的能力,从而在缩短响应时间的同时,提高了可用性和可靠性。,什么是LDAP? LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。 它是基于X.500标准的,但是简单多了并且可以根据需要定制。 与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。 LDAP标准的规范是以一系列RFC的形式编排的。,LDAP简介,LDAP目录是数据库吗? LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议。 LDAP目录也是一种类型的数据库,但是不是关系型数据库。 LDAP主要是优化数据读取的性能。 LDAP服务器也是用来处理查询和更新LDAP目录。 LDAP目录或数据库的结构与 UNIX 文件系统非常相似,数据按层次存储。,LDAP简介,什么时候该用LDAP存储数据? 需要在任何平台上都能读取数据吗? 是否有很多计算机或应用访问这些数据? 每一个单独的记录项是不是每一天都只有很少的改变? 可以把数据存在平面数据库而不是关系型数据库中吗?换句话来说,把所有东西都存在一个记录中。,LDAP简介,LDAP V3协议 RFC2251:LDAP V3核心协议,定义了LDAP V3协议的基本模型和基本操作 RFC2252:定义了LDAP V3中的基本数据模式(Schema)(包括语法、匹配规则、属性类型和对象类) RFC2253:定义了LDAP V3中的分辨名(DN)表达方式 RFC2254:定义了LDAP V3中的过滤器的表达方式 RFC2255: LDAP统一资源地址的格式 RFC2256:在LDAP V3中使用X.500的Schema列表 RFC2820:LDAP访问控制需求 RFC2829:定义了LDAP V3中的认证方式 RFC2830:定义了如何通过扩展使用TLS服务 RFC2847:定义了LDAP数据导入、导出文件接口LDIF,LDAP简介,LDAP优势 LDAP 协议既是跨平台的也是基于标准的。这意味着几乎在任何计算机平台上运行的任何应用程序都可以从 LDAP 目录获取信息。 LDAP 目录几乎可以存储所有类型的数据。如果需要专门的组织单元或项,则可以根据具体实现来定制控制给定字段可以保存哪种信息的规则。 大多数 LDAP 服务器的安装和配置相对比较简单,并且可以在很少或没有维护的情况下运行多年,而且很容易为特定类型的访问而进行最优化。,LDAP简介,可以容易地配置 LDAP 目录来复制部分或所有目录树(使用推(push)或拉(pull)方法)。 可以通过 ACL(访问控制表,Access Control List)来控制对目录的访问。,LDAP产品,主要LDAP产品: IBM Directory Server(Tivoli、Domino、SecureWay) Microsoft Active Directory Netscape Directory Server Sun ONE Directory Server OpenLDAP Novell NDS,LDAP产品,IBM Tivoli Directory Server安装 DB2安装:DB2-win-v8.1setup.exe ITDS安装:itds520-windows-usismpsetup.exe,LDAP产品,LDAP产品,配置 目录配置 管理员dn/密码 配置数据库,LDAP产品,安装和配置之后 启动目录服务器 LDAP_HOME/bin/ibmslapd 启动应用程序服务器 LDAP_HOME/appsrv/bin/startServer server1 停止应用程序服务器 LDAP_HOME/appsrv/bin/stopServer server1 启动Web管理工具 http:/localhost:9080/IDSWebApp/IDSjsp/Login.jsp,LDAP产品,Web管理工具 作为控制台管理员登陆到控制台 输入用户名superadmin密码secret 控制台管理-管理控制台服务器-添加服务器 作为服务器管理员登陆到控制台 选择LDAP主机名 输入服务器管理员DN密码(目录配置) 作为管理组成员或LDAP用户登录到控制台 选择LDAP主机名 输入服务器用户名和密码,JNDI简介,JNDI概述 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。 JNDI为哪些协议提供了接口? JNDI本身独立于任何特定目录访问协议,单独的服务提供程序决定所支持的协议。IBM, Novell, Sun和WebLogic已经为JNDI提供了服务提供程序。,JNDI简介,JNDI与LDAP的关系 JNDI提供命名和目录的一个优良的面向对象的抽象。开发人员使用JNDI可以开发出使用LDAP或其他访问协议的查询来检索结果;但是他们并不局限于 LDAP,也不是必须开发与LDAP相关的应用程序。 JNDI支持LDAP v3中的关键功能。 JNDI与Netscape的Java LDAP API的关系 Netscape的API是特定于LDAP的。它用于对LDAP目录的低级别访问。它暴露应用程序一般不需要知道的协议细节。 JNDI是Java程序的一个普通目录API。大多数 Java 程序应该使用JNDI来访问目录。需要在协议级别处理目录内容的应用程序可能会选择使用 Netscape 的API。,JNDI简介,JNDI API由5个包组成 javax.naming:包含了访问命名服务的类和接口。 javax.naming.directory:对命名包的扩充,提供了访问目录服务的类和接口。 javax.naming.event:提供了对访问命名和目录服务时的事件通知的支持。 javax.naming.ldap:这个包提供了对LDAP 版本3扩充的操作和控制的支持,通用包javax.naming. directory没有包含这些操作和控制。 Javax.naming.spi:这个包是为有兴趣创建服务提供者的开发者提供的,JNDI简介,两个例子 JNDI访问文件系统:Lookup.java JNDI访问LDAP:Getattr.java,LDAP基本模型,LDAP四种基本模型 信息模型 命名模型 功能模型 安全模型,信息模型,定义能够在目录中存储的数据类型和基本的信息单位。 目录以树状的层次结构来存储数据。 目录的基本信息单元是条目(entry)即关于对象的信息集合。 条目由属性集合组成,每个属性说明对象的一个特征。每个属性有一个类型和一个或多个值。 属性类型说明包含在此属性中的信息的类型,而值包含实际的数据。,信息模型,信息模型,基准DN: LDAP目录树的最顶部就是根,也就是所谓的“基准DN”。 基准DN通常使用的两种格式 o=:用公司的域名作为基准DN。 dc=foobar, dc=com:以DNS域名为基础,把域名分成两部分。,信息模型,LDIF 用文本格式表示目录的标准方式,可以用来从目录服务器导出数据或者向目录服务器导入数据 一个LDIF条目由多行组成。第一行以dn:开始,后跟条目的分辨名。随后是条目的属性,每个属性一行。每个属性值前面是属性类型和冒号(:)。 属性值的顺序无关紧要,但是为了使它更容易读,一般把objectClass属性放在第一个,并且把相同的属性类型的值放在一起。 tutorial.ldif,信息模型,导入LDIF文件 目录配置-添加后缀(o=JNDITutorial) Web管理工具-目录管理-添加条目 结构对象类(organization) 相对DN(o=JNDITutorial) 目录配置-导入LDIF文件(tutorial.ldif),信息模型,Schema概述 Schema is the collection of attribute type definitions, object class definitions and other information which a server uses to determine how to match a filter or attribute value assertion(in a compare operation) against the attributes of an entry, and whether to permit add and modify operations.,信息模型,Object Classes 三种类型 结构类用来定义DIT的结构。只有结构类能独立定义条目。条目一经定义,其结构类不能改变。 结构类不能继承自辅助类。 辅助类用来增加条目的特性。通常被用来增加条目的必须和可选属性。辅助类不能继承自结构类。每个条目可以属于任意数量的辅助类。条目的辅助类可以在任何时候改变。 抽象类提供基础特性以供其它对象类继承。抽象类只能继承自抽象类。结构类都是直接或间接继承自抽象类top。辅助类可以没有父类。单独的抽象类不能定义条目。,信息模型,the mandatory and optional attributes:,信息模型,Adding a New Object Class AddObjectClass.java Deleting an Object Class DeleteObjectClass.java,信息模型,Attribute Type An attribute type definition specifies the attributes syntax and how attributes of that type are compared and sorted. the mandatory and optional attributes:,信息模型,信息模型,Adding a New Attribute Type Definition AddAttributeDefn.java Deleting an Attribute Type Definition DeleteAttributeDefn.java,信息模型,Attribute Syntax An attributes syntax specifies the representation of the attributes values Most servers support a fixed set of syntaxes. Changing that set programmatically is usually not a supported feature. the mandatory and optional attributes:,信息模型,Attribute Matching Rule A matching rule specifies how attribute values are to be matched for equality, ordering, and substring comparison. Most servers support a fixed set of matching rules. Changing that set programmatically is usually not a supported feature. the mandatory and optional attributes:,信息模型,命名模型,定义用户如何组织和引用数据 在UNIX文件系统中,最顶层是根目录。在根目录的下面有很多的文件和目录。LDAP目录也是用同样的方法组织起来的。 在根目录下,要把数据从逻辑上区分开。因为历史上的原因,大多数LDAP目录用OU从逻辑上把数据分开来。比如ou=People,ou=Servers等等。 更低一级的OU有时用来做更细的归类。比如ou=Engineering,ou=Sales。,命名模型,单独的LDAP记录 在LDAP目录中的所有记录项都有一个唯一的“Distinguished Name”,也就是DN。 uid=bjensen, ou=people, dc=airius, dc=com 在任何条目的DN中,最左边的一段被称为RDN。在兄弟条目间(他们拥有共同的直接父条目),每个RDN必须是唯一的。由于这个规则在条目树中递归有效,所以没有两个条目有相同的DN。 uid=bjensen,命名模型,多值RDN 包含多于一个名称/值对的RDN,用来在其他都相同的时候区分RDN。 cn=John Smith + mail= 应该避免在目录中使用多值RDN,功能模型,说明了能够使用LDAP协议对目录执行的操作 查询类操作 允许用户搜索目录并取回目录数据 如搜索、比较 更新类操作 允许用户对目录条目进行添加、删除和修改 如添加条目、删除条目、修改条目、修改条目名 认证和控制类操作 允许客户端向目录证明自己的身份,并在几个方面对会话进行控制,功能模型,如绑定、解绑定、放弃 扩展操作 提供的一种标准的扩展框架:如修改密码、StartTLS,功能模型,功能模型,查询类操作,Basic Search SearchRetAll.java Search Filters SearchWithFilterRetAll.java Search Controls The attributes to return / Specify the ids of the attributes to return String attrIDs = “sn“, “telephonenumber“, “golfhandicap“, “mail“; SearchControls ctls = new SearchControls(); ctls.setReturningAttributes(attrIDs);,查询类操作,The scope in which the search is to occur SearchControls.SUBTREE_SCOPE SearchControls.ONELEVEL_SCOPE SearchControls.OBJECT_SCOPE SearchControls ctls = new SearchControls(); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); The maximum number of entries to return / Set the search controls to limit the count to 1 SearchControls ctls = new SearchControls(); ctls.setCountLimit(1);,查询类操作,The maximum number of milliseconds to wait / Set the search controls to limit the time to 1 second (1000 ms) SearchControls ctls = new SearchControls(); ctls.setTimeLimit(1000);,查询类操作,The LDAP “Compare“ Operation To accomplish this in the JNDI, use suitably constrained arguments for the following methods: search(Name name, String filter, SearchControls ctls) search(Name name, String filterExpr, ObjectfilterArgs, SearchControls ctls) First, the filter must be of the form “(name=value)“ Second, the search scope must be SearchControls.OBJECT_SCOPE,查询类操作,Finally, you must request that no attributes be returned Compare.java,更新类操作,Creating a Context That Has Attributes Create.java Destroying a Context That Has Attributes Destroy.java Modifying Attributes ADD_ATTRIBUTE REPLACE_ATTRIBUTE REMOVE_ATTRIBUTE,更新类操作,Modattrs.java Renaming Objects Renaming to a Different Part of the DIT RenameDiffParent.java IBM Tivoli不支持修改DN,支持修改RDN,认证类操作,anonymous authentication None.java simple authentication Simple.java SASL authentication SASL Mechanisms Supported by LDAP Servers ServerSasl.java IBM Tivoli支持DIGEST-MD5、CRAM-MD5 Digest.java,安全模型,描述LDAP的安全机制 安全性 认证:保证对方的身份与所声明的相符 完整性:保证到达的信息与发送的信息相同 保密性:使用数据加密手段对要暴露的信息进行保护 授权:保证某一团体所请求的操作确实是被允许的 LDAP中的安全模型主要通过身份认证、安全通道和访问控制来实现,安全模型,身份认证 无认证(匿名):只在没有数据安全问题并且不涉及访问控制权限的时候才能使用。 基本认证:客户进程通过网络向服务进程发送一个分辨名(DN)和口令来标识自己。服务进程检查客户进程发送的分辨名(DN)和密

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论