网络工作组J.Sermersheim,Ed。征求意见:4511 Novell,Inc。过时:2251,2830,37712006年6月类别:标准轨道轻量级目录访问协议(LDAP):协议关于下段备忘本文档为互联网社区,并请求讨论和建议改进。请参阅“互联网”的最新版本标准化状态的官方协议标准”(STD 1)以及此协议的状态。此备忘录的分发不受限制。版权声明版权所有(C)互联网协会(2006)。摘要本文档描述了协议元素及其轻量级目录访问协议的语义和编码(LDAP)。LDAP提供对分布式目录服务的访问按照X.500数据和服务模型行事。这些协议元素基于X.500目录访问中描述的元素协议(DAP)。目录1.简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
      1.1.与其他LDAP规范的关系。。。。。。。。。。。。。。。。。。
   2.惯例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   .协议模型。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4
      3.1.操作和LDAP消息层关系。。。。。。。。。。。。。。5
   4.协议要素。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5
      4.1.通用元件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5
           4.1.1.信息信封。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6
           4.1.2.字符串类型。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7
           4.1.3.可分辨名称和相对可分辨名称。。84.1.4.属性描述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8
           4.1.5.属性值。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8
           4.1.6.属性值断言。。。。。。。。。。。。。。。。。。。。。。。。。。。9
           4.1.7条.属性和部分属性。。。。。。。。。。。。。。。。。。。。。。9
           4.1.8.匹配规则标识符。。。。。。。。。。。。。。。。。。。。。。。。。。。10
           4.1.9.结果消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10
           4.1.10.转介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12



Sermersheim标准轨道[第1页]


副本请求4511LDAPv3 2006年6月


           4.1.11.控制装置。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14
      4.2.绑定操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。16
           4.2.1.绑定请求的处理。。。。。。。。。。。。。。。。。。。。。17
           4.2.2.绑定响应。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。18
      4.3.解绑操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。18
      4.4.未经请求的通知。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。19
           4.4.1.断开连接通知。。。。。。。。。。。。。。。。。。。。。。。。。。。。19
      4.5.搜索操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。20
           4.5.1.搜索请求。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。20
           4.5.2.搜索结果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。27
           4.5.3.搜索结果中的继续引用。。。。。。。28
      4.6.修改操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。31
      4.7.添加操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33
      4.8.删除操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。34
      4.9.修改DN操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。34
      4.10.比较操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。36
      4.11.放弃操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。36
      4.12.扩展操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。37
      4.13.中间响应消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。394.13.1. 使用LDAP ExtendedRequest和扩展响应。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。40
           4.13.2.与LDAP请求控制一起使用。。。。。。。。。。。。。。。。。。40
      4.14.启动TLS操作。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。40
           4.14.1.StartTLS请求。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。40
           4.14.2.StartTLS响应。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。41
           4.14.3.TLS层的移除。。。。。。。。。。。。。。。。。。。。。。。。。。41
   5.协议编码、连接和传输。。。。。。。。。。。。。。。。。。。。42
      5.1.协议编码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。42
      5.2.传输控制协议(TCP)。。。。。。。。。。。。。。。。。。。。。。。43
      5.3.LDAP会话的终止。。。。。。。。。。。。。。。。。。。。。。。。。。。43
   6.安全注意事项。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。43
   7.确认。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。45
   8规范性引用文件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。46
   9.参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48
   10IANA注意事项。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48
   附录A.LDAP结果代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。49
      A.1.无错误结果代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。49
      A.2款.结果代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。49
   附录B.完成ASN.1定义。。。。。。。。。。。。。。。。。。。。。。。。。。。。。54
   附录C.变更。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。60
      C.1条款。对所做的更改RFC 2251号文件..................................60
      C.2条款。对所做的更改RFC 2830..................................66
      C.3号机组。对所做的更改副本请求3771..................................66








Sermersheim标准跟踪[第2页]


副本请求4511LDAPv3 2006年6月


1.简介目录是“合作提供的开放系统的集合目录服务“[X.500号].  目录用户,可能是人类或其他实体,通过客户端(或目录用户代理(DUA))。代表目录的客户端用户,与一个或多个服务器(或目录系统代理)交互(DSA))。客户端使用目录访问与服务器交互协议。本文档详细介绍了轻量级目录访问协议(LDAP)及其语义。在描述协议元素之后,它描述了其中对协议元素进行编码和传输。1.1.与其他LDAP规范的关系本文档是LDAP技术规范的组成部分[RFC4510协议],它取代了先前定义的LDAP技术规范,副本请求3377,全部。本文件以及[RFC4510协议], [RFC4513协议]、和[RFC4512协议],过时的RFC 2251号文件整体而言。第3.3节已被淘汰[RFC4510协议].  小节4.2.1(部分)和4.2.2已被废除[RFC4513协议].  小节3.2,3.4,4.1.3(最后一段),4.1.4,4.1.5,4.1.5.1、4.1.9(最后一段)、5.1、6.1和6.2(最后一段落)被淘汰[RFC4512协议].  剩余的射频2251已过时根据本文件。附录C.1总结了剩余部分。本文件作废RFC 2830,节24.剩余的RFC 2830已被淘汰[RFC4513协议].附录C.2总结对其余部分进行了实质性修改。本文件也已作废射频3771全部。2.惯例关键词“必须”、“不得”、“必需”、“应”、“不应”、,本文件中的“宜”、“宜不”、“建议”和“可”是解释如下[RFC2119协议].本文档中的字符名使用符号表示代码点和Unicode标准中的名称[Unicode码].  例如,信“a”可以表示为<U+0061>或<LATIN小写字母a>。Sermersheim标准轨道[第3页]


副本请求4511LDAPv3 2006年6月注意:Unicode中使用的术语表可以在[词汇表].有关Unicode字符编码模型的信息,请参阅[字符模型].术语“运输连接”是指基础运输用于承载协议交换的服务以及关联由这些服务建立。术语“TLS层”是指传输层安全性(TLS)用于提供安全服务的服务以及关联由这些服务建立。术语“SASL层”是指Simply Authentication and Security用于提供安全服务的层(SASL)服务,以及这些服务建立的协会。术语“LDAP消息层”是指LDAP消息协议用于提供目录服务的数据单元(PDU)服务,如以及这些服务建立的协会。术语“LDAP会话”是指组合服务(传输连接、TLS层、SASL层、LDAP消息层)及其关联。请参阅中的表第5节以说明这四个术语。.协议模型该协议采用的通用模型是客户端之一对服务器执行协议操作。在此模型中客户端发送一个协议请求,描述要执行的操作对服务器执行。然后服务器负责执行目录中的必要操作。完成后操作,服务器通常返回包含以下内容的响应向请求客户端提供适当的数据。协议操作通常彼此独立。每个操作作为原子操作进行处理,将目录保留在一致的状态。尽管服务器需要在任何时候返回响应响应在协议中定义,不要求客户端或服务器的同步行为。多个操作的请求和响应通常可以是在客户端和服务器之间以任何顺序交换。如果需要,同步行为可以由客户端应用程序控制。Sermersheim标准轨道[第4页]


副本请求4511LDAPv3 2006年6月可以映射本文档中定义的核心协议操作到X.500(1993)目录抽象服务的子集[X.511号].但是,LDAP操作之间没有一对一的映射和X.500目录访问协议(DAP)操作。服务器作为X.500目录网关的实现可能需要发出多个DAP请求以服务于单个LDAP请求。3.1.操作和LDAP消息层关系协议操作在LDAP消息层交换。什么时候?传输连接已关闭LDAP消息层被放弃(如果可能)或完成没有发送响应(当放弃它们时可能)。此外,当传输连接关闭时,客户端不得假设任何未完成的更新操作已成功或失败。4.协议要素协议使用抽象语法符号一进行描述([ASN.1号])并使用ASN.1基本编码的子集进行传输规则([误码率]).第5节指定协议元素的方式编码和传输。为了支持此协议的未来扩展,可扩展性根据ASN.1(即序列、集合、,选项和枚举类型是可扩展的)。此外,省略号(…)已在ASN.1类型中提供,这些类型显式地可扩展,如中所述[RFC4520协议].  因为隐含的扩展性,客户端和服务器必须(除非另有规定)忽略其标记无法识别的后续SEQUENCE组件。通过扩展机制以外的其他方式更改协议此处描述的需要不同的版本号。客户指示作为BindRequest一部分使用的版本,中描述的第4.2节。如果客户端尚未发送绑定,则服务器必须假设客户端使用的是版本3或更高版本。客户端可能会尝试确定服务器的协议版本通过从根DSE(DSA-特定条目)[RFC4512协议].4.1.常见元素本节介绍LDAPMessage信封协议数据单元(PDU)格式以及数据类型定义,用于协议操作。Sermersheim标准轨道[第5页]


射频4511LDAPv3 2006年6月


4.1.1.消息信封为了进行协议交换,所有协议操作都是封装在通用信封LDAPMessage中,该信封定义为如下:LDAP消息::=序列{消息ID消息ID,协议操作选择{bindRequest绑定请求,bindResponse绑定响应,unbindRequest取消绑定请求,searchRequest搜索请求,searchResEntry搜索结果条目,searchResDone搜索结果完成,searchResRef搜索结果引用,修改请求修改请求,修改响应修改响应,addRequest添加请求,addResponse添加响应,delRequest delRequest,删除请求,delResponse拒绝响应,modDNRequest修改DNRequest,modDN响应修改DN响应,比较请求比较请求,比较响应比较响应,放弃请求放弃请求,扩展请求扩展请求,extendedResp扩展响应,...,中间响应中间响应},控件[0]控件可选}消息ID::=整数(0..maxInt)最大整数::=2147483647--(2^^31-1)--ASN.1类型控件定义于第4.1.11节.LDAPMessage的功能是提供一个包含所有协议交换中需要的公共字段。此时唯一常见的字段是messageID和控件。如果服务器从客户端接收到LDAPMessageLDAPMessage SEQUENCE标记无法识别,messageID无法识别解析后,protocolOp的标记无法识别为请求,或发现数据字段的编码结构或长度为错误,则服务器应返回断开连接通知Sermersheim标准轨道[第6页]


副本请求4511LDAPv3 2006年6月中描述的第4.4.1节,resultCode设置为protocolError,并且必须立即终止LDAP会话,如中所述第5.3节.在客户端或服务器无法解析LDAP PDU的其他情况下,它应该突然终止LDAP会话(第5.3节)其中进一步的沟通(包括提供通知)将是有害的。否则,服务器实现必须返回对请求的适当响应,resultCode设置为协议错误。4.1.1.1.消息ID封装响应的所有LDAPMessage信封都包含相应请求LDAPMessage的messageID值。请求的messageID必须具有不同于的非零值同一LDAP中正在进行的任何其他请求的messageID会话。零值为主动通知保留消息。典型的客户端为每个请求增加一个计数器。客户端不得发送与同一LDAP会话中的较早请求,除非可以确定服务器不再为先前的请求提供服务(例如。,在收到最终响应或后续绑定后完成)。否则,行为是未定义的。为此,请注意,放弃和成功放弃的操作不会发送响应。4.1.2.字符串类型LDAPString是一种便于表示的符号,尽管LDAPString类型的字符串编码为ASN.1 OCTET STRING类型[ISO10646标准]字符集(的超集[Unicode码])已使用,已编码遵循UTF-8[RFC3629号文件]算法。请注意,Unicode字符U+0000到U+007F与ASCII 0到127相同,和具有相同的单八位UTF-8编码。其他Unicode字符采用多八位UTF-8编码。LDAPString::=八位字节字符串--UTF-8编码,-- [ISO10646标准]字符LDAPOID是表示此字符串的允许值是(UTF-8编码)点小数对象标识符的表示。虽然LDAPOID是Sermersheim标准轨道[第7页]


副本请求4511LDAPv3 2006年6月编码为八位字节字符串,值仅限于<numericoid>中给出[RFC4512]第1.4节.LDAPOID::=八位字符串--约束为<numericoid>-- [RFC4512协议]例如,1.3.6.1.4.1.1466.1.2.34.1.3.可分辨名称和相对可分辨名称LDAPDN定义为可分辨名称的表示(DN)根据中的规范编码后[RFC4514协议].LDAPDN::=LDAPString--约束到<distinguishedName>[RFC4514协议]RelativeLDAPDN定义为Relative的表示根据中的规范[射频c4514].RelativeLDAPDN::=LDAP字符串--约束到<name-component>[RFC4514协议]4.1.4.属性说明属性描述的定义和编码规则如下定义于[RFC4512]第2.5节简单地说,一个属性description是一个属性类型和零个或多个选项。属性描述::=LDA字符串--约束为<attributedescription>-- [RFC4512协议]4.1.5.属性值AttributeValue类型的字段是包含编码的属性值。属性值的编码依据对应语法的LDAP特定编码定义。不同语法和属性类型可以在其他文档中找到,特别是[RFC4517协议].属性值::=八位字节字符串Sermersheim标准轨道[第8页]


副本请求4511LDAPv3 2006年6月请注意,此编码的大小没有定义限制;因此,协议值可以包括多兆字节的属性值(例如照片)。可以定义具有任意和不可打印的属性值语法。实现不得显示或尝试解码属性值(如果其语法未知)。实施可以尝试发现源条目的子模式并检索它对“attributeTypes”的描述[射频4 512].客户端只能在请求中发送有效的属性值根据为属性定义的语法。4.1.6.属性值断言AttributeValueAssertion(AVA)类型定义与X.500目录标准中的一个。它包含一个属性描述和匹配规则([RFC4512],第4.1.3节)断言适合该类型的值。这种类型的元素通常是用于断言assertionValue中的值与属性。AttributeValueAssertion::=序列{属性Desc属性描述,断言值断言值}断言值::=八位字节字符串AssertionValue的语法取决于LDAP的上下文正在执行的操作。例如,EQUALITY的语法执行比较时使用属性的匹配规则操作。通常,这与属性类型,但在某些情况下,断言语法与值语法。请参阅中的objectIdentiferFirstComponentMatch[RFC4517协议]例如。4.1.7条.Attribute和PartialAttribute属性和部分属性由属性描述组成和属性值。PartialAttribute允许零值,而属性需要至少一个值。部分属性::=序列{类型AttributeDescription,值集合AttributeValue}Sermersheim标准轨道[第9页]


副本请求4511LDAPv3 2006年6月属性::=PartialAttribute(WITH COMPONMENTS{...,值(尺寸(1..最大))})没有两个属性值可以像下面描述的那样等效[RFC4512]第2.2节。属性值集是无序的。实现不得依赖可重复的顺序。4.1.8.匹配规则标识符匹配规则定义于[RFC4512]第4.1.3节.A匹配规则在协议中由它的<numericoid>或它的一个短名称描述符[RFC4512协议]例如,“caseIgnoreMatch”或“2.5.13.2”。匹配规则Id::=LDA字符串4.1.9.结果消息LDAPResult是此协议中用于返回从服务器到客户端的成功或失败指示。到各种请求,服务器将返回包含找到的元素的响应在LDAPResult中指示协议操作的最终状态请求。LDAPResult::=序列{枚举的结果代码{成功(0),操作错误(1),协议错误(2),超过时间限制(3),超出大小限制(4),比较假(5),比较真值(6),authMethod不受支持(7),strongerAuthRequired(8),--9保留--推荐(10),adminLimitExceeded(11),不可用临界扩展(12),要求的保密性(13),saslBindInProgress(14),无成功属性(16),undefinedAttributeType(17),不适当匹配(18),约束违反(19),属性或值存在(20),invalidAttributeSyntax(21),Sermersheim标准轨道[第10页]


副本请求4511LDAPv3 2006年6月--22-31未使用--无成功对象(32),别名问题(33),invalidDN语法(34),--35保留给未定义的isLeaf--别名取消引用问题(36),--37-47未使用--不当身份验证(48),无效凭据(49),访问权限不足(50),忙(51),不可用(52),不愿意执行(53),循环检测(54),--55-63未使用--命名违规(64),objectClassViolation(65),非叶上不允许(66),RDN上不允许(67),条目已存在(68),禁止对象类别模式(69),--70为CLDAP保留--影响多个SA(71),--72-79未使用--其他(80),...  },匹配的DN LDAPDN,诊断消息LDAPString,转介[3]转介可选}resultCode枚举可扩展,如第3.8节[RFC4520]所列结果代码的含义如所示附录A。如果服务器检测到操作的多个错误,只返回一个结果代码。服务器应返回最能指示所遇到错误性质的结果代码。服务器可以返回替换的结果代码以防止未经授权披露。此构造的diagnosticMessage字段可能位于服务器的选项,用于返回包含文本、人类-可读诊断消息(终端控制和页面格式应避免使用字符)。由于此诊断消息不是标准化的实现不得依赖于返回的值。诊断消息通常用以下内容补充resultCode其他信息。如果服务器选择不返回文本诊断,diagnosticMessage字段必须为空。Sermersheim标准轨道[第11页]


副本请求4511LDAPv3 2006年6月对于某些结果代码(通常,但不限于noSuchObject、aliasProblem、invalidDNSyntax和aliasDereferencingProblem),则matchedDN字段被设置(受访问控制)添加到使用的最后一个条目(对象或别名)的名称在查找目标(或基础)对象时。这将被截断提供名称的形式,如果别名在试图找到结果名称的条目。否则,matchedDN字段为空。4.1.10.推荐推荐结果代码指示所联系的服务器无法或将不执行该操作以及该一个或多个其他服务器可能会。原因包括:-请求的目标条目不是本地保存的,而是服务器知道它在其他地方可能存在。-此操作在此服务器上受到限制--可能是由于要修改的条目的只读副本。如果resultCode为设置为referration,并且它与所有其他结果代码都不存在。包含对一台或多台服务器或服务的一个或多个引用可以通过LDAP或其他协议访问。推荐人可以是响应任何操作请求返回(Unbind和放弃,没有回应)。必须至少有一个URI出现在推荐中。在搜索操作期间,在找到baseObject之后正在评估条目,不会返回引用。相反,延续引用,如中所述第4.5.3节,已返回需要联系其他服务器以完成操作。参考::=uri的序列大小(1..MAX)URI::=LDAPString--限制为中允许的字符--URI如果客户希望进行操作,它会联系推荐中找到的支持服务。如果有多个URI显示时,客户端假定任何支持的URI都可以用于进行操作。遵循推荐的客户必须确保他们不会循环服务器之间。他们不得重复联系同一服务器对于具有相同参数的相同请求。一些客户端使用Sermersheim标准轨道[第12页]


副本请求4511LDAPv3 2006年6月计数器,该计数器在每次对操作,并且这些类型的客户端必须至少能够处理十个嵌套的转诊,同时进行操作。实现LDAP并可通过TCP/IP(v4或v6)[RFC793协议][RFC791]根据[RFC4516协议].作为LDAP URL的引用值遵循以下规则:-如果取消引用别名,则LDAP URL的<dn>部分必须为存在,使用新的目标对象名称。-建议存在<dn>部分以避免歧义。-如果存在<dn>部分,则客户端在其下一个部分中使用此名称请求进行操作,如果不存在,则客户端使用与原始请求中相同的名称。-一些服务器(例如,参与分布式索引)可能在搜索引用的URL中提供不同的筛选器操作。-如果LDAP URL的<filter>部分存在,客户端将使用此筛选器在其下一个请求中进行此搜索,如果不存在,则客户端使用与其相同的筛选器搜索。-对于搜索,建议将<scope>部分显示给避免歧义。-如果缺少<scope>部分,则原始搜索的范围为客户端用来进行操作。-新请求的其他方面可能相同或不同来自生成转诊的请求。可能会返回其他类型的URI。的语法和语义这样的URI将留给未来的规范使用。客户端可能会忽略URI他们不支持。出现在字符串表示中的UTF-8编码字符DN、搜索筛选器或其他引用值字段可能不是URI合法(例如空格),必须使用%方法进行转义英寸[RFC3986协议].Sermersheim标准轨道[第13页]


副本请求4511LDAPv3 2006年6月


4.1.11.控制控件提供了一种机制可以扩展现有的LDAP操作。一个或多个控件可能附加到单个LDAP消息。控件只影响它所附加到的消息的语义。客户端发送的控件称为“请求控件”由服务器发送的称为“响应控制”。控制::=控制顺序控制控制::=序列{控制类型LDAPOID,临界布尔默认错误,controlValue八位字节字符串可选}controlType字段是唯一标识控件的对象标识符。这个提供了明确的控件命名。通常,响应控制请求控制共享controlType值请求控制。关键性字段仅在附加到的控件中有意义请求消息(UnbindRequest除外)。对于附加到的控件响应消息和UnbindRequest,关键性字段应该为FALSE,并且必须被接收协议对等方忽略。A类值TRUE表示执行不应用控件语义的操作。具体而言,关键性字段的应用如下:-如果服务器无法识别控件类型,则确定它不适合操作,或者在其他方面不愿意用控制装置执行操作,如果关键性字段为TRUE时,服务器不得执行操作,对于具有响应消息的操作,它必须返回resultCode设置为unavailableCriticalExtension。-如果服务器无法识别控件类型,则确定它不适合操作,或在其他方面不愿意用控制装置执行操作,如果关键性字段为FALSE,则服务器必须忽略该控件。-无论重要性如何,如果控制应用于操作,它被一致和公正地应用于整个操作。Sermersheim标准轨道[第14页]


副本请求4511LDAPv3 2006年6月controlValue可能包含与控制类型。其格式由控件。实现必须准备好处理任意controlValue八位字节字符串的内容,包括零个字节。只有在没有关联的值信息时才不存在具有其类型的控件。当controlValue定义为术语时ASN.1,并且根据第5.1节,它也遵循中的可扩展性规则第4节.服务器列出了它们在中识别的请求控件的controlType根DSE中的“supportedControl”属性(第5.1节[RFC4512]).除非已指定组合。控件的语义如果指定了组合,通常可以在控件中找到最新发布的规范。遇到语义无效、未指定的控件(或未知),消息被认为格式不正确;因此操作失败,protocolError。关键程度为的控制为了得到有效的组合,可以忽略FALSE。此外,除非在规范,序列中控件组合的顺序被忽略。要忽略但不能忽略订单的位置服务器认为消息格式不正确操作失败,protocolError。同样,使用可以忽略FALSE的关键性,以便得出有效的组合。本文档未指定任何控件。控制可能是在其他文件中规定。详细说明控制扩展的文件为每个控制提供:-分配给控件的对象标识符,-关于发送方应为临界域(注意:临界域的语义是控件的规范),-controlValue字段是否存在,如果存在其内容,-控件的语义,以及-可选地,关于控件与其他控件。Sermersheim标准轨道[第15页]


副本请求4511LDAPv3 2006年6月


4.2.绑定操作绑定操作的功能是允许身份验证要在客户端和服务器之间交换的信息。绑定操作应被视为“身份验证”操作。此的操作、身份验证和安全相关语义操作在中给出[RFC4513协议].绑定请求定义如下:绑定请求::=[应用程序0]序列{版本INTEGER(1..127),名称LDAPDN,身份验证AuthenticationChoice}AuthenticationChoice::=选择{简单[0]八位字节字符串,--保留1和2sasl[3]SaslCredentials,...  }SaslCredentials::=序列{机制LDAPString,凭据八位字节字符串可选}BindRequest的字段包括:-版本:表示协议版本的版本号在LDAP消息层使用。本文档描述了版本协议第3条。没有版本协商。客户将此字段设置为所需的版本。如果服务器没有支持指定的版本,它必须使用BindResponse进行响应其中resultCode设置为protocolError。-name:如果不为空客户端希望绑定为。此字段可能采用空值(零长度字符串)用于匿名绑定([RFC4513],第5.1节)或使用SASL时[RFC4422号文件]身份验证([RFC4513],第5.2节).  服务器尝试定位命名对象,则不应执行别名取消引用。-身份验证:身份验证中使用的信息。这种类型是中定义的可扩展[RFC4520]第3.7节。有此功能的服务器不支持客户端提供的选择返回BindResponseresultCode设置为authMethodNotSupported。Sermersheim标准轨道[第16页]


副本请求4511LDAPv3 2006年6月文本密码(由已知的字符序列组成字符集和编码)使用简单AuthenticationChoice应以UTF-8格式传输[RFC3629号文件]编码的[Unicode码].  转移前,客户应准备文本通过应用SASLprep将密码作为“查询”字符串[RFC4013协议]stringprep的配置文件[RFC3454协议]算法。密码由其他数据组成(如随机八位字节)不得改变了的。确定密码是否为文本密码是本地客户事宜。4.2.1.绑定请求的处理在处理BindRequest之前,所有未完成的操作都必须要么完成要么被放弃。服务器可以等待完成或放弃未完成的操作。然后是服务器继续通过单步或多步骤绑定过程。每个步骤都要求服务器返回BindResponse以指示身份验证的状态。发送BindRequest后,客户端不得再发送LDAP PDU直到收到BindResponse。类似地,服务器不应该处理或响应在处理绑定请求。如果客户端在发送请求之前没有绑定,并且收到operationsError,然后它可能会发送BindRequest。如果这也会失败,或者客户端选择不绑定现有的LDAP会话,它可以终止LDAP会话,重新建立它,以及首先发送BindRequest,再次开始。这将有助于与实现其他版本LDAP的服务器进行互操作。客户端可以发送多个绑定请求来更改身份验证和/或安全关联或完成多阶段绑定过程。来自先前绑定的身份验证随后被忽略。对于某些SASL身份验证机制客户端多次调用BindRequest([RFC4513协议],章节
   5.2).  客户端不得在两个绑定请求之间调用操作作为多级绑定的一部分。客户端可以通过发送BindRequest中止SASL绑定协商在SaslCredentials的机制字段中使用不同的值,或除sasl之外的AuthenticationChoice。Sermersheim标准轨道[第17页]


副本请求4511LDAPv3 2006年6月如果客户端发送带有sasl机制字段的BindRequest作为空字符串,服务器必须返回带有resultCode设置为authMethodNotSupported。这将允许客户端如果希望使用同一SASL重试,则中止协商机制。4.2.2.绑定响应绑定响应定义如下。绑定响应::=[应用程序1]序列{LDAPResult的组件,serverSaslCreds[7]八位字节字符串可选}BindResponse只包含来自服务器的指示客户端身份验证请求的状态。绑定操作成功由带有resultCode设置为successful。否则,相应的结果代码为在BindResponse中设置。对于BindResponse,protocolError结果代码可用于指示客户端不受支持。如果客户端收到resultCode设置为的BindResponseprotocolError,假设服务器不支持LDAP版本。虽然客户可以继续使用另一个本协议的版本(可能需要或可能不需要关闭和重新建立传输连接),如何继续此协议的另一个版本超出了此范围文档。无法或不愿继续的客户应该终止LDAP会话。serverSaslCreds字段用作SASL定义的绑定的一部分允许客户端对其访问的服务器进行身份验证的机制正在通信,或执行“challenge-response”身份验证。如果客户端绑定了简单选择或SASL机制不需要服务器向客户端返回信息,那么此字段不应包含在BindResponse中。4.3.解除绑定操作Unbind操作的功能是终止LDAP会话。Unbind操作不是Bind操作的对立面这个名字意味着。这些操作的命名是历史性的。“解除绑定”操作应被视为“退出”操作。Sermersheim标准轨道[第18页]


副本请求4511LDAPv3 2006年6月“取消绑定”操作定义如下:取消绑定请求::=[APPLICATION 2]NULL发送UnbindRequest后,客户端和服务器,收到解除绑定请求后,将优雅地终止LDAP会话,如中所述第5.3节未完成的操作包括按照中的规定进行处理第3.1节.4.4.未经请求的通知主动通知是从服务器发送到的LDAPMessage客户端未响应收到的任何LDAPMessage服务器。它用于表示服务器或在客户端和服务器之间的LDAP会话中。这个通知具有咨询性质,服务器不会期望从客户端返回的任何响应。主动通知的结构为LDAPMessage,其中messageID为零,protocolOp设置为extendedResp使用ExtendedResponse类型选择(请参阅第4.12条).  这个ExtendedResponse的responseName字段始终包含LDAPOID这对于此通知是唯一的。在中定义了一个主动通知(断开连接通知)本文件。未经请求的通知的规范包括:-分配给通知的对象标识符(待指定在responseName中,-responseValue内容的格式(如果有),-导致发送通知的情况,以及-消息的语义。4.4.1.断开连接通知服务器可以使用此通知通知客户端服务器将自行终止LDAP会话主动权。此通知旨在帮助客户区分异常服务器条件和瞬态网络故障。请注意,此通知不是响应客户端请求的解除绑定。未完成按照中的规定处理操作第3.1节.Sermersheim标准轨道[第19页]


副本请求4511LDAPv3 2006年6月responseName是1.3.6.1.4.1.1466.20036,response值字段不存在,resultCode用于指示原因断开连接。返回strongerAuthRequired resultCode时此消息表示服务器检测到在客户端和服务器之间建立的安全关联意外失败或受到损害。在发送断开连接通知后,服务器如中所述,正常终止LDAP会话第5.3节.4.5.搜索操作Search操作用于请求服务器返回subject为了访问控制和其他限制复杂的搜索条件。这可用于从中读取属性单个条目,来自直接从属于特定条目的条目条目,或从整个条目子树。4.5.1.搜索请求搜索请求定义如下:搜索请求::=[应用程序3]序列{基本对象LDAPDN,枚举范围{基本对象(0),单个级别(1),完整子树(2),...  },列举的derefAliases{neverDeref别名(0),取消搜索(1),取消查找基础对象(2),取消总是(3)},sizeLimit整数(0..maxInt),时间限制整数(0..maxInt),类型仅限布尔型,过滤器过滤器,属性AttributeSelection}AttributeSelection::=选择器LDAPString的序列--LDA字符串被约束为--中的<attributeSelector>第4.5.1.8节过滤器::=CHOICE{和[0]设置过滤器的尺寸(1..MAX),或[1]设置过滤器尺寸(1..MAX),不是[2]过滤器,Sermersheim标准轨道[第20页]


副本请求4511LDAPv3 2006年6月equalityMatch[3]属性值断言,substrings[4]子字符串过滤器,greaterOrEqual[5]属性值断言,lessOrEqual[6]属性值断言,显示[7]AttributeDescription,approxMatch[8]属性值断言,extensibleMatch[9]匹配规则评估,...  }子字符串过滤器::=序列{类型AttributeDescription,子字符串选择的子字符串序列大小(1..MAX){初始[0]断言值,--最多可以出现一次任何[1]断言值,final[2]断言值}--最多只能出现一次}匹配规则评估::=序列{matchingRule[1]匹配规则ID可选,type[2]属性描述可选,matchValue[3]断言值,dnAttributes[4]布尔默认值为假}注意,类X.500“列表”操作可以由客户端请求使用筛选器执行单级搜索操作检查是否存在“objectClass”属性,并且baseObject Search可以模拟X.500类“读取”操作使用相同的过滤器进行操作。提供网关的服务器X.500不需要使用Read或List操作,尽管它可以选择这样做,如果选择,则必须提供相同的语义与X.500 Search操作相同。4.5.1.1.SearchRequest.base对象相对于的基本对象条目(或可能是根)的名称要执行搜索的位置。4.5.1.2.搜索请求.scope指定要执行的搜索范围。语义(作为中描述的[X.511号])该字段的定义值为:baseObject:范围被约束为baseObject。singleLevel:范围被约束为立即数由baseObject命名的条目的下级。Sermersheim标准轨道[第21页]


副本请求4511LDAPv3 2006年6月wholeSubtree:范围被约束为baseObject及其所有下属。4.5.1.3.SearchRequest.deref别名指示别名条目是否(如[RFC4512协议])将在搜索阶段取消引用操作。取消引用别名的行为包括递归取消引用引用别名的别名。服务器必须在取消引用别名时检测循环,以便防止这种性质的拒绝服务攻击。该字段定义值的语义为:neverDerefAliases:在搜索或查找搜索的基本对象。derefInSearching:在搜索基本对象的下级对象时,取消引用搜索范围内的任何别名。已取消引用对象成为进一步搜索范围的顶点,其中还应用了搜索操作。如果搜索范围为wholeSubtree,则在任何取消引用的对象。如果搜索范围是singleLevel,则搜索应用于任何取消引用的对象,但不应用他们的下属。服务器应消除重复条目这是由于在搜索时取消别名引用而产生的。derefFindingBaseObj:查找基时取消引用别名搜索的对象,但在搜索的下属时不搜索基本对象。derefAlways:在搜索和定位中取消引用别名搜索的基本对象。4.5.1.4.SearchRequest.sizeLimit(搜索请求大小限制)限制最大条目数的大小限制作为搜索结果返回。此字段中的值为零指示中没有客户端请求的大小限制搜索的效果。服务器还可以强制执行要返回的条目。Sermersheim标准轨道[第22页]


副本请求4511LDAPv3 2006年6月


4.5.1.5.SearchRequest.timeLimit(搜索请求时间限制)限制允许的最大时间(秒)的时间限制a搜索。此字段中的值为零表示没有客户端-请求的时间限制对搜索有效。服务器还可能强制执行搜索的最大时间限制。4.5.1.6.SearchRequest.types仅限指示搜索结果是否同时包含属性描述和值,或仅属性描述。将此字段设置为TRUE只会导致属性描述(和不是值)。将此字段设置为FALSE会导致要返回的属性描述和值。4.5.1.7.SearchRequest.filter(搜索请求过滤器)定义必须按顺序满足的条件的筛选器搜索以匹配给定条目。“and”、“or”和“not”选项可用于形成组合个筛选器。“和”中必须至少有一个滤芯或“或”选项。其他属性值与单个属性值匹配搜索范围内的条目数。(实施者备注:“not”筛选器是隐式标记的模块。在BER中,这被视为标签是显式的。)服务器必须根据[X.511号](1993),第7.8.1条。总之,过滤器的计算结果为“TRUE”、“FALSE”或“未定义”。如果筛选器的评估结果为TRUE特定条目,则该条目的属性返回为搜索结果的一部分(受任何适用的访问控制限制)。如果过滤器的计算结果为FALSE或Undefined,则搜索时忽略该条目。如果SET of中的所有过滤器如果至少有一个过滤器为FALSE,则计算为TRUE或FALSE未另行定义。如果所有如果至少有一个过滤器,则SET OF中的过滤器的计算结果为FALSE,TRUE为TRUE,否则未定义。“not”选项的筛选器是如果被求反的过滤器为FALSE,则为TRUE如果未定义,则为未定义。当服务器不为能够确定断言值是否与条目匹配。示例包括:Sermersheim标准轨道[第23页]


副本请求4511LDAPv3 2006年6月-equalityMatch、子字符串、,greaterOrEqual、lessOrEquall、approxMatch或extensibleMatch筛选器服务器无法识别。-属性类型未定义适当的匹配规则。-extensibleMatch中的MatchingRuleId未被服务器或对于属性类型无效。-未实现请求的筛选类型。-断言值无效。例如,如果服务器无法识别属性类型shoeSize,过滤器(shoeSize=*),(shoeSize=12),(shoeSize>=12),和(shoeSize<=12)将分别计算为Undefined。如果属性描述或匹配无法识别规则ID,断言值无效,或不支持断言语法。过滤器处理的更多详细信息在第7.8条中给出[约511].4.5.1.7.1.SearchRequest.filter.equalityMatch(搜索请求过滤器质量匹配)equalityMatch筛选器的匹配规则由属性类型或子类型的EQUALITY匹配规则。过滤器当EQUALITY规则返回应用于属性或子类型以及断言的值。4.5.1.7.2.SearchRequest.filter.substring(搜索请求过滤子字符串)SubstringFilter的“substrings”。如果出现“initial”,则应是substrings的第一个元素。如果存在“final”应为“子字符串”的最后一个元素。子字符串筛选项中AssertionValue的匹配规则由属性类型的SUBSTR匹配规则定义,或子类型。当SUBSTR规则返回TRUE作为应用于属性或子类型以及断言值。请注意,子字符串筛选项中的AssertionValue符合属性的EQUALITY匹配规则的断言语法类型而不是SUBSTR匹配规则的断言语法属性类型。从概念上讲,整个SubstringFilter是转换为子字符串匹配规则的断言值在应用规则之前。Sermersheim标准轨道[第24页]


副本请求4511LDAPv3 2006年6月


4.5.1.7.3.SearchRequest.filter.greater或EqualgreaterOrEqual筛选器的匹配规则由属性类型或子类型的ORDERING匹配规则。过滤器当ORDERING规则在应用于属性或子类型以及断言的值。4.5.1.7.4.搜索请求.过滤器.lessOrEquallessOrEqual筛选器的匹配规则由属性类型或的ORDERING和EQUALITY匹配规则子类型。当ORDERING或EQUALITY规则返回应用于属性或子类型的TRUE断言值。4.5.1.7.5.SearchRequest.filter.present(搜索请求过滤器)当存在的属性或子类型时,当前筛选器为TRUE条目中存在指定的属性描述,如果没有,则为FALSE指定属性描述的属性或子类型为存在于条目中,否则未定义。4.5.1.7.6.SearchRequest.filter.approxMatch当存在属性值时,approxMatch过滤器为TRUE某些本地定义的近似匹配的类型或子类型算法(例如拼写变化、语音匹配等)返回真的。如果值与相等匹配,则它还满足近似匹配。如果不支持近似匹配属性时,此筛选项应视为equalityMatch。4.5.1.7.7.SearchRequest.filter.extensibleMatch(搜索请求过滤器扩展匹配)extensibleMatch筛选器项的字段计算为跟随:-如果缺少matchingRule字段,则类型字段必须为并对该类型执行相等匹配。-如果类型字段不存在,而matchingRule存在,则matchValue与条目中的所有属性进行比较支持matchingRule。-如果存在type字段并且存在matchingRule,则matchValue与指定的属性类型及其子类型。Sermersheim标准轨道[第25页]


副本请求4511LDAPv3 2006年6月-如果dnAttributes字段设置为TRUE,则另外匹配应用于条目的所有AttributeValueAssertions可分辨名称,如果至少有可分辨名称中的一个属性或子类型筛选项的计算结果为TRUE。dnAttributes字段存在减轻对多版本泛型匹配的需要规则(例如单词匹配),其中一个适用于条目和另一个应用于条目和DN属性。用于计算的matchingRule确定断言值。matchingRule和属性确定时,如果筛选项至少匹配,则其计算结果为TRUE条目中有一个属性类型或子类型,如果没有,则为FALSE匹配条目中的任何属性类型或子类型,如果为Undefined无法识别matchingRule,matchingRole不合适用于指定类型,或断言值无效。4.5.1.8.SearchRequest.attributes(搜索请求属性)从每个条目返回的属性的选择列表匹配搜索筛选器的。属于的子类型的属性列出的属性被隐式包含。LDA此的字符串值字段被约束为以下增强的Backus-Naur形式(ABNF)[RFC4234号文件]:attributeSelector=属性描述/选择器专用selectorspecial=noattrs/alluserattrs无属性=%x31.2E.31;“1.1”诱惑物=%x2A;星号(“*”)<attributedescription>生产定义于第2.5节[RFC4512].属性中可能会出现三种特殊情况选择列表:1.没有属性的空列表请求返回所有用户属性。2.包含“*”(零个或多个属性)的列表descriptions)请求返回中的所有用户属性除了其他列出的(可操作的)属性之外。Sermersheim标准轨道[第26页]


副本请求4511LDAPv3 2006年6月3.仅包含OID“1.1”的列表表示没有属性将被返回。如果“1.1”与其他属性选择器值,“1.1”属性选择器为忽略。选择此OID是因为它没有(也不能)对应于正在使用的任何属性。客户机实现者应该注意,即使所有用户属性都是请求时,条目的某些属性和/或属性值可能由于访问控制或其他原因,不包含在搜索结果中限制。此外,服务器将无法恢复运行属性,例如objectClasses或attributeType,除非它们是按名称列出。操作属性如所述[RFC4512协议].在一个条目中,属性最多返回一次。如果属性描述在列表中被多次命名,随后的名称被忽略。如果列表中的属性描述不是服务器将忽略它。4.5.2.搜索结果搜索操作的结果返回为零或更多SearchResultEntry和/或SearchResaultReference消息,后跟单个SearchResultDone消息。SearchResultEntry::=[应用程序4]序列{对象名称LDAPDN,属性PartialAttributeList}PartialAttributeList::=序列partialAttribute部分属性SearchResultReference::=[APPLICATION 19]序列uri的大小(1..最大值)SearchResultDone::=[APPLICATION 5]LDAPResult每个SearchResultEntry表示在搜索过程中找到的一个条目。每个SearchResultReference表示在搜索。SearchResultEntry和SearchResaultReference消息可以按任何顺序来。遵循所有SearchResultReference和SearchResultEntry响应时,服务器返回SearchResaultDone响应,其中包含成功的指示或任何详细信息发生的错误。SearchResultEntry中返回的每个条目将包含所有属性字段中指定的适当属性搜索请求,受访问控制和其他管理政策。请注意,PartialAttributeList可能包含零个元素。Sermersheim标准轨道[第27页]


副本请求4511LDAPv3 2006年6月当条目的属性都不是请求或可以返回。还要注意partialAttributevals集合可以包含零个元素。当typesOnly为请求,访问控制阻止返回值,或其他原因。某些属性可能由服务器构造并显示在SearchResultEntry属性列表,尽管它们没有存储条目的属性。客户不应认为可以修改属性,即使访问允许这样做控制。如果服务器的架构定义了短名称[RFC4512协议]属性的类型,则服务器应在属性中使用这些名称之一该属性类型的描述(优先于使用<数字标识>[RFC4512协议]属性类型对象的格式标识符)。服务器不应使用短名称被服务器知道是不明确的,或者在其他情况下很可能导致互操作性问题。4.5.3.搜索结果中的继续引用如果服务器能够找到baseObject,但无法或不愿意搜索一个或多个非-本地条目,服务器可以返回一个或多个SearchResultReference消息,每个消息都包含对用于继续操作的另一组服务器。服务器必须如果未找到,则不返回任何SearchResultReference消息baseObject,因此未搜索任何条目。在这种情况下,它将返回包含引用或noSuchObject结果代码(取决于服务器对在baseObject中命名的条目)。如果服务器持有下级命名的副本或部分副本上下文([RFC4512]第5节),它可以使用搜索筛选器来确定是否返回SearchResultReference响应。否则,当范围内。SearchResultReference与Referral的数据类型相同。如果客户希望进行搜索,则会发布新的搜索返回的每个SearchResultReference的操作。如果存在多个URI,客户端假定任何支持的URI可用于进行操作。Sermersheim标准轨道[第28页]


射频4511LDAPv3 2006年6月遵循搜索继续引用的客户必须确保它们不会在服务器之间循环。他们不得重复接触相同的服务器使用相同的参数处理相同的请求。有些客户端使用的计数器在每次搜索结果时递增对操作进行引用处理,这些类型的客户必须能够在正在进行操作。请注意,中描述的放弃操作第4.11节应用仅限于在LDAP消息层发送的特定操作客户端和服务器。客户必须单独放弃后续它希望执行的搜索操作。实现LDAP并可通过TCP/IP访问的服务器的URI(v4或v6)[RFC793协议][RFC791]根据[RFC4516协议].作为LDAP URL的SearchResultReference值遵循以下规则:-LDAP URL的<dn>部分必须与新目标一起存在对象名称。客户端在遵循参考。-一些服务器(例如,参与分布式索引)可能在LDAP URL中提供不同的筛选器。-如果LDAP URL的<filter>部分存在,客户端将使用此筛选器在其下一个请求中进行此搜索,如果不存在,则客户端使用与其相同的筛选器搜索。-如果原始搜索范围是singleLevel,则<scope>部分LDAP URL的“基本”。-建议存在<scope>部件,以避免模糊性。如果没有<scope>部分假定为原始搜索请求。-新搜索请求的其他方面可能与或相同与生成搜索结果参考。-SearchResultReference中未搜索子树的名称需要不从属于基础对象。可能会返回其他类型的URI。的语法和语义这样的URI将留给未来的规范使用。客户端可能会忽略URI他们不支持。Sermersheim标准轨道[第29页]


副本请求4511LDAPv3 2006年6月出现在的字符串表示中的UTF-8编码字符DN、搜索筛选器或引用值的其他字段可能不是URI合法(例如空格),必须使用%方法进行转义英寸[RFC3986协议].4.5.3.1.示例例如,假设联系的服务器(hosta)持有条目<DC=Example,DC=NET>和条目<CN=Manager,DC=Ex例如,DC=NET>。知道LDAP服务器(hostb)和(hostc)都支持<OU=People,DC=Example,DC=NET>(一个是主服务器,另一个是服务器阴影),并且LDAP-capable服务器(hostd)保存子树<OU=角色,DC=示例,DC=NET>。如果整个子树搜索<DC=例如,DC=NET>被请求到联系的服务器,它可能返回以下内容:SearchResultEntry for DC=示例,DC=NETCN=Manager、DC=Example、DC=NET的SearchResultEntry搜索结果引用{ldap://hostb/OU=人员,DC=示例,DC=NET??附属的ldap://hostc/OU=人员,DC=示例,DC=NET??子}搜索结果引用{ldap://hostd/OU=角色,DC=示例,DC=NET??子}SearchResultDone(成功)客户机实现者应注意,在遵循SearchResultReference,其他SearchResaultReference可能是生成。继续示例,如果客户联系服务器(hostb)并发出子树的搜索请求<OU=People,DC=Example,DC=NET>,服务器可能会做出如下响应:OU=People、DC=Example、DC=NET的SearchResultEntry搜索结果引用{ldap://hoste/OU=经理,OU=人员,DC=示例,DC=NET??子}搜索结果参考{ldap://hostf/OU=顾问,OU=人员,DC=示例,DC=NET??子}SearchResultDone(成功)类似地,如果<DC=Example,DC=NET>的单层搜索是请求联系的服务器时,它可能会返回以下信息:CN=Manager、DC=Example、DC=NET的SearchResultEntry搜索结果引用{ldap://hostb/OU=人员,DC=示例,DC=NET??基础ldap://hostc/OU=人员,DC=示例,DC=NET??基础}搜索结果引用{ldap://hostd/OU=角色,DC=示例,DC=NET??基础}SearchResultDone(成功)Sermersheim标准轨道[第30页]


副本请求4511LDAPv3 2006年6月如果联系的服务器没有保存搜索的基本对象,但知道其可能的位置,则可能会返回一个转介给客户。在这种情况下,如果客户端请求<DC=Example,DC=ORG>的子树搜索到hosta,服务器返回包含引用的SearchResultDone。SearchResultDone(推荐){ldap://hostg/DC=示例,DC=ORG??子}4.6.修改操作Modify操作允许客户端请求修改服务器代表条目执行。修改请求定义如下:修改请求::=[应用程序6]序列{对象LDAPDN,更改顺序的更改顺序{操作枚举{添加(0),删除(1),更换(2),...  },修改PartialAttribute}}修改请求的字段包括:-object:此字段的值包含修改。服务器不应执行任何别名取消引用确定要修改的对象。-更改:对条目执行的修改列表。这个必须按照修改的顺序执行整个修改列表列为单个原子操作。当个人修改可能会违反目录模式的某些方面(例如对象类定义和目录信息树(DIT)内容规则),在整个进行的修改必须符合目录模型与控制模式[RFC4512协议].-operation:用于指定修改类型已执行。每种操作类型作用于以下内容修改。此字段的值如下语义,分别是:添加:将列出的值添加到修改属性,如果需要,创建属性。Sermersheim标准轨道[第31页]


副本请求4511LDAPv3 2006年6月删除:删除修改属性中列出的值。如果未列出任何值,或如果属性,则删除整个属性。replace:替换修改的所有现有值具有列出的新值的属性,创建该属性如果它还不存在。没有值的替换将删除整个属性(如果存在),并忽略它如果属性不存在。-修改:PartialAttribute(可以有空的SET用于保存属性类型或属性类型,以及正在修改的值。收到修改请求后,服务器尝试执行对DIT进行必要的修改,并在Modify中返回结果响应,定义如下:修改响应::=[APPLICATION 7]LDAPResult服务器将向客户端返回单个修改响应表明DIT修改成功完成,或修改失败的原因。根据要求在修改中应用修改列表的原子性请求时,客户可能期望DIT没有任何修改如果收到的修改响应指示任何类型的错误,并且如果修改响应表示修改成功完成操作。不能确定是否应用了修改如果未收到修改响应,则由客户端确定(例如,LDAP会话被终止或Modify操作被废弃)。服务器必须确保条目符合用户和系统架构规则或其他数据模型约束。修改操作无法用于从条目中删除其任何可分辨值,即,构成条目相对区分的那些值名称。尝试执行此操作将导致服务器返回notAllowedOnRDN结果代码。中描述的修改DN操作第4.9条用于重命名条目。对于未指定相等匹配的属性类型[RFC4512]第2.5.1节遵循。注意,由于LDAP中进行了简化,因此没有将LDAP ModifyRequest中的更改直接映射到DAP ModifyEntry操作的更改和不同的实现Sermersheim标准轨道[第32页]


副本请求4511LDAPv3 2006年6月LDAP-DAP网关可以使用不同的方式来表示更改。如果成功,操作对条目必须相同。4.7.添加操作Add操作允许客户端请求添加条目到目录中。添加请求的定义如下:添加请求::=[应用程序8]序列{条目LDAPDN,属性AttributeList}AttributeList::=属性属性序列添加请求的字段包括:-entry:要添加的条目的名称。服务器不应在查找要添加的条目时取消引用任何别名。-属性:属性列表,以及RDN,组成要添加的条目的内容。客户可以或此列表中可能不包括RDN属性。客户必须不提供NO-USER-MODIFICATION属性,例如createTimestamp或creatorsName属性,因为服务器自动维护这些。服务器必须确保条目符合用户和系统架构规则或其他数据模型约束。对于属性类型指定不相等匹配,规则在[RFC4512]第2.5.1节(这适用于除任何正在添加的多值属性)。AddRequest的条目字段中命名的条目不得存在AddRequest才能成功。直接上级(家长)要添加的对象或别名条目必须存在。例如,如果客户端尝试添加<CN=JS,DC=Example,DC=NET><DC=例如,DC=NET>条目不存在,而<DC=NET>条目存在则服务器将返回noSuchObject结果代码包含<DC=NET>的matchedDN字段。收到添加请求后,服务器将尝试添加请求的条目。添加尝试的结果将返回到添加响应中的客户端,定义如下:添加响应::=[APPLICATION 9]LDAPResultSermersheim标准轨道[第33页]


副本请求4511LDAPv3 2006年6月成功响应表示新条目已添加到目录。4.8.删除操作Delete操作允许客户端请求删除目录中的条目。删除请求的定义如下:删除请求::=[APPLICATION 10]LDAPDN删除请求由要删除的条目的名称组成。服务器在解析要删除的目标条目。只能删除叶条目(没有从属条目的条目)使用此操作。收到删除请求后,服务器将尝试执行请求删除条目并在Delete中返回结果响应定义如下:DelResponse::=[应用程序11]LDAPResult4.9.修改DN操作Modify DN操作允许客户端更改Relative目录中条目的可分辨名称(RDN)和/或要移动的条目目录中新位置的条目子树。修改DN请求定义如下:ModifyDNRequest::=[应用程序12]序列{条目LDAPDN,newrdn相对LDAPDN,deleteoldrdn布尔安,newSuperior[0]LDAPDN可选}修改DN请求的字段包括:-entry:要更改的条目的名称。此条目可能或可能没有下级条目。-newrdn:条目的新RDN。旧RDN的值为将条目移动到新上级而不更改时提供其RDN。新RDN的属性值不匹配任何条目的属性值被添加到条目中,并且如果失败,将返回相应的错误。Sermersheim标准轨道[第34页]


副本请求4511LDAPv3 2006年6月-deleteoldrdn:一个布尔字段,用于控制旧RDN属性值将保留为条目的属性或从条目中删除。-newSuperior:如果存在,这是现有对象的名称成为直接上级(父级)的条目现有条目。服务器在定位对象时不应取消引用任何别名在entry或newSuperior中命名。收到ModifyDNRequest后,服务器将尝试执行名称更改并在修改DN响应中返回结果,定义如下:修改DNResponse::=[APPLICATION 13]LDAPResult例如,如果条目字段中命名的条目是<cn=John史密斯,c=US>,新的rdn字段是<cn=John Cougar Smith>newSuperior字段不存在,则此操作将尝试将该条目重命名为<cn=John Cougar Smith,c=US>。如果有已经是具有该名称的条目,操作将失败,并返回entryAlreadyExists结果代码。服务器必须确保条目符合用户和系统架构规则或其他数据模型约束。对于属性类型指定不相等匹配,规则在[RFC4512]第2.5.1节遵循(这与newrdn和deleteoldrdn有关)。newSuperior中指定的对象必须存在。例如,如果客户端尝试添加<CN=JS,DC=Example,DC=NET><DC=例如,DC=NET>条目不存在,而<DC=NET>条目存在则服务器将返回noSuchObject结果代码包含<DC=NET>的matchedDN字段。如果deleteoldrdn字段为TRUE,则构成从条目中删除旧RDN(而不是新RDN)。如果deleteoldrdn字段为FALSE,构成旧RDN的属性值将作为条目的非区分属性值保留。请注意,X.500限制ModifyDN操作仅影响包含在单个服务器中的条目。如果LDAP服务器映射到DAP,则应用此限制,并且如果出现此错误,将返回affectsMultipleDSA结果代码发生。一般来说,客户不得期望能够执行在服务器之间任意移动条目和子树,或在命名上下文之间。Sermersheim标准轨道[第35页]


副本请求4511LDAPv3 2006年6月


4.10.比较操作Compare操作允许客户端比较断言值中特定条目中特定属性的值目录。比较请求定义如下:比较请求::=[APPLICATION 14]序列{条目LDAPDN,ava属性值断言}比较请求的字段包括:-entry:要比较的条目的名称。服务器不应在定位要比较的条目时取消引用任何别名。-ava:保存要比较的属性值断言。收到比较请求后,服务器将尝试执行请求的比较并在比较中返回结果响应,定义如下:比较响应::=[APPLICATION 15]LDAPResultresultCode设置为compareTrue、compareFalse或适当的错误。compareTrue表示ava中的断言值字段根据属性的EQUALITY匹配规则。compareFalse表示ava字段中的断言值和属性或子类型不匹配。其他结果代码表明比较结果未定义(第4.5.1.7节)或其他发生了一些错误。请注意,某些目录系统可能会建立访问控制允许某些属性(如userPassword)的值为通过其他方式进行比较但不进行审问。4.11.放弃操作Abandon操作的功能是允许客户端请求服务器放弃未完成的操作。遗弃请求定义如下:放弃请求::=[APPLICATION 16]消息IDMessageID是早些时候在请求的操作的MessageID此LDAP消息层。放弃请求本身有自己的消息ID。这与早期的消息ID不同正在放弃操作。Sermersheim标准轨道[第36页]


副本请求4511LDAPv3 2006年6月“放弃”操作中没有定义响应。收到后对于放弃请求,服务器可能会放弃已识别的操作通过MessageID。因为客户无法区分在成功放弃操作和未完成操作之间操作,放弃操作的应用仅限于在客户不需要指示结果的情况下使用。不能放弃放弃、绑定、取消绑定和StartTLS操作。如果服务器在搜索时收到放弃请求在向搜索发送响应的过程中进行操作服务器必须停止向被放弃的立即请求,并且不得发送SearchResultDone。当然,服务器必须确保只有正确编码的LDAPMessage传输PDU。放弃其他(特别是更新)操作的能力是服务器的自由裁量权。客户端不应为同一操作发送放弃请求多次,他们也必须做好接受结果的准备从他们放弃的行动中请求放弃或可能无法放弃时的过境废弃)。服务器必须放弃对其没有的messageID的放弃请求对于不能放弃的操作,以及对于已经放弃的行动。4.12.扩展操作扩展操作允许为定义附加操作协议中尚未提供的服务;例如,添加安装传输层安全性的操作(请参阅第4.14条).Extended操作允许客户端发出请求并接收带有预定义语法和语义的响应。这些可能是在RFC中定义或对特定实现私有。每个扩展操作包括一个扩展请求和一个扩展响应。扩展请求::=[应用程序23]序列{requestName[0]LDAPOID,requestValue[1]八位字节字符串可选}Sermersheim标准轨道[第37页]


射频4511LDAPv3 2006年6月requestName是唯一与请求对应的对象标识符。requestValue为以该请求定义的形式提供的信息,封装在八位字节字符串。服务器将使用包含扩展响应。扩展响应::=[APPLICATION 24]序列{LDAPResult的组件,responseName[10]LDAPOID可选,responseValue[11]八位字节字符串可选}responseName字段(如果存在)包含一个LDAPOID,它是对于此扩展操作或响应是唯一的。此字段是可选(即使扩展规范定义了LDAPOID用于此字段)。每当服务器无法或不愿确定合适的LDAPOID例如,当无法解析requestName或其无法识别值。如果无法识别requestName,服务器将返回协议错误。(在其他情况下,服务器可能会返回protocolError。)requestValue和responseValue字段包含信息与操作关联。这些字段的格式已定义根据扩展操作规范。实施必须准备处理这些字段的任意内容,包括零字节。根据ASN.1和BER定义的值-编码依据第5.1节还要遵循可扩展性规则在里面第4节.服务器列出了它们在中识别的扩展请求的requestName根DSE中的“supportedExtension”属性(第5.1节,共5.1节[参考编号:RFC4512]).其他文件中可能会规定扩展操作。这个扩展操作规范包括:-分配给requestName的对象标识符,-分配给responseName的对象标识符(如果有)(注相同的对象标识符可用于请求名称和响应名称),Sermersheim标准轨道[第38页]


副本请求4511LDAPv3 2006年6月-requestValue和responseValue内容的格式(如有),以及-操作的语义。4.13.中间响应消息虽然Search操作提供了一种返回多个响应单个搜索请求和其他操作的消息性质,不提供多个响应消息。IntermediateResponse消息为在LDAP中定义单请求/多响应操作。这个消息旨在与扩展定义新的单请求/多响应操作的操作或在扩展现有LDAP时与控件结合使用操作的方式要求他们返回Intermediate响应信息。扩展的定义和描述利用中间响应的操作和控制消息将定义中介响应时的情况消息可以由服务器发送在特定情况下发送的中间响应消息。中间响应::=[APPLICATION 25]序列{responseName[0]LDAPOID可选,responseValue[1]八位字节字符串可选}不得将中间响应消息返回给客户除非客户发出请求,特别要求他们返回。本文件定义了两种招标形式:延期操作和请求控制。中间响应消息为在描述其使用方式的文件中指定请求(即在扩展操作或请求控制中使用它们的规范)。这些规范包括:-分配给responseName的对象标识符(如果有),-responseValue内容的格式(如果有),以及-与IntermediateResponse消息关联的语义。允许返回多种类型中间响应消息应使用唯一的responseName值(请注意,其中一个可能没有指定值)。Sermersheim标准轨道[第39页]


副本请求4511LDAPv3 2006年6月小节4.13.14.13.2描述有关在IntermediateResponse中包含responseName和response Value信息。4.13.1。与LDAP ExtendedRequest和ExtendedResponse一起使用可以使用单个ExtendedRequest消息请求零个或多个一种或多种中间响应消息,后跟ExtendedResponse消息。4.13.2。与LDAP请求控件一起使用控件的语义可能包括返回零或更多返回最终结果之前的中间响应消息操作的代码。一种或多种中间响应可以发送消息以响应请求控制。与请求控制关联的所有IntermediateResponse消息应包括响应名称。这一要求确保了客户可以正确识别IntermediateResponse的来源消息,当:-使用IntermediateResponse消息的两个或多个控件是包含在任何LDAP操作的请求中,或-使用IntermediateResponse消息的一个或多个控件是包含在具有LDAP扩展操作的请求中,该操作使用中间响应消息。4.14.StartTLS操作启动传输层安全性(StartTLS)操作的目的是启动TLS层的安装。StartTLS操作是使用中描述的扩展操作机制定义章节
   4.12.4.14.1.StartTLS请求客户端通过传输StartTLS请求建立TLS向服务器发送请求消息。StartTLS请求在中定义ExtendedRequest的条款。requestName是“1.3.6.1.4.1.1466.20037”,requestValue字段始终为不存在。Sermersheim标准轨道[第40页]


副本请求4511LDAPv3 2006年6月客户端不得在此LDAP消息层发送任何LDAP PDU遵循此请求,直到收到StartTLS Extended响应如果响应成功,则完成TLS谈判。检测到的排序问题(尤其是章节
   [RFC4513]第3.1.1节)结果resultCode被设置为操作错误。如果服务器不支持TLS(无论是设计还是当前配置),返回resultCode并将其设置为protocolError如中所述第4.12条.4.14.2.StartTLS响应当收到StartTLS请求时,支持该操作的服务器必须向请求者返回StartTLS响应消息。这个提供时,responseName为“1.3.6.1.4.1.1466.20037”(参见章节
   4.12).  responseValue始终不存在。如果服务器愿意并且能够协商TLS,则返回resultCode设置为成功的StartTLS响应。在客户端上收到成功的StartTLS响应后,协议对等方可以开始TLS谈判,如中所述[RFC4513]的第3节.如果服务器不愿意或无法执行此操作操作,服务器将返回适当的结果代码表明问题的性质。例如,如果TLS子系统当前不可用,服务器可以通过以下方式指示返回时resultCode设置为不可用。在以下情况下返回非成功结果代码,LDAP会话没有TLS层。4.14.3.删除TLS层客户端或服务器可以删除TLS层并保留通过发送和接收TLS闭包,LDAP消息层完好无损警觉的。发起协议对等方发送TLS关闭警报并必须等待,直到它收到来自其他对等方的TLS关闭警报发送更多LDAP PDU。当协议对等方收到初始TLS关闭警报时,它可能会选择允许LDAP消息层保持不变。在这个在这种情况下,它必须立即发送TLS关闭警报。以下这样,它可以发送和接收LDAP PDU。Sermersheim标准轨道[第41页]


副本请求4511LDAPv3 2006年6月协议对等方可以在发送或接收TLS关闭警报。5协议编码、连接和传输该协议设计为在面向连接的、可靠的传输,其中数据流被分成八位字节(8位单位),每个八位字节和每个位都是有效的。中定义了一个底层服务LDAP over TCP第5.2节.此服务通常适用于提供或在互联网上消费基于X.500的目录服务。这个编写规范时通常考虑到TCP映射。详细说明其他映射的规范可能会遇到各种障碍。通过TCP实现LDAP必须将映射实现为中描述的第5.2节.此表说明了不同层之间的关系参与两个协议对等方之间的交换:+----------------------+|LDAP消息层|+----------------------+>LDAP PDU+----------------------+<数据|SASL层|+----------------------+>受SASL保护的数据+----------------------+<数据|TLS层|应用程序+--------------------+>TLS保护的数据------------+----------------------+<数据运输|运输连接|+----------------------+5.1.协议编码LDAP的协议元素应使用基本编码规则[误码率]第页,共页[ASN.1号]具有以下功能限制:-只使用长度编码的确定形式。-八位字节字符串值仅以原始形式编码。-如果BOOLEAN类型的值为true,则值的编码八位字节设置为十六进制“FF”。Sermersheim标准轨道[第42页]


副本请求4511LDAPv3 2006年6月-如果类型的值是其默认值,则该值不存在。只有一些BOOLEAN和INTEGER类型在此协议中具有默认值定义。这些限制旨在减轻编码和对BER中的某些元素进行解码。这些限制不适用于封装在除非另有规定,否则OCTET STRING值,例如属性值规定的。5.2传输控制协议(TCP)编码的LDAPMessage PDU直接映射到TCP[RFC793协议]字节流使用中描述的基于BER的编码章节
   5.1。建议服务器实现在TCP在Internet分配号码上提供协议侦听器机构(IANA)-分配的LDAP端口,389[端口注册].  服务器可以而是在不同的端口号上提供侦听器。客户必须支持在任何有效的TCP端口上联系服务器。5.3LDAP会话的终止LDAP会话的终止通常由客户端启动发送UnbindRequest(第4.3节),或由服务器发送断开连接通知(第4.4.1节).  在这些情况下,每个协议对等方通过停止来优雅地终止LDAP会话在LDAP消息层进行交换,拆除任何SASL层,拆除任何TLS层,并关闭传输连接。协议对等方可以确定沟通是有害的,在这种情况下,可能会突然发生通过停止通信并关闭运输连接。无论哪种情况,当LDAP会话终止时,都是未完成的按照中的规定处理操作第3.1节.6.安全注意事项此版本的协议提供了以下功能使用明文密码以及任何SASL进行身份验证[RFC4422号文件]机制。安装SASL和/或TLS层可以提供完整性和其他数据安全服务。还允许服务器将其凭据返回给如果客户选择这样做。Sermersheim标准轨道[第43页]


副本请求4511LDAPv3 2006年6月强烈建议在以下情况下使用明文密码:基础运输服务不能保证机密性,可能导致密码泄露给未授权方。鼓励服务器防止客户端修改目录匿名认证的[RFC4513协议].身份验证方法、SASL机制、,和TLS在中进行了描述[RFC4513协议].请注意,SASL身份验证交换不提供数据版本或名称的机密性或完整性保护BindRequest或resultCode、diagnosticMessage或BindResponse的引用字段,也不用于任何信息包含在附加到绑定请求或响应的控件中。因此,不应依赖这些字段中包含的信息,除非它以其他方式受到保护(例如通过在传输层)。实施者应注意各种安全因素(包括身份验证和授权信息与数据安全服务)可能会在LDAP会话过程中更改,甚至在执行特定操作期间。例如,凭据可能过期、授权标识或访问控制可以更改,或者可以替换基础安全层或终止。在处理不断变化的安全因素。在某些情况下,甚至可以继续操作根据安全系数的变化。例如,它可能是适合继续放弃操作,无论更改,或在更改升级时继续操作(或保持)安全系数。在其他情况下,可能适于使操作的处理失败或改变操作的处理。对于例如,如果删除了机密保护适用于拒绝返回敏感数据的请求,或,至少要排除敏感数据的返回。缓存通过LDAP获得的属性和条目的实现必须确保维护访问控制将提供给多个客户端,因为服务器可能具有访问权限控制阻止返回中的条目或属性的策略搜索结果,特定身份验证客户端除外。对于例如,缓存只能向客户端提供结果信息其请求导致它位于缓存中。Sermersheim标准轨道[第44页]


副本请求4511LDAPv3 2006年6月服务器可能会返回以下引用或搜索结果引用:将客户端重定向到对等服务器。流氓是有可能的应用程序将此类引用注入尝试将客户端重定向到恶意服务器。建议客户意识到这一点,并可能在以下情况下拒绝推荐保密措施不到位。建议客户拒绝来自StartTLS操作的引用。matchedDN和diagnosticMessage字段,以及一些resultCode值(例如,attributeOrValueExists和entryAlreadyExists),可以披露是否存在目录中可访问的特定数据以及其他行政控制。服务器实现应限制在正常和错误情况下平等访问受保护信息条件。协议对等方必须做好处理无效和任意的准备-长度协议编码。无效的协议编码包括:BER编码异常、格式字符串和UTF-8编码异常,溢出异常、整数值异常和二进制模式开/关标志异常。LDAPv3协议[PROTOS-LDAP协议]测试套件提供这些异常和测试用例的优秀示例用于发现缺陷。如果协议对等方检测到本质上的攻击可能由于在任何层的进一步通信而导致损坏LDAP会话,协议对等方应突然终止LDAP会话,如中所述第5.3节.7.致谢本文件基于RFC 2251号文件作者:Mark Wahl、Tim Howes和Steve杀人。RFC 2251号文件是IETF ASID工作组的产品。它还基于RFC 2830作者:Jeff Hodges,RL“Bob”Morgan,以及马克·沃尔。RFC 2830是IETF LDAPEXT工作组的产品。它还基于副本请求3771罗杰·哈里森和库尔特·泽林加。副本请求3771是向IETF提交的个人资料。本文件是IETF LDAPBIS工作组的产品。技术审查和内容的重要贡献者包括KurtZeilenga、Steven Legg和Hallvard Furuseth。Sermersheim标准轨道[第45页]


副本请求4511LDAPv3 2006年6月


8.规范性引用文件[ASN.1号]ITU-T建议X.680(07/2002)|ISO/IEC 8824-1:2002“信息技术-抽象语法符号一(ASN.1):基本符号规范”。[误码率]ITU-T Rec.X.690(2002年7月)|ISO/IEC 8825-1:2002,“信息技术-ASN.1编码规则:基本编码规则规范编码规则(CER)和区分编码规则(德国)”,2002年。[ISO10646标准]通用八进制编码字符集(UCS)-体系结构和基本多语言平面,ISO/IEC10646-1 : 1993.[RFC791协议]Postel,J.,“互联网协议”,STD 5,射频791,1981年9月。[RFC793协议]Postel,J.,“传输控制协议”,STD 7,副本请求
                 7931981年9月。[RFC2119协议]Bradner,S.,“RFC中使用的关键词需求水平”,业务连续性计划14,副本请求21191997年3月。[RFC3454协议]Hoffman P.和M.Blanchet,“准备国际化字符串('stringprep')“,副本请求3454,2002年12月。[RFC3629号文件]Yergeau,F.,“UTF-8,ISO的转换格式10646“,STD 63,副本请求36292003年11月。[RFC3986协议]Berners-Lee,T.、Fielding,R.和L.Masinter,“统一资源标识符(URI):通用语法”,标准66,副本请求39862005年1月。[RFC4013协议]Zeilenga,K.,“SASLprep:用户的Stringprep配置文件名称和密码“,副本请求40132005年2月。[RFC4234号文件]Crocker,D.和P.Overell,“语法增强BNF规格:ABNF“,副本请求42342005年10月。[RFC4346号文件]Dierks,T.和E.Rescorla,“TLS协议版本1.1",副本请求43462006年3月。[射频c4422]Melnikov,A.,编辑和K.Zeilenga,编辑,“简单身份验证和安全层(SASL)“,副本请求4422,2006年6月。Sermersheim标准轨道[第46页]


副本请求4511LDAPv3 2006年6月[RFC4510协议]Zeilenga,K.,Ed.,“轻量级目录访问协议(LDAP):技术规范路线图“,副本请求
                 45102006年6月。[RFC4512协议]Zeilenga,K.,轻量级目录访问协议(LDAP):目录信息模型“,副本请求4512,6月2006[RFC4513协议]Harrison,R.,Ed.,“轻量级目录访问协议(LDAP):身份验证方法和安全机制”,副本请求45132006年6月。[RFC4514协议]Zeilenga,K.,Ed.,“轻量级目录访问协议(LDAP):区分的字符串表示名称“,副本请求45142006年6月。[射频4 516]Smith,M.,Ed.和T.Howes,“轻量级目录访问协议(LDAP):统一资源定位器“,副本请求
                 45162006年6月。[RFC4517协议]Legg,S.,Ed.,“轻量级目录访问协议(LDAP):语法和匹配规则“,副本请求4517,6月2006[RFC4520协议]Zeilenga,K.,“互联网号码分配机构(IANA)轻量级目录的注意事项访问协议(LDAP)“,业务连续性计划64,副本请求45202006年6月。[Unicode码]Unicode联盟,“Unicode标准,版本3.2.0”由“Unicode标准,版本3.0“(雷丁,马萨诸塞州,艾迪森·韦斯利,2000年。国际标准图书编号0-201-61633-5),按照“Unicode标准附件”修订#27:Unicode 3.1英寸(http://www.unicode.org/reports/tr27/)并通过“Unicode标准附件#28:Unicode 3.2”(http://www.unicode.org/reports/tr28/).[X.500号]ITU-T Rec.X.500,“目录:概念概述,模型和服务”,1993年。[X.511号]ITU-T Rec.X.511,“目录:抽象服务定义”,1993年。Sermersheim标准轨道[第47页]


副本请求4511LDAPv3 2006年6月


9.参考文献[字符模型]Whistler,K.和M.Davis,“Unicode技术报告#17,字符编码模型“,UTR17,<http://www.unicode.org/unicode/reports/tr17/>,8月2000[词汇表]Unicode联盟,“Unicode词汇表”,<http://www.unicode.org/glossary网站/>.[端口注册]IANA,“端口号”,<http://www.iana.org/assignments/port-numbers>.[PROTOS-LDAP协议]欧鲁大学,“PROTOS Test-Suite:c06-ldapv3”<http://www.ee.oulu.fi/research/ouspg/protos/testing/
                 c06/ldapv3/>.10IANA注意事项互联网号码分配机构(IANA)已更新LDAP结果代码注册表,指示此文档提供结果代码0-36、48-54、64的最终技术规范-70, 80-90.  还需要注意的是,一个resultCode值(strongAuthRequired)已重命名为(strongerAuthRequered)。IANA还将LDAP协议机制注册表更新为表明本文件和[RFC4513协议]提供了明确的StartTLS技术规范(1.3.6.1.4.1.1466.20037)扩展操作。IANA已分配LDAP对象标识符18[RFC4520协议]识别本文件中定义的ASN.1模块。主题:LDAP对象标识符注册请求联系人和电子邮件地址以获取更多信息:吉姆·塞尔默谢姆<jimse@novell.com>规范:副本请求4511作者/更改控制器:IESG评论:标识LDAP ASN.1模块Sermersheim标准轨道[第48页]


副本请求4511LDAPv3 2006年6月


附录A.LDAP结果代码本规范性附录详细说明了有关LDAP结果代码,并提供每个结果的简要概述中枚举的LDAP结果代码第4.1.9条.可以定义附加结果代码以与扩展一起使用[RFC4520协议].  客户端实现应处理以下任何结果代码它们不认为是未知的错误情况。此处提供的描述并不能完全解释结果代码用于防止未经授权披露的替换(例如用noSuchObject替换不足的访问权限,或者invalidCredentials for invalidAccessRights)。A.1.无错误结果代码这些结果代码(称为“非错误”结果代码)并不表示错误条件:成功(0),比较假(5),比较真值(6),转介(10),以及saslBindInProgress(14)。success、compareTrue和compareFalse结果代码表示成功完成(因此,被称为“成功”结果代码)。引用和saslBindInProgress结果代码指示客户端需要采取其他操作才能完成操作。A.2款.结果代码现有LDAP结果代码描述如下:成功(0)指示操作成功完成。注:此代码不用于比较操作。请参见compareFalse(5)和compareTrue(6)。Sermersheim标准轨道[第49页]


副本请求4511LDAPv3 2006年6月操作错误(1)指示操作没有正确排序与其他操作(相同或不同类型)的关系。例如,如果客户端尝试启动TLS[RFC4346号文件]还有其他未完成的操作或者如果已经安装了TLS层。协议错误(2)指示服务器接收到的数据格式不正确。仅对于绑定操作,此代码还用于指示服务器不支持请求的协议版本。仅对于扩展操作,此代码还用于指示服务器不支持(根据设计或配置)与关联的扩展操作请求名称。对于指定多个控件的请求操作,这可能用于指示服务器不能忽略订单指定的控件无效或未指定。超过时间限制(3)指示客户端指定的时间限制为在操作完成之前超过。超出大小限制(4)指示客户端指定的大小限制为在操作完成之前超过。比较假(5)指示比较操作已成功已完成,断言的计算结果为FALSE或未定义。比较真实(6)指示比较操作已成功已完成,断言的计算结果为TRUE。不支持authMethod(7)指示身份验证方法或机制不是支持。Sermersheim标准轨道[第50页]


副本请求4511LDAPv3 2006年6月strongerAuthRequired(8)指示服务器需要在中进行强(er)身份验证以完成操作。当与断开连接通知操作一起使用时代码表示服务器检测到在客户端和之间建立安全关联服务器意外失败或受到威胁。推荐(10)表示需要追踪转诊以完成操作(请参见第4.1.10节).adminLimitExceeded(11)表示已超出管理限制。不可用关键扩展(12)表示无法识别关键控件(请参阅章节
         4.1.11).要求的保密性(13)表示需要数据保密保护。saslBindInProgress(14)指示服务器要求客户端发送新绑定请求使用相同的SASL机制继续身份验证过程(请参见第4.2节).无成功属性(16)指示命名条目不包含指定的属性或属性值。undefinedAttributeType(17)指示请求字段包含无法识别的属性描述。不适当匹配(18)表示试图(例如在断言中)使用未为属性类型定义的匹配规则担心的。约束违反(19)指示客户端提供的属性值不符合数据模型。例如,当多个值提供给具有SINGLE-VALUE约束的属性。Sermersheim标准轨道[第51页]


副本请求4511LDAPv3 2006年6月属性或值存在(20)指示客户端向提供了属性或值添加到条目中,但属性或值已经存在。invalidAttributeSyntax(21)指示声称的属性值不符合属性的语法。无成功对象(32)指示DIT中不存在该对象。别名问题(33)表示出现了别名问题。例如,该代码可用于指示别名已被取消引用没有命名对象。无效DN语法(34)表示LDAPDN或RelativeLDAPDN字段(例如,搜索请求的基本项、目标项、ModifyDN newrdn等)不符合要求的语法或包含属性不符合属性语法的值类型。别名取消引用问题(36)指示取消引用时出现问题别名。通常,在某种情况下会遇到别名不允许访问或拒绝访问的位置。不当身份验证(48)指示服务器需要已尝试的客户端匿名绑定或不提供凭据绑定到提供某种形式的凭据。无效凭据(49)指示提供的凭据(例如,用户名和密码)无效。访问权限不足(50)指示客户端没有足够的访问权限执行操作的权限。忙(51)表示服务器太忙,无法为操作。Sermersheim标准轨道[第52页]


副本请求4511LDAPv3 2006年6月不可用(52)指示服务器或子系统正在关闭完成操作所必需的是脱机的。不愿意执行(53)指示服务器不愿意执行操作。循环检测(54)表示服务器已检测到内部循环(例如。,取消引用别名或链接操作时)。命名违规(64)指示条目的名称违反命名限制。对象类别违规(65)指示条目违反了对象类限制。非叶上不允许(66)指示操作对非叶子进入。RDN上不允许(67)指示操作正在不适当地尝试删除构成条目相对可分辨的值名称。条目已存在(68)指示无法满足请求(添加、移动、,或重命名),因为目标条目已存在。禁止对象类别模式(69)指示试图修改的对象类条目的“objectClass”属性被禁止。例如,当客户端尝试修改条目的结构对象类。影响多个SA(71)指示操作无法按原样执行影响多个服务器(DSA)。其他(80)表示服务器遇到内部错误。Sermersheim标准轨道[第53页]


副本请求4511LDAPv3 2006年6月


附录B完成ASN.1定义本附录为规范性附录。轻量级目录访问协议V3{1 3 6 1 1 18}--版权所有(C)互联网协会(2006)。此版本的--此ASN.1模块是射频4511; 查看RFC本身--获取完整的法律通知。定义隐含标签暗示的可扩展性:=开始LDAP消息::=序列{消息ID消息ID,协议操作选择{bindRequest绑定请求,bindResponse绑定响应,unbindRequest取消绑定请求,searchRequest搜索请求,searchResEntry搜索结果条目,searchResDone搜索结果完成,searchResRef搜索结果引用,修改请求修改请求,修改响应修改响应,addRequest添加请求,addResponse添加响应,delRequest delRequest,删除请求,delResponse拒绝响应,modDNRequest修改DNRequest,modDN响应修改DN响应,比较请求比较请求,比较响应比较响应,放弃请求放弃请求,扩展请求扩展请求,扩展响应扩展响应,...,中间响应中间响应},控件[0]控件可选}消息ID::=整数(0..maxInt)最大整数::=2147483647--(2^^31-1)--LDAPString::=八位字节字符串--UTF-8编码,-- [ISO10646标准]字符Sermersheim标准轨道[第54页]


副本请求4511LDAPv3 2006年6月LDAPOID::=八位字符串--约束为<numericoid>-- [RFC4512协议]LDAPDN::=LDAPString—约束到<distinguishedName>-- [RFC4514协议]RelativeLDAPDN::=LDAPString—约束到<name-component>-- [射频c4514]属性描述::=LDAPString--约束为<attributedescription>-- [RFC4512协议]属性值::=八位字节字符串AttributeValueAssertion::=序列{属性Desc属性描述,断言值断言值}断言值::=八位字节字符串部分属性::=序列{类型AttributeDescription,值集合AttributeValue}属性::=PartialAttribute(带组件{...,值(尺寸(1..最大))})匹配规则Id::=LDA字符串LDAPResult::=序列{枚举的结果代码{成功(0),操作错误(1),协议错误(2),超过时间限制(3),超出大小限制(4),比较假(5),比较真值(6),authMethod不受支持(7),strongerAuthRequired(8),--9保留--推荐(10),adminLimitExceeded(11),不可用临界扩展(12),要求保密(13),saslBindInProgress(14),Sermersheim标准轨道[第55页]


副本请求4511LDAPv3 2006年6月无成功属性(16),未定义属性类型(17),不适当匹配(18),约束违反(19),属性或值存在(20),invalidAttributeSyntax(21),--22-31未使用--无成功对象(32),别名问题(33),invalidDN语法(34),--35保留给未定义的isLeaf--别名取消引用问题(36),--37-47未使用--不当身份验证(48),无效凭据(49),访问权限不足(50),忙(51),不可用(52),不愿意执行(53),循环检测(54),--55-63未使用--命名违规(64),对象类别违规(65),非叶上不允许(66),RDN上不允许(67),条目已存在(68),禁止对象类别模式(69),--70为CLDAP保留--影响多个DSA(71),--72-79未使用--其他(80),...  },匹配的DN LDAPDN,诊断消息LDA字符串,推荐[3]推荐可选}参考::=uri的序列大小(1..MAX)URI::=LDAPString--限制为中允许的字符--URI控制::=控制顺序控制控制::=序列{控制类型LDAPOID,临界布尔默认错误,controlValue八位字节字符串可选}Sermersheim标准轨道[第56页]


副本请求4511LDAPv3 2006年6月绑定请求::=[应用程序0]序列{版本INTEGER(1..127),名称LDAPDN,身份验证AuthenticationChoice}AuthenticationChoice::=选择{简单[0]八位字节字符串,--保留1和2sasl[3]SaslCredentials,...  }SaslCredentials::=序列{机制LDA字符串,凭据八位字节字符串可选}绑定响应::=[应用程序1]序列{LDAPResult的组件,serverSaslCreds[7]八位字节字符串可选}取消绑定请求::=[APPLICATION 2]NULL搜索请求::=[应用程序3]序列{基本对象LDAPDN,枚举范围{基本对象(0),单层(1),完整子树(2),...  },列举的derefAliases{neverDeref别名(0),取消搜索(1),取消查找基础对象(2),取消总是(3)},sizeLimit整数(0..maxInt),时间限制整数(0..maxInt),类型仅限布尔型,过滤器过滤器,属性AttributeSelection}AttributeSelection::=选择器LDAPString的序列--LDA字符串被约束为--中的<attributeSelector>第4.5.1.8节过滤器::=CHOICE{和[0]设置过滤器的尺寸(1..MAX),或[1]设置过滤器尺寸(1..MAX),不是[2]过滤器,equalityMatch[3]属性值断言,Sermersheim标准轨道[第57页]


副本请求4511LDAPv3 2006年6月substrings[4]子字符串过滤器,greaterOrEqual[5]属性值断言,lessOrEqual[6]属性值断言,显示[7]AttributeDescription,approxMatch[8]属性值断言,extensibleMatch[9]匹配规则评估,...  }子字符串过滤器::=序列{类型AttributeDescription,子串选择的子串序列大小(1..MAX){初始[0]AssertionValue,--最多只能出现一次任何[1]断言值,final[2]断言值}--最多只能出现一次}匹配规则断言::=序列{matchingRule[1]匹配规则ID可选,type[2]属性描述可选,matchValue[3]断言值,dnAttributes[4]布尔默认值为假}SearchResultEntry::=[应用程序4]序列{对象名称LDAPDN,属性PartialAttributeList}PartialAttributeList::=序列partialAttribute部分属性SearchResultReference::=[APPLICATION 19]序列uri的大小(1..MAX)搜索结果完成::=[应用程序5]LDAResult修改请求::=[应用程序6]序列{对象LDAPDN,更改顺序的更改顺序{操作枚举{添加(0),删除(1),更换(2),...  },修改PartialAttribute}}修改响应::=[APPLICATION 7]LDAPResultSermersheim标准轨道[第58页]


副本请求4511LDAPv3 2006年6月添加请求::=[应用程序8]序列{条目LDAPDN,属性AttributeList}AttributeList::=属性属性序列添加响应::=[APPLICATION 9]LDAPResult删除请求::=[APPLICATION 10]LDAPDNDelResponse::=[应用程序11]LDAPResultModifyDNRequest::=[APPLICATION 12]序列{条目LDAPDN,newrdn相对LDAPDN,deleteoldrdn布尔安,newSuperior[0]LDAPDN可选}ModifyDN响应::=[应用程序13]LDAResult比较请求::=[APPLICATION 14]序列{条目LDAPDN,ava属性值断言}比较响应::=[APPLICATION 15]LDAPResult放弃请求::=[APPLICATION 16]消息ID扩展请求::=[应用程序23]序列{requestName[0]LDAPOID,requestValue[1]八位字节字符串可选}扩展响应::=[APPLICATION 24]序列{LDAPResult的组件,responseName[10]LDAPID可选,响应值[11]八位字符串可选}中间响应::=[APPLICATION 25]序列{responseName[0]LDAPOID可选,responseValue[1]八位字节字符串可选}结束Sermersheim标准轨道[第59页]


副本请求4511LDAPv3 2006年6月


附录C.变更本附录为非规范性附录。本附录总结了对RFC 2251号文件,副本请求
   2830、和副本请求3771.C.1条款。对所做的更改RFC 2251号文件本节概述了对章节所做的实质性更改1,2、3.1和4,以及RFC 2251号文件。读者应该咨询[RFC4512协议]和[RFC4513协议]其他变更摘要部分。C.1.1条款.第1节(本备忘录的状态)-删除了IESG注释。发布后RFC 2251号文件,强制LDAP身份验证机制已经标准化足以删除此注释。请参见[RFC4513协议]用于身份验证机制。C.1.2条.第3.1节(协议模型)和其他-删除了LDAP v1、v2和v3之间的历史记录注释。相反,添加了足够的语言,以便此文档可以在其拥有。C.1.3条.第4节(协议要素)-阐明ASN.1的可扩展性功能在何处适用于协议。此更改影响了各种ASN.1类型在某些元素中包含省略号(…)。-删除了实现版本3或稍后必须提供“supportedLDAPVersion”属性。这个该语句并没有提供互操作性优势。C.1.4条.第4.1.1节(邮件信封)-服务器必须返回当发生以下情况时,通知断开并断开传输连接PDU在某种程度上存在畸形。这已更新为服务器应该返回断开连接通知,并且必须终止LDAP会话。C.1.5条.第4.1.1.1节(消息ID)-要求请求的messageID必须非零零保留给断开通知。Sermersheim标准轨道[第60页]


副本请求4511LDAPv3 2006年6月-指定何时返回使用了messageID。RFC 2251号文件意外施加的同步服务器这句话中的行为。约1.6.第4.1.2节(字符串类型)-声明LDAPOID从中约束为<numericoid>[RFC4512协议].C.1.7条.第4.1.5.1条(二进制选项)和其他-已从规范中删除二进制选项。与此方法相关的许多互操作性问题替代属性类型编码。努力指定合适的更换工作正在进行中。C.1.8条.第4.1.8条(属性)-这里结合了PartialAttribute和Attribute的定义,并根据PartialAttribute定义了Attribute。C.1.9条.第4.1.10节(结果消息)-将“errorMessage”重命名为“diagnosticMessage”,因为它可以发送非错误结果。-将一些语言移到附录A,并将读者引荐到那里。-允许为除这些结果代码以外的其他结果代码提供匹配的DN在中列出RFC 2251号文件.-将代码“strongAuthRequired”重命名为“strongerAuthRequered”澄清此代码可能经常被返回,以表明执行给定操作需要更强的身份验证。C.1.10条.第4.1.11节(推荐)-根据URI而不是URL定义引用。-删除了所有推荐URI必须相等的要求能够进行操作。这句话模棱两可但没有提供如何执行的说明。-增加了客户端不得在服务器之间循环的要求。-阐明了在推荐和中使用LDAPURL的说明这样做添加了一个建议,即范围部分应该存在。-删除了要求客户端在特定进行操作的方法。这些都没有用互操作性。Sermersheim标准轨道[第61页]


副本请求4511LDAPv3 2006年6月


C.1.11条.第4.1.12节(控制)-指定如何根据ASN.1定义控制值编码。-注意,关键性字段仅适用于请求消息(UnbindRequest除外),出现时必须忽略响应消息和UnbindRequest。-指定可以在服务器的自由裁量权。原始措辞有混淆这使得一些人认为,公认的控制可能不会只要它们与适当的请求关联,就会被忽略。-添加了有关控件组合和排序的语言消息上的控件。-指定当控件组合的语义未定义或未知,则会导致protocolError。-将“服务器必须准备好”更改为“实现必须准备好准备”,以反映客户端和服务器实现必须能够处理这一点(作为两个解析控件)。C.1.12条.第4.2节(绑定操作)-强制服务器在版本不为时返回protocolError支持。-使用简单身份验证时的无歧义行为名称为空,密码为非空。-不取消引用绑定别名所需的服务器。这是添加以与其他操作保持一致,并帮助确保数据一致性。-要求文本密码以UTF-8编码方式传输Unicode,并添加了关于字符串准备的建议。这是帮助确保从发送的密码的互操作性不同的客户端。C.1.13条.第4.2.1节(绑定请求的排序)-为了可读性和语言,本节大体上进行了重新组织添加以澄清失败的身份验证状态和放弃的绑定操作。-删除:“如果SASL传输加密或完整性机制经过谈判,该机制不支持从一个身份到另一个身份的凭据,则客户端必须而是建立一个新的连接。"如果特定SASL机制的技术规范SASL机制详细说明了应用程序如何处理它们。LDAP不需要任何特殊处理。-删除第3段中的MUST必须与[RFC2119协议].Sermersheim标准轨道[第62页]


副本请求4511LDAPv3 2006年6月-强制客户端在绑定时不发送非绑定操作正在进行,并建议服务器在已收到。这是确保正确排序绑定与其他操作的关系。C.1.14条.第4.2.3节(绑定响应)-将大多数与错误相关的文本移到附录A,并添加了文本关于与绑定一起使用的某些错误操作。-禁止服务器指定serverSaslCreds适当的。C.1.15条.第4.3节(解绑操作)-指定两个对等端停止传输并终止用于解除绑定操作的LDAP会话。约1.16.第4.4节(未经请求的通知)-增加了未经请求的未来规范的说明通知。C.1.17条.第4.5.1节(搜索请求)-SearchRequest属性现在定义为AttributeSelection类型而不是AttributeDescriptionList,并且ABNF是提供了。-SearchRequest属性可能包含重复的属性描述。这以前是被禁止的。现在服务器指示在后续名称重复时忽略这些名称。这是放松的,以便允许不同的短名称以及为属性请求的OID。-当服务器不知道指定的属性。它过去是评估为FALSE,这导致行为与大多数人都会期待,尤其是在使用“not”运算符时。-过滤器选项SubstringFilter子字符串类型现已定义下限为1。-SubstringFilter子字符串的“initial”、“any”和“final”类型现在是AssertionValue而不是LDAPString。此外,还添加了必须列出说明“首字母”(如果有)的命令第一个和“final”(如果存在)必须列在最后。-消除了derefAliases选项的语义歧义。曾经有过关于derefInSearching是否应用于基本对象的问题在整个子树搜索中。-添加了equalityMatch、substrings、greaterOrEqual、,lessOrEqual和approxMatch。Sermersheim标准轨道[第63页]


副本请求4511LDAPv3 2006年6月



C.1.18条.第4.5.2节(搜索结果)-建议服务器在知道它们不明确或可能导致互操作性问题。-由于缺少实施。C.1.19条.第4.5.3节(搜索结果中的继续引用)-进行了与以下内容类似的更改第4.1.11节.C.1.20条.第4.5.3.1节(示例)-固定示例以遵守对所做的更改第4.5.3节.约1.21.第4.6节(修改操作)-将AttributeTypeAndValues替换为Attribute等效。-指定可能发生的修改更改类型暂时违反架构。一些读者对此印象深刻允许任何临时架构冲突。C.1.22条.第4.7节(添加操作)-使用X.511执行Aligned Add操作,因为RDN的属性与列出的属性一起使用,以创建条目。以前,Add要求区分值为出现在列出的属性中。-删除了objectClass属性必须为指定为某些DSE类型不需要此属性。相反,添加了通用措辞,要求添加条目坚持数据模型。-删除了关于放置对象的建议。这是包含在数据模型文档中。C.1.23条.第4.9条(修改DN操作)-需要服务器不取消对Modify DN别名的引用。这个添加是为了与其他操作保持一致,并有助于确保数据一致性。-在命名上下文之间移动时,允许修改DN失败。-指定当newrdn的属性不是出现在条目上。Sermersheim标准轨道[第64页]


副本请求4511LDAPv3 2006年6月


C.1.24条.第4.10条(比较操作)-指定compareFalse表示进行了比较,并且结果是错误的。混乱导致人们相信未定义的匹配导致compareFalse。-不取消对比较别名的引用所需的服务器。这是添加以与其他操作保持一致,并帮助确保数据一致性。C.1.25条.第4.11条(放弃操作)-解释说,由于Abandon没有返回任何响应,客户应该如果他们需要知道结果,就不要使用它。-指定不能放弃放弃和取消绑定。C.1.26条.第4.12条(扩展操作)-指定扩展操作的值如何根据ASN.1将被编码。-添加了关于扩展操作规范的说明包括。-添加了服务器发布支持的扩展操作。C.1.27条.第5.2节(传输协议)-将特定于转诊的指示移至转诊相关部分。C.1.28条.第7节(安全注意事项)-重写了有关SASL未保护某些方面的说明LDAP绑定消息。-注意,鼓励服务器阻止目录通过匿名身份验证的客户端进行的修改[RFC4513协议].-添加了关于更改安全性可能性的说明因素(身份验证、授权和数据机密性)。-针对以下可能已注入的转介发出警告数据流。-注意到服务器应该平等地保护信息,无论是在是否存在错误条件,并提到匹配的DN,diagnosticMessage和resultCodes。-添加了关于格式错误和长编码的注释。Sermersheim标准轨道[第65页]


副本请求4511LDAPv3 2006年6月


约1.29.附录A(填写ASN.1定义)-在ASN.1定义中添加了“EXTENSIBILITY IMPLIED”。-已删除AttributeType。它没有被使用。C.2条款。对所做的更改副本请求2830本节总结了对RFC 2830.读者应咨询[RFC4513协议]更改摘要其他部分。C.2.1条款.第2.3节(除了“成功”之外的回应)-删除了表示转介可以从启动TLS。-删除了只有一组较窄的结果代码才能返回。某些情况下需要一些结果代码,但如果合适,可以退还任何其他。-删除了ExtendedResponse.responseName必须为存在。在某些情况下,这是不可能的,并且要求这样做与语言不一致第4.12条.C.2.1条款.第4节(关闭TLS连接)-改写了本节的大部分内容,以与LDAP协议层。-删除了关于突然关闭的说明,因为这在其他文档的区域(特别是,第5.3节)C.3号机组。对所做的更改副本请求3771-重写以适应此文档。一般来说,语义是保存。支持和背景语言被视为冗余由于其在本文件中的存在而被省略。-指定对请求的中间响应可以为不同类型,可以指定其中一种响应类型没有响应值。Sermersheim标准轨道[第66页]


副本请求4511LDAPv3 2006年6月编辑地址吉姆·塞尔默谢姆Novell公司。南诺维尔广场1800号美国犹他州普罗沃84606电话:+1 801 861-3088电子邮件:jimse@novell.comSermersheim标准轨道[第67页]


副本请求4511LDAPv3 2006年6月完整版权声明版权所有(C)互联网协会(2006)。本文件受权利、许可和限制的约束包含在中业务连续性计划78,除文中另有规定外,作者保留所有权利。本文件及其所含信息在“按现状”基础和贡献者、他/她代表的组织或由互联网协会和互联网赞助(如有)工程任务组否认所有明示或暗示的担保,包括但不限于使用此处的信息不会侵犯任何权利或任何暗示适销性或特定用途适用性的保证。知识产权IETF对任何可能要求的知识产权或其他权利与中描述的技术的实现或使用有关本文件或此类权利下的任何许可的范围可能可用或不可用;也不代表它已经为确定任何此类权利做出了任何独立努力。问询处关于RFC文件中权利的程序在中找到业务连续性计划78业务连续性计划79.向IETF秘书处披露的知识产权信息副本以及提供许可证的保证,或试图获得使用本协议的实施者或用户的此类所有权规范可从IETF在线知识产权库获取,网址为http://www.ietf.org/ipr.IETF邀请任何相关方提请其注意版权、专利或专利申请或其他所有权可能涵盖实施所需技术的权利本标准。请将信息发送至IETF,网址为ietf-ipr@ietf.org。确认RFC编辑器功能的资金由IETF提供行政支持活动(IASA)。Sermersheim标准轨道[第68页]