如果你有使用数据库的背景的话,你应该已经对模式比较熟悉。简单的说,模式就是决定数据存储 在数据库或者是目录中的存储规则。模式非常重要,它帮助管理数据的完整性和质量。同时,模式能够减少数据的重复、提供良好的格式以及给外部程序访问和修改 数据提供一个预先定义好的规则。
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,这个插件将为你提供...
设计LDAP可验证 Devise LDAP Authenticatable是用于身份验证框架的基于LDAP的身份验证策略。 如果要构建需要在组织中使用的需要身份验证的应用程序,并且要使用LDAP,则此插件适合您。 Devise LDAP Authenticatable...
基于LDAP的统一身份认证的设计与实现 基于LDAP的统一身份认证系统的实现 基于LDAP的校园网统一身份认证系统设计 基于LDAP和SOAP的校园统一身份认证系统的研究与实现 6篇PDF格式的文章,属于期刊,并无代码(请慎重...
基于LDAP的统一用户认证系统设计与实现
LDAP_-_概念、体系结构和设计 LDAP_-_概念、体系结构和设计
全书涵盖了ldap的原理、安装、配置、管理、设计、编程、部署等各个方面,借助大量生动的实例和精辟的分析向读者展示了ldap目录服务的使用技巧和开发过程。 本书适用于ldap应用设计和编程开发人员,也特别适合ldap...
LDAP的单点登录方案的设计与实现LDAP的单点登录方案的设计与实现
基于LDAP的校园网统一身份认证系统设计.pdf
介绍了LDAP协议的技术原理,并对基于LDAP技术的单点登录系统做出了研究,旨在设计一种高效、安全的用户登录系统。
它是专为新手 ldap 用户和管理员设计的只读工具,他们只是打算浏览目录而不必担心对目录的任何意外修改。使用 LDAPSoft ldap 浏览器,您可以搜索条目、查看所有可用属性并运行 SQL-LDAP 语句。浏览器仅提供只读界面...
单点登录在统一用户管理中是关键功能之一,利用单点登录,用户只需认证一次,就可以访问所有授权的应用系统,大大提高了用户体验,也降低了对用户名/密码的维护和分发的工作量
该校园身份管理系统包括3个子系统: (1)身份管理子系统:实现身份认证功能。 ... (3)校园学生信息管理系统:配合实现单点登录的子系统。系统管理员负责对学生信息增、删、查、改等维护工作。 ... (2)统一的登录门户,...
如何为文件系统提供更完备和更强伸缩性的安全保障是...基于LDAP技术和SSH协议设计了一个分布式安全文件系统,为文件系统提供了灵活而强大的安全策略保护,介绍了分布式安全文件系统的框架、原理以及安全设计以及分析。
基于LDAP的CAS单点登录系统设计,详细的解决方案,是做项目实践的好参考
基于LDAP的域名实时管理系统设计与实现.pdf
该机制设计了一个异构服务代理,将异构服务封装为OSGi bundle服务,实现服务生命周期管理,并结合LDAP技术实现异构服务元数据管理;同时引入工作流引擎技术,搭建了一个异构服务交互调用的原型系统。通过遥感NDVI...
介绍了BA于LDAP的统一访问控制系统的设计与实现,在论文网站付费下载的,值啊
ldap模式设计,介绍有关LDAP的模式设计的相关问题与算法,思路.
基于LDAP的校园身份统一认证系统,毕业设计,后端node.js.zip
本文定义了C语言应用程序编程接口。LDAP API设计成既强大又简单易用。定义了LDAP的兼容的同步和同步接口,以适应大量不同应用。此文档给出简要LDAP模型概要,可以引导用户如何通过这些API编程取得LDAP信息。