如果你有使用数据库的背景的话,你应该已经对模式比较熟悉。简单的说,模式就是决定数据存储 在数据库或者是目录中的存储规则。模式非常重要,它帮助管理数据的完整性和质量。同时,模式能够减少数据的重复、提供良好的格式以及给外部程序访问和修改 数据提供一个预先定义好的规则。
LDAP模式的元素:属性类型、属性语法、匹配规则、对象类(object classes)
1、属性
1.1、属性名
属性名有如下的属性:
1、大小写无关
2、属性名可以 只限使用ASCII字母,数字,连接字符(-,不是下划线);并且以字母开头
3、在整个目录服务中,名字应该是唯一的
合法命名:cn, telephoneNumber, postalAddress, one-way, faxPhone2, and pagesPerMinute
非 法命名:last#, 2for2, my.boss, and favorite_drink
一些标准的属性因为历史的原因,用长的或短的名字命名都是可以的,如(commonName 和cn),但是大多数情况下,短的名字用的更多,在NDS里面,长的名字有时候会用来做短名字的别名和同义词。
1.2、唯一标示属性的OID
OID是一组用点分隔的数字,如2.5.4.16,因为在X.500系统里面是用这种方式来标示属性类型的。虽然OID能代替属性名,但是实际上还 是用名字更多一些,因为更容易使用。
1.3、文本描述
1.4、一个属性类型的例子
The description Attribute
( 2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
翻译一下就是,这个属性名叫description,是一个字符 串,能容纳1024个字符,使用caseIgnore系列比较规则,因此在比较的时候,字母的大小写、开头和结尾的空格都将被忽略,OID是 2.5.4.13
1.5、属性等级
在一些LDAP的实现中,很明显的跟最近的X.500标准一样,支持属性的subtype
name(SuperType)
|
------------------------------------
| | | | | |
cn sn givenName initials c o (subtype)
在上面的例子里面,因为cn、sn是name的subtype,所以当一个查询条件要查询所有name的值的时候,将会把name和它下面 的cn、sn等都返回。
属性等级是一个有趣的但是却潜在者造成困苦的功能。大部分的LDAP实现并不支持。
1.6、使用指示(标示是给应用程序还是给目录服务用的)
1.7、标示属性值是否可以有重复的值
一个属性可能存储多个值,可以通过multivalued来选择,一般来说multivalued是一个缺省选项,因为大多数属性类型都是多值的。
1.8、 标示能否被适当的程序修改
1.9、约束属性值的大小
2、相关联的属性语法
语法也有一个OID,标准语法如下:
Table 8.2. Standard Syntaxes
Syntax
OID
Description
Binary
1.3.6.1.4.1.1466.115.121.1.5
按照Basic Encoding Rules (BER) 或者Distinguished Encoding Rules (DER)—for example, an X.509v3 certificate编码
Boolean
1.3.6.1.4.1.1466.115.121.1.7
TRUE or FALSE
CountryString
1.3.6.1.4.1.1466.115.121.1.11
两位国家代码, 如US
DirectoryString
1.3.6.1.4.1.1466.115.121.1.15
按照UTF8存储的文本
DN
1.3.6.1.4.1.1466.115.121.1.12
Distinguished name (pointer to another entry) in string (RFC 2253) format
GeneralizedTime
1.3.6.1.4.1.1466.115.121.1.24
按照X.208格式的日期和时间—for example, 20010911134600Z
IA5String
1.3.6.1.4.1.1466.115.121.1.26
ASCII文本字符串
INTEGER
1.3.6.1.4.1.1466.115.121.1.27
整数值
OctetString
1.3.6.1.4.1.1466.115.121.1.40
8进制
PostalAddress
1.3.6.1.4.1.1466.115.121.1.41
多行的邮寄地址用$分行
PrintableString
1.3.6.1.4.1.1466.115.121.1.44
可打印字符
TelephoneNumber
1.3.6.1.4.1.1466.115.121.1.50
电话号码,按照E.123格式 format—for example, +1 800 555-1212
URI
1.3.6.1.4.1.4401.1.1.1
Uniform Resource Identifier—for example, a Uniform Resource Locator (URL)
3、管理比较和搜索的匹配规则
标准匹配规则
Matching Rule
Description
booleanMatch
布尔值比较,只有等于被支持
caseIgnoreMatch
大小写忽略,开头和结尾的空格被忽略
caseExactMatch
大小写敏感,开头和结尾的空格被忽略
distinguishedNameMatch
DN比较规则(RDN应该相同,并且类型和值必须匹配)
integerMatch
整数比较
octetStringMatch
二进制比较,一个字节一个字节的比较
telephoneNumberMatch
跟 caseIgnoreMatch类似 , 在比较时,连接符(-)和空格都忽略
4、object classes
写到这里,实际上我们可以对比一下关系型数据库,前面关于属性的东西可以理解是字段,而现在要提到的object classes类似于表了。只不过在DS里面,属性是全局的,而关系型数据库里面字段是对应表的;在DS里面object classes对属性的要求也比关系型数据库对字段的要求要宽松很多。只是有一个必选和可选的字段要求。比方说person这个object class,cn、sn和objectclass是必须的,而其他的信息则是可选的。
object class是有层次的: top->person->organizationalPerson->inetOrgPerson
分享到:
相关推荐
devise_ldap_authenticatable, 为LDAP设计模块 设计 LDAP Authenticatable Devise是一种基于LDAP的认证策略,用于基于LDAP的验证框架。如果你正在构建要在组织中使用的应用程序,需要使用 LDAP,这个插件将为你提供...
1. 查询速度快:LDAP设计优化了查询效率,使得查找信息更为迅速。 2. 增删改速度较慢:尽管查询快速,但在增加、删除或修改数据时可能相对缓慢。 3. 支持分布式:LDAP目录服务器可以分布在不同的地理位置,形成...
LdapBrowser282是一款专为 LDAP 设计的图形化工具,它提供了友好的界面,使得用户能够方便地浏览、查询、编辑和管理 LDAP 目录信息。在本文中,我们将详细探讨 LDAP 协议的基本概念,以及 LdapBrowser282 如何作为...
相比于传统的数据库管理系统,LDAP设计的目标是高效查询而非复杂的数据事务处理,因此在需要快速查找和验证用户身份的场景中,如企业内部的身份验证和权限管理,它显得尤为适用。 接下来,我们聚焦于"LDAP客户端"。...
1. **可扩展性**:LDAP设计为可水平扩展,能处理大量条目和并发请求。 2. **标准化**:遵循公开的国际标准,易于集成到各种系统中。 3. **高效**:查询速度快,适合大规模数据查询。 4. **安全性**:支持多种安全...
LdapBrowser是一款专为开放源代码的OpenLDAP设计的连接工具,帮助管理员便捷地浏览、编辑和管理LDAP目录。 **一、LdapBrowser的功能特性** 1. **图形化界面**:LdapBrowser提供了直观的图形用户界面,使得非技术...
与基于X.500标准的复杂系统不同,LDAP设计简洁且可定制,并且支持TCP/IP,使得它非常适合互联网环境。LDAP的核心规范在RFC文档中定义,这些文档可以在LDAPman RFC网页中查阅。 在日常使用中,人们常将LDAP与存储...
5. **易于集成**:pyams_auth_ldap设计为与其他Python框架,如Flask、Django等兼容,方便开发者将其无缝集成到现有项目中。 除了基本的LDAP功能,这个库可能还包含了对Zookeeper的支持。Zookeeper是一个分布式协调...
它基于X.500标准,但设计得更为简单且适合互联网环境。LDAP允许用户通过统一的接口访问分布式目录服务,提供查询、更新、添加和删除目录条目的功能。 **LDAP客户端** LDAP客户端是与 LDAP 服务器交互的工具,允许...
LdapAdmin是一款专为Windows操作系统设计的高效、稳定的LDAP管理工具,它允许管理员便捷地浏览、操作和管理LDAP目录。** ### LDAP概述 LDAP是基于X.500标准的简化版,适用于互联网环境,通过TCP/IP协议进行通信。它...
与数据库不同,目录服务通常设计为快速查找和访问少量信息,而不是存储大量数据。 2. **LDAP目录结构**:基于树形结构,每个节点称为条目(Entry),条目由属性(Attribute)组成,属性包含一个或多个值。条目的DN...
综上所述,这个"ldap.zip"压缩包中的项目是一个结合了DELPHI和LDAP技术的电话簿应用,涵盖了从连接LDAP服务器、查询和操作数据,到设计用户界面等多个方面的知识。开发者在实现这个应用时,需要熟练掌握DELPHI编程和...
设计LDAP可验证 Devise LDAP Authenticatable是用于身份验证框架的基于LDAP的身份验证策略。 如果要构建需要在组织中使用的需要身份验证的应用程序,并且要使用LDAP,则此插件适合您。 Devise LDAP Authenticatable...
Ldapadmin是一个专为Windows设计的图形化界面工具,用于方便地管理 LDAP 服务器。它允许系统管理员进行各种操作,如创建、编辑、删除和搜索目录对象,以及执行其他与LDAP相关的任务。Ldapadmin通过提供清晰的用户...
它基于X.500标准,但设计得更为简洁和轻便,适合在互联网环境中运行。OpenLDAP提供了目录服务,可以存储用户账号、组信息、配置数据等,便于进行快速查询和访问。 LdapBrowser作为OpenLDAP的客户端工具,其主要功能...
### 基于LDAP的统一用户认证系统设计与实现 #### 概述 随着网络技术的发展,企业或组织内部的应用系统日益增多,这对用户管理带来了挑战。传统的每个应用系统独立进行用户认证的方式不仅效率低下,还可能导致用户...
相比于更重量级的目录访问协议如X.500,LDAP设计得更为轻便,更适合在网络中提供快速的身份验证和授权。 **Active Directory (AD)** Active Directory是Microsoft Windows操作系统中的核心组件,用于存储和管理网络...
1. **Eclipse 风格界面**:ApacheDirectoryStudio 借鉴了流行的 Eclipse 开发环境的界面设计,提供了熟悉的用户体验,包括可定制的视图、强大的搜索功能以及插件扩展能力。 2. **目录结构可视化**:该工具以清晰的...
一个 LDAP 编辑器是专门设计用来与 LDAP 服务器进行交互的工具,允许管理员查看、创建、修改和删除 LDAP 数据。 **主要功能** 1. **连接 LDAP 服务器**:LDAP 编辑器能够连接到各种 LDAP 服务器,包括但不限于 ...