LDAP介绍_Laputa_SKY的博客-程序员秘密_ldap数据类型

技术标签: ---LDAP---教程  LDAP  ---LDAP---教程---2  

1. LDAP介绍


1.1. LDAP是什么


1.2. LDAP是电话簿


1.3. LDAP是不是数据库


2. LDAP的特点


2.1. LDAP的优势


2.1.1 跨平台


2.1.2 费用及维护


2.1.3 复制技术


2.1.4 允许使用ACI


2.2. LDAP存储什么数据


2.3. 什么时候该用LDAP存储数据


3. LDAP的基本模型


3.1 信息模型:描述LDAP的信息表示方式


3.2 命名模型:描述LDAP中的数据如何组织


3.3 功能模型:描述LDAP中的数据操作访问


3.4 安全模型:描述LDAP中的安全机制


3.4.1 身份认证


3.4.2 通讯安全


3.4.3 访问控制




1. LDAP介绍

1.1. LDAP是什么

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

1.2. LDAP是电话簿

LDAP其实是一电话簿,类似于我们所使用诸如NIS(Network Information Service)DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

1.3. LDAP是不是数据库

不少LDAP开发人员喜欢把LDAP与关系数据库相比,认为是另一种的存贮方式,然后在读性能上进行比较。实际上,这种对比的基础是错误的。LDAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是存贮模式和访问协议LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多

从另一个意义上 LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

就象SybaseOracleInformixMicrosoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

2. LDAP的特点

2.1. LDAP的优势

2.1.1 跨平台

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

LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上,LDAP得到了业界的广泛认可,因为它是Internet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。

2.1.2 费用及维护

不象很多商用的关系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费。

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

2.1.3 复制技术

LDAP服务器可以用""""的方法复制部分或全部数据,例如:可以把数据""到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。

2.1.4 允许使用ACI

LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。

2.2. LDAP存储什么数据

LDAP对于这样存储这样的信息最为有用:也就是数据需要从不同的地点读取,但是不需要经常更新。例如,这些信息存储在LDAP目录中是十分有效的:

公司员工的电话号码簿和组织结构图

客户的联系信息

计算机管理需要的信息,包括NIS映射、email假名,等等

软件包的配置信息

公用证书和安全密匙

2.3. 什么时候该用LDAP存储数据

大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储需要经常改变的数据。例如,用LDAP服务器来存储电话号码是一个很好的选择,但是它不能作为电子商务站点的数据库服务器。

如果下面每一个问题的答案都是"",那么把数据存在LDAP中就是一个好主意。

需要在任何平台上都能读取数据吗?

每一个单独的记录项是不是每一天都只有很少的改变?

可以把数据存在平面数据库(flat database)而不是关系型数据库中吗?换句话来说,也就是不管什么范式不范式的,把所有东西都存在一个记录中(差不多只要满足第一范式)。

最后一个问题可能会唬住一些人,其实用平面数据库去存储一些关系型的数据也是很一般的。例如,一条公司员工的记录就可以包含经理的登录名。用LDAP来存储这类信息是很方便的。一个简单的判断方法:如果可以把保数据存在一张张的卡片里,就可以很容易地把它存在LDAP目录里。

3. LDAP的基本模型

3.1 信息模型:描述LDAP的信息表示方式

LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值;LDAP中的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(Object Class),每个Object Class由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。

LDAP中把对象类、属性类型、语法和匹配规则统称为Schema(图表),在LDAP中有许多系统对象类、属性类型、语法和匹配规则,这些系统SchemaLDAP标准中进行了规定,同时不同的应用领域也定义了自己的Schema,同时用户在应用时,也可以根据需要自定义Schema。这有些类似于XML,除了XML标准中的XML定义外,每个行业都有自己标准的DTDDOM定义,用户也可以自扩展;也如同XML,在LDAP中也鼓励用户尽量使用标准的Schema,以增强信息的互联互通。

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

3.2 命名模型:描述LDAP中的数据如何组织

LDAP中的命名模型,也即LDAP中的条目定位方式。在LDAP中每个条目均有自己的DNRDNDN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN

3.3 功能模型:描述LDAP中的数据操作访问

LDAP中共有四类10种操作:查询类操作,如搜索、比较;更新类操作,如添加条目、删除条目、修改条目、修改条目名;认证类操作,如绑定、解绑定;其它操作,如放弃和扩展操作。除了扩展操作,另外9种是LDAP的标准操作;扩展操作是LDAP中为了增加新的功能,提供的一种标准的扩展框架,当前已经成为LDAP标准的扩展操作,有修改密码和StartTLS扩展,在新的RFC标准和草案中正在增加一些新的扩展操作,不同的LDAP厂商也均定义了自己的扩展操作。

3.4 安全模型:描述LDAP中的安全机制

LDAP中的安全模型主要通过身份认证、安全通道和访问控制来实现。

3.4.1 身份认证

LDAP中提供三种认证机制,即匿名、基本认证和SASLSimple Authentication and Secure Layer)认证。匿名认证即不对用户进行认证,该方法仅对完全公开的方式适用;基本认证均是通过用户名和密码进行身份识别,又分为简单密码和摘要密码认证;SASL认证即LDAP提供的在SSLTLS安全通道基础上进行的身份认证,包括数字证书的认证。

3.4.2 通讯安全

LDAP中提供了基于SSL/TLS的通讯安全保障。SSL/TLS是基于PKI信息安全技术,是目前Internet上广泛采用的安全服务。LDAP通过StartTLS方式启动TLS服务,可以提供通讯中的数据保密性、完整性保护;通过强制客户端证书认证的TLS服务,同时可以实现对客户端身份和服务器端身份的双向验证。

3.4.3 访问控制

虽然LDAP目前并无访问控制的标准,但从一些草案中或是事实上LDAP产品的访问控制情况,我们不难看出:LDAP访问控制异常的灵活和丰富,在LDAP中是基于访问控制策略语句来实现访问控制的,这不同于现有的关系型数据库系统和应用系统,它是通过基于访问控制列表来实现的,无论是基于组模式或角色模式,都摆脱不了这种限制。

在使用关系型数据库系统开发应用时,往往是通过几个固定的数据库用户名访问数据库。对于应用系统本身的访问控制,通常是需要建立专门的用户表,在应用系统内开发针对不同用户的访问控制授权代码,这样一旦访问控制策略变更时,往往需要代码进行变更。总之一句话,关系型数据库的应用中用户数据管理和数据库访问标识是分离的,复杂的数据访问控制需要通过应用来实现。

而对于LDAP用户数据管理和访问标识是一体的,应用不需要关心访问控制的实现。这是由于在LDAP中的访问控制语句是基于策略语句来实现的,无论是访问控制的数据对象,还是访问控制的主体对象,均是与这些对象在树中的位置和对象本身的数据特征相关。

LDAP中,可以把整个目录、目录的子树、制定条目、特定条目属性集或符合某过滤条件的条目作为控制对象进行授权;可以把特定用户、属于特定组或所有目录用户作为授权主体进行授权;最后,还可以定义对特定位置(例如IP地址或DNS名称)的访问权。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Laputa_SKY/article/details/80360865

智能推荐

git-常用命令使用_chen_hongwei的博客-程序员秘密_git拉取项目命令

配置ssh秘钥对 生成秘钥对# cd ~/.ssh# ls# authorized_keys2 id_dsa known_hosts config id_dsa.pub查看你的公钥# cat ~/.ssh/id_rsa.pub配置公钥到github# 登陆你的github帐户。点击你的头像,然后 Settings -> 左栏点击 SSH and GPG...

你没想到的N个创业赚钱点子和赚钱的坑_公众号是网络圈沧海的博客-程序员秘密

花了三天时间为大家搜集了些创业赚钱的小点子,还罗列了一些网络赚钱常见的坑。其实网络上赚钱并没有大家想象的那么难,难的是大家不够坚持,坚持一周容易,一个月也简单,但坚持三个月甚至半年的很难。所以成功者始终是少数,20%的人在用脖子以上赚着80%的钱,80%的人在用脖子以下赚着20%的钱,而你如果不幸成为了这80%的人,那恭喜你,赚钱跟你是真的没有缘分。还不如回到公司,踏踏实实的上班算了。你们一天都在叫嚣没有项目,没有项目,你看下如下这些人,都是怎么赚钱的呢?再小的生意再细的分支也有人做得风生水起。..

C. 三数论大小(指针)_kaylee_chen的博客-程序员秘密

题目描述输入三个整数,然后按照从大到小的顺序输出数值。要求:用三个指针分别指向这三个整数,排序过程必须通过这三个指针来操作,不能直接访问这三个整数输出时,必须使用这三个指针,不能使用存储三个整数的变量输入第一行输入t表示有t个测试实例第二行起,每行输入三个整数输入t行输出每行按照从大到小的顺序输出每个实例在每行中,每个数据输出后都带有一个空格,即使该行最后一个数据输出后也要再输出一个空格

GAMS语法初级教程_霜月飞鸟的博客-程序员秘密

https://www.yuque.com/docs/share/4a50de2f-a787-4c3b-9835-6be3476f3eaa?# 《GAMS语法初级教程》

注解@CrossOrigin_代码匪徒的博客-程序员秘密_crossorigin注解怎么用

详细介绍了@CrossOrigin及其使用环境和用法,和 可能出现的一些问题解决方案...

boost下载和编译初步指南(windows10+VScode)_blots的博客-程序员秘密_boost下载

文章目录boost库介绍boost库介绍学boost库之前,应该先对STL(Standard Template Library)标准模板库已经有所了解,boost是对STL的一个补充,

随便推点

面试官:熟悉Redis,那聊聊Redis主从复制?我画了13张图讲明白了_普通网友的博客-程序员秘密

怎么实现高可用呢? 最重要的一点就是冗余数据啊,redis 是通过主从复制来实现数据的冗余存储,这样在主redis down调用之后,切换到从就可以了,这样就实现了故障转移,保证了高可用了,今天我们主要来讲主从复制,至于主down掉之后,怎么切换到从,我们会在下篇再聊。怎么做备份我想在再看redis 主从复制之前,有必要看下下面这三个基础概念。备份分为冷备和热备,如果再深入一些还有多活。热备:由主库或者说是主数据中心承担业务流量,同时会实时的备份数据到从库或者从的数据中心。如下图。

HTML5期末大作业:医药用品购物网站设计——医药用品购物商城首页(1页) HTML+CSS+JavaScript HTML+CSS大作业: 医药用品购物网页制作作业_医药用品购物页设计..._web领域优质创作者-网页设计的博客-程序员秘密

HTML5期末大作业:医药用品购物网站设计——医药用品购物商城首页(1页) HTML+CSS+JavaScript HTML+CSS大作业: 医药用品购物网页制作作业_医药用品购物页设计…常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业

Thinkphp6接入微信支付V3版电商收付通简单示例_xmode的博客-程序员秘密_plat_cert.json

开发框架:thinkphp6Api封装类:extend/library/WxPay.php<?phpnamespace library;class WxPay{ //appId private $appId; //appSecret private $appSecret; //商户号 private $mchId; //商户密钥 private $mchKey; //本地路径 private $path;

大型前端高可用部署架构_人工智的博客-程序员秘密_前端高可用

1、流量接入层:前端负载均衡&架构_Deegue-程序员秘密_前端负载均衡火种培训,听了前端的架构分享,突然想知道前端是怎么处理高并发,负载均衡的。网上找了一下,转载分享~---------------------------------------------------------------------一直对浏览器到服务层这部分访问的负载均衡不是很清楚,今天看了一篇58到家shenjian的文章,觉得不错,这里大概说说自己的感想,文中的图都...https://blog.csdn.net

Attributes_itroy的博客-程序员秘密

Attributes getAttr setAttr attributeExists deleteAttr renameAttr listAttr attributeQuery   Time currentUnit currentTime Playback play; play -forward false; play -query -state; play -s

看透kafka(-) kafka数据存储详解(存储速度,高水位,偏移量,LEO,ISR等)_刘狗的博客-程序员秘密

kafka 始于linkedIn公司 (scala语言编写),现以捐献给apache基金会总所周知,kafka数据持久化与磁盘。为什么kafka基于磁盘比基于内存还要快。1.kafka的数据文件是二进制文件,相对文本文件要小,减少了很多数据传输,提高了速度2.kafka是对于磁盘进行顺序读写,避免了磁盘随机写的磁盘寻道的开销3.kakfa消息再写入磁盘前会先写...

推荐文章

热门文章

相关标签