LDAP v3

Internationalization

通过国际字符集(ISO 10646)处理国际化,以表示字符串 形式的协议元素(例如 DN)。版本 3 与版本 2 的不同之处还在于,它使用 UTF-8 编码其字符串。

Authentication

除了匿名,简单(明文密码)身份验证之外,LDAP v3 还使用简单身份验证和安全层(SASL)身份验证框架(RFC 2222)来允许对 LDAP 使用不同的身份验证机制。 SASL 指定了质询-响应协议,在该协议中,为了进行身份验证,在 Client 端和服务器之间交换了数据。

当前定义了几种 SASL 机制:DIGEST-MD5CRAM-MD5AnonymousExternalS/KeyGSSAPIKerberos v4。 LDAP v3Client 端可以使用任何这些 SASL 机制,只要 LDAP v3 服务器支持它们即可。此外,可以使用新的(尚待定义)SASL 机制,而不必对 LDAP 进行更改。

Referrals

“引荐”是服务器发回 Client 端的信息,指示可以在另一个位置(可能在另一个服务器上)找到请求的信息。在 LDAP v2 中,服务器应该处理引用,而不将其返回给 Client 端。这是因为处理引荐可能非常复杂,因此将导致 Client 端更加复杂。在构建和部署服务器时,发现引用是有用的,但是没有很多服务器支持服务器端引用处理。因此,找到了一种改进协议以允许其返回引用的方法。这是通过将引荐放置在“部分结果”错误响应的错误消息中来完成的。

LDAP v3 具有对引用的显式支持,并允许服务器将引用直接返回给 Client 端。推荐不会在本类中介绍,但是您可以始终参考JNDI Tutorial来 管理 应用程序中的推荐。

Deployment

诸如 LDAP 之类的通用协议可用于确保所有目录 Client 端和服务器“使用相同的语言”。当在网络中部署许多不同的目录 Client 端应用程序和目录服务器时,所有这些实体谈论相同的对象也非常有用。

除其他外,“目录架构”指定目录可能具有的对象类型以及每种类型的对象可能具有的强制性和可选属性。 LDAP v3 基于 X.500 标准为网络中常见的对象(例如国家/地区,组织,用户/个人,组和设备)定义了一个架构(RFC 2252RFC 2256)。它还为 Client 端应用程序定义了一种访问服务器架构的方式,以便它可以找到特定服务器支持的对象和属性的类型。

LDAP v3 进一步定义了一组用于表示属性值(RFC 2252)的语法。要编写需要访问 Pattern 的 Java 应用程序,请参阅JNDI Tutorial

Extensions

除了诸如“搜索”和“修改”之类的 预定义操作外,LDAP v3 还定义了“扩展”操作*。 “扩展”操作将请求作为参数并返回响应。该请求包含标识该请求和该请求的参数的标识符。响应包含执行请求的结果。这对“扩展”操作请求/响应称为* extension *。例如,可能存在 Start TLS 的 extensions,这是 Client 端向服务器请求激活 Start TLS 协议的请求。

这些 extensions 可以是标准的(由 LDAP 社区定义)或专有的(由特定的目录供应商定义)。有关编写需要使用扩展程序的应用程序,请参考JNDI Tutorial

Controls

添加新功能的另一种方法是使用* control *。 LDAP v3 允许通过使用控件来修改任何操作的行为。可以随操作一起发送任意数量的控件,并且可以随其结果返回任意数量的控件。例如,您可以发送一个 Sort 控件以及一个“搜索”操作,该操作告诉服务器根据"name"属性对搜索结果进行排序。

像扩展一样,此类控件可以是标准控件或专有控件。 platform中提供了标准控件。有关编写需要使用控件的应用程序的信息,请参考JNDI Tutorial