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的读性能要优秀很多。
就象Sybase、Oracle、Informix或Microsoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个 hierarchical(分层,即树形结构的存储)数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。
现在LDAP技术发展得很快令人激动人心。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等(这点很重要,这对于了解ldap适用于存储什么,如何使用来说无疑是很有帮助的)。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
优势
l 跨平台
LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。
LDAP 协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上,LDAP得到了业界的广泛认可,因为它是 Internet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与 LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。
l 费用及维护
不象很多商用的关系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费。大多数的LDAP服务器安装起来很简单,也容易维护和优化。
l 复制技术
LDAP服务器可以用"推"或"拉"的方法复制部分或全部数据,例如:可以把数据"推"到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。
l 允许使用ACI
LDAP 允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。
LDAP存储什么数据
LDAP对于这样存储这样的信息最为有用:也就是数据需要从不同的地点读取,但是不需要经常更新。例如,这些信息存储在LDAP目录中是十分有效的:
l 公司员工的电话号码簿和组织结构图
l 客户的联系信息
l 计算机管理需要的信息,包括NIS映射、email假名,等等
l 软件包的配置信息
l 公用证书和安全密匙
什么时候该用LDAP存储数据
大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储需要需要经常改变的数据。例如,用LDAP服务器来存储电话号码是一个很好的选择,但是它不能作为电子商务站点的数据库服务器。
OpenLDAP
安装
下载OpenLDAP(可到官网去下载,不过这资源比较难找)
双击安装程序进行安装
配置
编辑sldap.confi文件
在OpenLDAP的安装目录下的OpenLDAP文件中找到sldap.conf文件,使用任何一种文本编辑器开,然后找到
include include ./schema/core.schema
在它后面添加
include ./schema/cosine.schema
include ./ schema/inetorgperson.schema
接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
include ./schema/corba.schema
include ./schema/dyngroup.schema
include ./schema/java.schema
include ./schema/misc.schema
include ./schema/nis.schema
include ./schema/openldap.schema
<这里要注意这些文件的添加的先后顺序,因为某些文件是有依赖关系,被依赖的schema必须放在前面>
配置LDAP服务器登录的rootDN、管理用户和密码(包括明文和密文)
还是在sldap.conf文件进行配置,首先找到
suffix "dc=example,dc=com" (这里我自定义为dc=teemlink,dc=com,表示:teemlink.com)
rootdn "cn=Manager,dc= example,dc=com"
(这里我定义为cn=Manager,dc=teemlink,dc=com)
rootpw secret
(这里我不修改)
这3条信息,其中suffix表示目录系统的根(可以自定义);rootdn表示登录服务器的用户名(其中cn=Manager表示以管理者身份登录); rootpw表示登陆者的密码(这里是明文secret),当然你也可以使用密文方式的密码,你可以使用命令slappasswd -h {md5} -s secret算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。
(请注意,因为我自定义了suffix,因此必须在data目录下自定义ldif文件来初始化目录数据,否则会出No Such Object的错误,因为自定义的根目录节点必须带有至少一个属性的记录数据)
配置data目录下的ldif文件(文件名可随意,我这里定义为root.ldif)
在文件中输入如下信息
dn:dc=teemlink,dc=com
objectClass:dcObject
objectClass:organization
dc:teemlink
o:teemlink
description:www.teemlink.com
启动OpenLDAP服务(这里可以设置为自启动方式,即在电脑启动时自动运行)
运行CMD在OpenLDAP目录下输入slapd -d 1
用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。(你可以安装ldap浏览器,这些浏览器提供界面支持,我这里用到了LDAPbrowser和Jxplorer)
LDAPbrowser界面:
其配置如下
Jxplorer界面
配置如下
专用名词解释:
DN=Distinguished Name 一个目录条目的名字
CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;
OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;
O=Organization 为组织名,可以3—64个字符长
C=Country为国家名,可选,为2个字符长
L=Location 地名,通常是城市的名称
ST 州或省的名称
O=Orgnization 组织名称
OU=Orgnizagion Unit 组织单位
STREET 街道地址
UID 用户标识
这是其中一些,详细可参考OpenLDAP目录下的schema目录下的schema文件的定义,里面定义了一些自带的schema文件。
- 大小: 32.8 KB
- 大小: 10.6 KB
- 大小: 31.8 KB
- 大小: 21.4 KB
- 大小: 12.7 KB
分享到:
相关推荐
"LDAP基础知识教程.pdf"则可能是一个更全面的教程,涵盖了以下主题: 1. LDAP协议基础:解释LDAP的请求/响应模型,操作类型(如bind、search、modify)及其语法。 2. LDAP目录模型:介绍Distinguished Name (DN)、...
本篇文章将深入探讨如何使用Delphi来连接并操作LDAP服务器。 首先,我们需要了解Delphi中的组件库提供了哪些工具来处理LDAP连接。`TADOConnection`和`TADODataset`等组件是Delphi与数据库交互的基础,但它们并不...
#### 二、LDAP基础知识 在深入了解示例代码之前,我们先简要介绍一些LDAP的基础概念: 1. **DN (Distinguished Name)**:标识目录条目的唯一名称,由一系列属性组成。 2. **RDN (Relative Distinguished Name)**:...
这使得企业能够利用已有的LDAP基础设施,无缝地将禅道融入其IT生态系统,提高用户管理和权限控制的效率。值得注意的是,在实施过程中,需要根据企业的具体需求和 LDAP 服务器的配置进行相应的调整,确保 LDAP 集成既...
本篇文章将深入探讨如何在Spring MVC项目中集成并使用LDAP进行用户身份验证和管理。 首先,理解LDAP的基本概念至关重要。LDAP目录服务是一种基于树形结构的数据存储,其中每个条目都有唯一的标识符(DN,...
本篇文章主要介绍了 Spring Boot 中使用 LDAP 来统一管理用户信息的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。下面我们将详细介绍 LDAP 的基础概念和在 Spring Boot 中如何使用 LDAP 来统一管理用户...
LDAP基础知识 LDAP是一种基于X.500标准的目录服务协议,用于存储和检索分布式数据。它的主要特点是查询速度快,支持多种查询方式,如基于属性的查询。在企业环境中,LDAP常用于集中式用户身份管理,提供单点登录...
1. **LDAP基础知识**:解释LDAP的基本概念,包括目录服务、DN(Distinguished Name)和UID(User ID)。目录服务是存储和检索信息的高效系统,DN是唯一标识目录对象的字符串,而UID通常代表用户账户。 2. **AD与...
本篇将详细讲解如何配置BIEE以使用LDAP进行外部认证,以实现更安全、高效的用户登录管理。 首先,理解BIEE LDAP配置的重要性。通过集成BIEE与LDAP,企业可以统一用户身份验证,避免在多个系统中维护用户账户的繁琐...
本篇文章将详细探讨如何使用Windows系统中的Linux LDAP用户认证工具。 首先,我们来看标签中提到的两个工具:`ldapauth_plus-1.5.3-x64.zip`和`ldapauth_plus_x86.zip`。这两个是适用于不同架构的`ldapauth_plus`...
**LDAP基础知识** LDAP是一种开放的标准,用于存储和检索分布式目录信息。它采用层次结构来组织数据,类似文件系统的目录结构。通过使用特定的查询语言(如搜索过滤器),可以高效地查找和操作目录中的条目。 **...
在本篇博客“spring ldap操作(一)目录测试环境搭建”中,我们将深入探讨如何在Java应用程序中使用Spring LDAP框架来操作LDAP(轻量级目录访问协议)服务器,以及如何搭建一个测试环境来验证和调试相关功能。...
这将创建一个上下文源,我们可以从中获取`DirContext`实例,它是执行 LDAP 操作的基础。 2. **构建查询**:Spring LDAP 提供了`LdapQueryBuilder`来构建查询。你可以根据需要选择过滤器(比如基于DN、属性等的查询...
本篇将深入探讨如何使用C语言与Windows AD上的LDAP服务器进行交互,以及在"novel-cldap-devel.zip"压缩包中提供的开发资源。 首先,我们需要理解C语言中的LDAP接口。这个库通常包含在OpenLDAP或Microsoft的SDK中,...
本篇文章将重点探讨两个关键组件:“api-ldap-codec-core-1.0.0-M24”和“azure-sdk-for-java”,特别是它们在Java开发中的应用。 首先,让我们关注“api-ldap-codec-core-1.0.0-M24”。LDAP(轻量级目录访问协议)...
本书共分为基础篇、高级篇和实战篇,共计17章。基础篇涵盖了OpenLDAP的工作原理、OpenLDAP服务器的安装与配置、OpenLDAP的命令详解、OpenLDAP客户端部署以及GUI管理。高级篇则介绍了OpenLDAP的高级主题,包括...
**LDAP基础** LDAP是一种标准的网络协议,用于存储和检索分布式目录信息。它通常用来存储用户账户、组信息以及权限等,便于进行身份验证和授权。在企业环境中,LDAP服务器如Active Directory或OpenLDAP是常见的用户...