LDAP读书笔记3-LDAP的模型

本文深入解析了LDAP(轻量级目录访问协议)的基础概念,包括信息模型、命名模型及功能模型等内容。介绍了条目、属性、值等核心概念,并详细阐述了查询操作的参数设置、更新操作以及认证控制等方面的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文原创作品,如需转载请注明来源,作者:姜涛, towerjt@gmail.com

 

信息模型

 

信息指存储在 Directory 中的内容。 LDAP 中最基础的信息单元是条目,存储的结构是一个树形的结构。

LDAP 中的信息可以归纳为“条目、属性、值”三类

 

<!-- --><!-- --><!-- -->

每一个 条目都有一个标示名( DN ),这是根节点,上图的 DNdc=example,dc=com 。每一个条目由一个属性和值组成。dc类似于表名?

 

属性有语法和匹配规则,语法标明对应与属性的值是什么类型,( INTEGERDirectoryStringOIDGeneralizedTime 等)。匹配规则指的是这个属性如何比较和排序规则,比方说 caseIgnoreMatch 就是大小写无关比较、排序,integerMatch 就是按整数形式比较、排序等。

属性分两类,用户态属性和操作态属性。用户态属性是用户能修改的属性,而操作态属性一般是 Directory 自己管理的。

属性可以加上一个限制就是这个属性允不允许唯一性,一般是通过设定这个属性是否允许 Multi 来设置。有些 Directory 甚至允许管理员设定属性对应的值的最大长度。

 

Directoryschema 和数据库的 schema 不一样,没有数据库的 schema 要求的那么严格,有一个 Required AttributesAllowed Attributes 的限制, Required Attributes 是要求对象必须有个属性。

 

命名模型

 

1dn:dc=example,dc=com

2dn:ou=people, dc=example,dc=com

3dn:uid=jtower, ou=people, dc=example,dc=com

 

可以通过多个属性值对来唯一确定一个条目:

cn=John Smith + mail=jsmith@example.com

 

如果值里面还有特殊字符,如( space#,+\<>; )都需要加转义符 \

 

LDAP 支持别名( alias ),类似于链接

 

 

功能模型

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

  • 查询操作

 

查询操作包含 8 个参数

<!-- [if !supportLists]-->1、  <!-- [endif]-->Base object 基础对象(从那棵树的那个节点开始查)

<!-- [if !supportLists]-->2、  <!-- [endif]-->scope 查询范围

base 就查询本节点

onelevel 就查询本节点的下一级节点

sub 查询本节点一下含本节点

<!-- [if !supportLists]-->3、  <!-- [endif]-->Alias Dereferencing Options 别名废弃

<!-- [if !supportLists]-->4、  <!-- [endif]-->Size Limit ,返回多少条记录

<!-- [if !supportLists]-->5、  <!-- [endif]-->Time Limit ,返回记录的 timeout

<!-- [if !supportLists]-->6、  <!-- [endif]-->Attributes-Only Parameter ,只返回属性,不返回值

<!-- [if !supportLists]-->7、  <!-- [endif]-->Search Filter ,过滤条件

相等操作: sn=smith

部分字符串操作: sn=smith*sn=*smithsn=smi*thsn=*smith*

近似操作: sn~=jensen ,有可能返回 jenson 等,不同的系统支持可能不一样

大于等于和小于等于: sn<=Smithage>=21age>21

存在操作: telephoneNumber=* ,返回存在 telephoneNumber 的记录

扩展操作

否定操作: (!(sn=smith))sn 不等于 smith

组合操作: (&(sn=smith)(L=MountainView))(|(sn=Smith) (sn=Jones))(&(mail=*)(!(telephoneNumber=*)))

<!-- [if !supportLists]-->8、  <!-- [endif]-->List of Attributes to Return ,返回哪些属性

cn, sn, givenName

*

*, modifiersName

 

 

  • 更新操作

 

增加、删除、改名、修改

 

 

  • 认证控制操作

 

Bindunbindabandon (取消操作,当一个大的查询发起的时候,可以会发起一个 abandon 操作中断查询)

 

 

安全模型

访问控制模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值