Chapter 1 - Introducing LDAP

   LDAP是如何工作的?为什么LDAP被这么多的大公司以及所有主要的软件供应商采用为目录标准?本节概述了LDAP技术的功能,以及为什么LDAP被业界如此重视。本书后面的章节对这一概述进行了更详细的阐述。

LDAP came from X.500

LDAP(轻量级目录访问协议)起源于国际电信联盟(ITU)的X.500系列建议。ITU是一个国际标准机构,而X.500是一套关于目录的建议。由于这种关系,X.500和LDAP目录的结构是相似的。LDAP目录的实现通常也符合X.500的要求,而且这两个目录之间的网关也是很多的。LDAP是密歇根大学的先驱,他们的网站上仍然有免费的实现,还有文档、源代码和其他资源。

    A set of nine RFC documents defines LDAP

LDAP是由一套已发布的互联网标准定义的,通常以其在IETF网站上发布的Request For Comment (RFC)编号来参考:http://www.ietf.org。互联网工程任务组(IETF)帮助管理一个严格的提案过程,在这个过程中,像LDAP这样的想法会被审查成草案,直到它们准备好作为互联网标准发布。不要对与LDAP相关的RFC文件的数量感到困惑。LDAP第三版(v3)由九个RFC文件定义。RFC的2251到2256给出了核心细节,后来又有RFC 2829和2830。在本书出版前不久,RFC 3377也随之而来。它将所有这些RFC联系在一起,成为官方的LDAP v3标准。除了这九个文档外,你还会发现许多其他的文档,它们涉及基于核心LDAP标准的技术。LDAP包括一系列广泛的技术,并在继续发展,因此需要多个文档来帮助定义其众多方面。本书包括了核心RFCs中的材料以及大多数其他的LDAP RFCs。尽管RFC文件定义了标准,但它们并没有讲述整个故事,而且它们肯定不是令人愉快的阅读。但为了进一步参考,当RFC文件提供的细节超过了本书的要求时,将引用它们。


X.500发生了什么?X.500有很多问题。它与OSI(开放系统互连)协议捆绑得太紧,因此不适合出现的以TCP为主导的世界。它使用了一种复杂的编码机制(尽管公平地说,LDAP使用了几乎相同的机制)。它的创造者非常有野心,所以X.500对于人们真正想解决的问题来说可能太复杂了。最后,X.500的目的是成为一个全球目录服务,尽管并不清楚每个人都认为这是一个好的问题。总之,LDAP和域名系统(DNS)以一种更简单的方式解决了人们面临的真正问题

总结 LDAP,我们将关注四个方面:

Namespace
Client operations
Schema
Management

这四个方面与本书接下来的四章相吻合,后者更详细地扩展了此处的摘要信息。在本书的第二部分,每一章都着眼于特定的供应商实现。这些章节也使用这四个主要领域来组织信息。

Mycompany.com
在查看四个 LDAP 领域之前,我需要介绍贯穿全书的示例公司,它为抽象概念提供了具体的上下文。 Mycompany.com 是一家典型的公司,对开展业务有复杂的技术要求。我有意保留了 Mycompany 的通用配置文件,以最大限度地提高示例的相关性。图 1-4 显示了 Mycompany 已部署并希望与 LDAP 目录集成的业务应用程序和 IT 基础设施服务类型的代表性示例。

Figure 1-4. Integration of Mycompany.com’s applications and infrastructure with LDAP

image.png


Trying to Read the RFCs?
如果您尝试阅读 IETF 网站上的 RFC,您可能会遇到几个问题。您可能会遇到无法在网上找到的对 X.500 文档的引用。这是因为 X.500 由 ITU 国际标准机构维护。 ITU 要求您付费才能获得其标准的副本,您可以从其网站在线订购一份副本。或者,我在本书的后面列出了一些在线 X.500 参考资料,包括一本关于 X.500 的完整在线书籍。其次,您可能不理解某些定义中使用的特殊编码系统。它称为 Backus-Naur 格式 (BNF),您可以在 RFC 822 中阅读更多相关信息。RFC 旨在简化电子邮件的编码;但是如果你跳过几个特定于消息传递的部分,你可以了解如何使用 BNF 格式

Mycompany 希望使用 LDAP 目录将这些应用程序和服务绑定在一起,以简化数据管理、削减开发和支持成本,并提供单点 IT 基础设施管理。图 1-4 进一步显示了这些应用程序、数据库、和服务可能与 LDAP 目录中的数据交互。目录外的箭头表示搜索操作(也称为查询),它是服务或应用程序的信息源。指向目录的箭头表示目录数据的来源或现有目录数据的潜在修改。

Namespace
To find information in a directory, a common set of naming rules is needed; these rules are called a
namespace

每个目录都需要一个命名空间。您可能会问,什么是名称空间?如您所料,命名空间主要是指条目的命名方式。但是,它也可以暗示其他内容,例如条目的组织结构。顺便说一句,术语“命名空间”也可以在一般意义上用于指代特定容器中的所有对象。

The namespace serves two functions: to identify objects and to define the hierarchical structure。

通常,LDAP 名称空间是用于引用 LDAP 目录中对象的系统。每个对象都必须有一个名称,每个对象的名称有两个用途。首先,它允许引用对象。其次,它允许将对象组织成逻辑结构。理解命名空间是理解目录结构的关键。

Because each entry indicates a location in the directory, its name must be unique.

目录中的每个条目都需要一个名称,以便引用该条目。这些名称在 LDAP 目录中必须是唯一的,以便您可以指定一个特定的条目。但是,命名空间不是简单地用唯一名称命名每个条目,而是更进一步,指定每个条目在目录组织结构中的位置。因此,如果您知道条目的名称,那么您也知道该条目在目录结构中的位置。

Namespace hierarchy allows management control

因为名称空间是以分层方式组织的,所以可以在分层结构中的多个点委托管理控制。名称空间中固有的层次结构方便地为合作委托管理提供了一种有效的方式。这是 LDAP 相对于数据库的一个显着优势,它通常是决定如何在目录中组织数据的主要因素之一。

DNS is one common namespace

您可能使用过的许多目录都共享一个公共命名空间,这恰好是一个 Internet 标准:DNS。例如,当您通过 Internet 向另一个人的邮箱发送电子邮件时,您会以符合 DNS 命名空间的方式 (person@domain.com) 对其进行寻址。电子邮件只发送给一个人,因为使用 DNS 名称空间的邮件服务也强制名称的唯一性。 DNS 为许多计算机服务提供命名空间。

The LDAP namespace is very similar to DNS, and DNS can be employed

根据定义,DNS 本质上是分层的。 LDAP 名称空间也是分层的。由于名称空间非常相似,许多 LDAP 目录都利用 DNS 名称空间,因此 LDAP 名称空间可以与 DNS 无缝协作。这种依赖有助于使 LDAP 更具吸引力,并为全球集成的 LDAP 目录的未来发展做好准备。采用 DNS 兼容性的 LDAP 供应商允许看似独立的目录在以后更容易地连接到全局层次结构中,就像基于 Intranet 的 DNS 区域可能连接到全局 DNS 名称空间一样。第 5 章检查独立目录的集成,第 2 章介绍一些主要概念。正式确定 LDAP 与 DNS 的关系是 IETF 工作组的任务之一;第 2 章还考察了这种关系。

DNS is not required but usually is preferred

对于某些目录服务器,客户端或用户可以自动为其本地 DNS 区域定位目录服务器,而无需任何先验知识或配置(有关更多详细信息,请参阅第 2 章)。但需要明确的是,LDAP 不要求在形成目录名称空间时使用 DNS。借助 DNS 等名称解析服务,客户端可以在网络上找到目录服务器。可以使用其他名称解析服务来定位 LDAP 服务器;然而,趋势无疑是通过对 DNS 命名空间的依赖来实现 LDAP。这样做的好处大于其他选择,但也有不这样做的理由。这些原因通常仅限于单独使用的 LDAP 目录。

The root of the directory has a name

Figure 1-5 显示了 Mycompany 目录的简单版本。目录根的名称称为目录的基本 DN。目录根不一定是目录条目。服务器的基本 DN 通常与目录服务器的 DNS 名称相匹配,并使用域组件 (dc) 属性来表示 DNS 区域。但是,服务器的基本 DN 不必与服务器的 DNS 名称一致。目录服务器的基本 DN 可能不同,以便在跨多个目录服务器设计分布式目录体系结构时提供更大的灵活性。通过命名空间创建分布式目录的灵活性是 LDAP 优于数据库的关键优势。第 2 章介绍了分布式目录体系结构背后的一些基本概念,例如引用、复制和名称空间的全部细节。第 5 章介绍分布式目录体系结构模型,以及集成目录的问题和解决方案。

Figure 1-5. Person and part records with DNs in an LDAP directory that integrates with the DNS namespace

image.png

DN 是条目的名称

但是您如何引用我的 LDAP 目录中的条目呢?目录中的每个条目都有一个唯一的名称,称为专有名称 (DN)。每个条目还有一个在其直接容器本地的名称,称为相对识别名称 (RDN)。 RDN 在该容器中的所有条目中是唯一的。现在,将容器想象成类似于文件系统中的目录或文件夹;第 2 章更详细地介绍了容器。每个条目的 DN 是通过将条目的 RDN 与条目和目录根之间的容器的 RDN 连接起来形成的。 DN 中的 RDN 之间有一个逗号。 DN 和 RDN 都不是条目的属性,但 RDN 由条目的属性之一组成。

The RDN is the local name of an entry

RDN 是属性类型和值对。更准确地说,它可以是在条目的直接目录容器中唯一的任何属性对(或属性组合)。 RDN 在整个目录中不必是唯一的。可以将RDN与主机名进行比较,比如myserver,它在mycompany.com DNS区内是唯一的,但在全球所有DNS区中不一定是唯一的。

Example to illustrate DN usage

图 1-5 中显示的人员条目的 DN 可能是 cn=Brian Arkills,ou=People,dc=mycompany,dc=com 而不是 uid=barkills,ou=People,dc=mycompany,dc=com。请注意,每个 RDN 组件都包括属性类型和值。例如,单个组件 cn=Brian Arkills 同时具有属性类型 cn 和属性值 Brian Arkills。没有属性类型的属性值不足以区分条目,因为该值可能引用许多条目的不同属性类型。图 1-5 中条目的通用名称 (cn) 是 Brian Arkills。请注意,cn=Brian Arkills 在容器 ou=People 中的所有条目中必须是唯一的,才有资格成为 RDN。正如您可能意识到的那样,无法保证人名的唯一性,因此通常使用另一个属性作为 RDN。 Mycompany 可能会选择用户身份 uid=barkills 作为条目的 RDN,因为登录 ID 在 Mycompany 中是唯一的。 DN uid=barkills, ou=People,dc=mycompany,dc=com 指的是目录命名空间中与上述 DN 完全相同的记录。第二个 DN 只是使用不同的 RDN 来标识所需的条目,其中 the uid 是我的用户身份或帐户名。

基于图 1-4 中标注的所需集成,Mycompany 的目录命名空间可能类似于图 1-6。为简单起见,几乎没有显示任何目录条目,但显示的每个容器(空心圆)都有条目(实心圆)和可能的其他容器,用于进一步组织或委派。例如,People 命名空间可能按部门用容器划分,整个销售部门在一个容器中,整个工程部门在另一个容器中。图 1-6 中所示的布局可以采用不同的方式实现,但仍能满足所需的集成要求。

Figure 1-6. Mycompany directory namespace
image.png

LDAP’s namespace provides many advantages

LDAP 使用的命名空间有很多好处。首先,它提供了一种命名模型,该模型可以唯一标识条目,但很灵活,因为多个名称可能是有效的。其次,它具有内在的等级性。这允许具有相同命名属性的条目存在于不同容器的目录中。它为管理委派、访问控制的应用和数据组织提供了一种工具。第三,它通常利用 DNS,这使 LDAP 目录在与其他技术集成以及从任何地方进行服务位置解析方面具有优势。第四,名称空间允许 LDAP 跨多个服务器分发目录。有关此主题的更多详细信息,请参阅第 5 章。此好处很重要,因为更高的可靠性、分布式负载和本地化目录数据是可以从该发行版中实现的额外好处。

Protocol

LDAP is primarily a set of server operations

LDAP 的核心是定义一组服务器操作(目录访问协议),用于操作目录存储的数据。但是 LDAP 还有许多其他方面,人们正在努力开发可能添加到包含 LDAP 的公认 Internet 标准中的标准草案。其中一些扩展可能包括管理数据存储在 LDAP 目录中的方法的规则、协议和服务器操作的扩展、安全客户端授权的标准、确保目录可靠性的体系结构等。

Client-Server Model

TCP/IP is required for LDAP

作为一种 Internet 协议,LDAP 使用 TCP/IP 进行通信。对于能够连接到 LDAP 目录的客户端,它必须打开与 LDAP 服务器的 TCP/IP 会话。 LDAP 最大限度地减少了建立会话的开销,允许来自同一客户端会话的多个操作。它还通过压缩提高了流量效率,因为存储在目录中的大部分数据都是离散的基于文本的信息。 LDAP 使用 BER 编码对在服务器和客户端之间传递的属性值数据进行编码。这种过于复杂的编码方法是从 LDAP 的 X.500 roots 中保留下来的。

Any LDAP client can speak with any LDAP server

有趣的是,这组 LDAP 操作一一对应于一组不同语言的标准应用程序编程接口 (API)。 API 是程序员在编写软件时可以使用的一组函数。这些功能通过向使用它的人隐藏代码的混乱内容来提供更高级别的可交付成果。一些 API 是闭源的,这意味着内部是有意向所有人隐藏的。其他的是开源的,这意味着任何人都可以查看详细信息,甚至可以贡献改进。 LDAP API 都是开源的。对于来自 LDAP API 的函数示例,以用于添加条目的服务器操作为例。在 C 语言 API 中有一个标准的 LDAP 函数 ldap_add(),应用程序可以使用它来请求服务器执行添加操作。类似地,标准 API 为 LDAP 规范定义的每个服务器操作定义函数。任何使用 LDAP API 与 LDAP 服务器交互的应用程序都称为启用 LDAP。 API 的标准 C 语言版本记录在 RFC 1823 中。

Clients

The LDAP client can be standalone or integrated software

LDAP 客户端可以是一个独立的软件,用户可以通过输入所需的语法来与之交互,也可以是一个集成的软件,其中大部分操作都是自动化的,语法要求对用户隐藏。例如,Windows 2000 操作系统已将 LDAP 客户端功能集成到它的几个核心应用程序中。在 Windows 2000 中,您可以从“开始”菜单中选择“搜索”选项,然后在计算机所连接的 Microsoft Active Directory(即 LDAP 服务器)中查找个人或打印机条目。有许多支持 LDAP 的网站提供了一个单一的界面(有时称为门户)供人们用来搜索和修改他们公司的 LDAP 服务器中的条目。除了这些网站之外,大多数现代浏览器都支持 LDAP 协议,并且是功能完备的客户端,用于从 LDAP 检索信息。集成的灵活性是许多软件公司采用 LDAP 协议的主要原因之一。

The open standards model means LDAP is very easy to integrate

当您意识到任何 LDAP 客户端或启用 LDAP 的应用程序都可以成功地与任何 LDAP 服务器通信时,无论客户端或服务器的特定操作系统如何,LDAP 开放标准的优点就会变得显而易见。开放标准、多平台模型使集成变得容易,而在一个使集成变得困难的市场中。这意味着在复杂的非同类操作系统环境中实施 LDAP 比实施其他技术容易得多。

Operations

LDAP has only ten operations, and this is good

有十个 LDAP 操作。有限的操作数量非常重要,因为与目录交互的客户端程序比与其他类似技术交互的客户端程序简单得多。这些操作可以分为三个基本类别和一个离群值,如下所示 Table 1-1

Table 1-1. LDAP operations
image.png

扩展操作在操作中是唯一的。扩展操作是特定目录实现的占位符,用于扩展协议的功能,但仍然具有这样做的预定义语法。 LDAP 设计者通过包含扩展操作表现出很多深谋远虑。通过标准化扩展操作功能的方法,他们消除了有限数量操作中的任何感知责任。

Session operations affect how the client interacts with the directory

客户端会话操作有助于控制来自该客户端的所有后续 LDAP 操作请求的客户端-服务器会话上下文。绑定和解除绑定操作允许客户端与目录建立身份。目录可以使用此标识来确定执行其他操作的授权,并可用于控制对目录信息的访问。放弃操作允许客户端取消未完成的操作请求。

Query operations allow data to be found and retrieved

查询操作允许客户端在目录中查找信息。大多数 LDAP 新读者需要知道如何智能地搜索 LDAP 目录。搜索操作是最常用的,使用它的技巧将具有反复的价值。搜索操作有很多参数,实际上比任何其他操作的参数都多。然而,这种更高的复杂性是值得的,因为它允许用户在搜索目录中的数据时指定复杂的查询。由于搜索操作的重要性,请务必仔细阅读第 3 章中提供的详细信息和示例。比较操作允许客户端请求验证与条目相关的信息。客户端发送条目的声称值,如果匹配则服务器响应成功,否则响应失败。

Modification operations allow a variety of changes to be made

修改操作允许客户端更改目录中的信息。这些操作在某些情况下可能会受到限制,例如,在公共只读目录的情况下。在这些操作中,modifyRDN 操作是唯一需要进行简要说明的操作。 modifyRDN 操作允许客户端更改条目的名称并可能将条目移动到不同的容器。

Referrals and Unicode support extend the functionality of LDAP

LDAP 的另外两个值得注意的协议功能是引用和 Unicode UTF-8 支持。引用允许 LDAP 服务器将客户端重定向到不同的 LDAP 服务器以定位客户端请求的数据。此功能支持目录服务器甚至独立目录之间的集成或协作。 Unicode 是一种在特定于语言或区域设置的字符集中表示数据的特定方法。这意味着如果使用 Unicode 对数据进行编码,则可以表示任何书面语言。并非所有数据都以 Unicode 表示;例如,您可能听说过 ASCII 编码。以 ASCII 编码的数据不允许表示世界上的大多数语言。 Unicode 支持将 LDAP 的实用性扩展到几乎任何语言,使 LDAP 成为全球解决方案。有关 LDAP 协议的详细信息,请参见Chapter 3

Schema

The schema defines the rules

没有规则的游戏是混乱的,并且受制于玩家的突发奇想。流行连环漫画卡尔文和霍布斯的“Calvinball”游戏热情地展示了没有规则的生活是如何失控的。在这场比赛中,卡尔文和霍布斯一边玩一边编造规则,这不可避免地导致了灾难。定义目录中条目类型的规则集称为架构。如果特定对象类不在架构中,则无法创建包含该对象类的条目。您扩展模式以包括新的对象类或允许现有对象类的新的可选属性。该模式进一步定义了相关规则,例如什么类型的值可以放在属性中,以及哪些运算符对这些属性有效。运算符是目录用来将一个属性的数据值与另一个值进行比较的内容。大于、小于和等于是常见数据运算符的示例。


LDAP 是目录的最终定论吗?可能不会。事实上,有证据表明 XML 标准的 Web 服务运动可能会给目录的未来带来一些重要的东西。一种称为 DSML 的新标准正在出现。然而,该标准假定存在 LDAP 目录。也许在未来它会超越这一点。有关 DSML 的详细信息,请参阅Chapter 5

Schema Checking

All new entries must pass the schema-checking process

在您的目录中添加任何新条目都要经过模式检查过程。如果任何数据不符合适用的定义,则整个条目的添加将失败。图式是不可忽视的东西——它有咬人的牙齿!某些 LDAP 实现允许您关闭此架构检查,但这样做并不明智。数据将失去其一致性。

Default Schema

The LDAP schema comes from X.500.

LDAP 标准所需的最小架构对象集(如 RFC 2252 和 2256 中所列)将为 Mycompany 提供一个功能目录。最小 LDAP 模式主要由一组 X.500 定义的模式对象组成,并遵循 X.500 模式的基本规则。这就是为什么这么多 LDAP 产品也可以兼容 X.500 的关键原因。目录供应商负责实施这一最小模式对象集,因此您只需熟悉这些模式对象是什么以及如何使用它们。大多数利用目录的软件供应商发现这个最小集合不足以满足他们的目的,并使用他们自己的定义进一步扩展模式。

Extending the Schema

Schema syntax is hard to read, but it is very flexible

尽管模式因其语法格式而显得晦涩难懂,但它也是 LDAP 大部分灵活性的来源。 Mycompany 的目录可以实施模式扩展以包括公司认为必要的任何类型的数据。该架构还允许您定义与目录交互的新方式以及使用数据的新方式。第 4 章考虑其他人认为重要的模式扩展。

The schema is published so clients know what is supported

LDAP 发布目录架构,因此任何客户端都可以确定服务器使用的定义和规则。模式发布的位置存储在每个条目中,此信息告诉您在哪里查找模式。该位置称为根 DSE(目录系统代理特定条目)容器。大多数 LDAP 目录都有一个适用于整个目录的模式,因此所有条目的位置都相同。一些 LDAP 服务器可能允许为目录的不同部分定义唯一的模式。

Here is a sample schema definition for the personobject class:

person OBJECT-CLASS ::= {
   SUBCLASS OF { top }
   KIND abstract
   MUST CONTAIN { sn, | cn}
   MAY CONTAIN { userPassword | telephoneNumber |
        seeAlso | description }
   ID 2.5.6.6}

If your curiosity is piqued, see Chapter 4, which addresses the schema in more detail

Management

集中组织在 LDAP 目录中的信息有助于管理。事实上,LDAP 目录可以成为 IT 管理的中心。图 1-4 显示了 LDAP 目录对 Mycompany.com 的重要性,您可以很容易地想象这种体系结构如何使管理任务变得更容易。因此,对 LDAP 目录管理功能的支持非常重要。非常需要易于使用或提供简化集成方式的管理功能。 LDAP 标准未解决某些目录管理功能。例如,LDAP 将在服务器上存储和检索数据的实现留给了供应商。通常,使用专门的数据库。此功能可以引入各种管理任务和功能,具体取决于选择的软件组件。在大多数情况下,管理工具最好留给供应商和市场驱动的竞争。


架构看起来复杂乏味吗?
在大多数情况下,它既复杂又乏味。不要低估模式的重要性。您可能会觉得模式很无聊,而且语法不值得学习。然而,LDAP 使用的模式是 LDAP 最重要的特性之一,因为它允许您设计数据的表示方式、允许的数据、允许的位置以及可以对该数据执行的附加操作。 LDAP 的其他领域可能很华丽,但它们都从模式中的定义派生出它们的功能。如果没有 LDAP 与模式一起使用的灵活模型,很多浮华和所有的可扩展性都会消失。

Distributed Directory

The LDAP standard leaves the implementation of replication to vendors.

拥有一个容错目录对 Mycompany 非常重要,因为该公司希望该目录成为关键业务数据和流程的中心焦点。大多数供应商都实施了某种形式的复制,以允许将部分目录复制到多个服务器。使用复制可以跨多个 LDAP 服务器复制一个目录或目录的一部分。通过复制进行分发具有多项优势,包括负载分发和防止数据丢失。有关复制的更多详细信息,请参阅Chapter 5

A distributed directory has many advantages

然而,复制并不是拥有分布式目录的唯一方式。不同的 LDAP 服务器可以托管目录命名空间的不同部分,并引用其他 LDAP 服务器。名称空间可以按任何需要的方式划分。这种类型的分发具有优势,例如将有关欧洲办事处的信息存储在位于该办事处的 LDAP 服务器上。这将减少对地理位置之间长距离连接的依赖。另一个优势可能是允许政治上不同的部门运行他们自己的服务器。这将使每个部门认为自己拥有的信息能够单独管理。 LDAP 在命名空间方面提供的灵活性有利于简化管理。

Integration and Data Manipulation

集成来自rogue部门或合并的独立 LDAP 目录和服务器将进一步增强 Mycompany 目录的价值。如前所述,LDAP 支持允许一个 LDAP 服务器引用另一个的引用。这些引用可用于连接服务器。通过其他方法进行集成对于保持数据在整个组织中的一致性和权威控制也至关重要。其他一些方法见Chapter 5.

LDIF and other features allow duplication of data between servers

还有一个 LDAP 标准允许在服务器之间复制目录数据。 LDAP 数据交换格式 (LDIF) 标准为目录管理员提供了一种以文件格式在服务器之间移动目录数据的方法。 LDIF 标准还为管理员提供了一种使用搜索和替换文本操作工具对许多条目进行批量修改的方法。有关 LDAP 在该领域提供的解决方案的更多详细信息,请参阅 Chapter5

Security

Authentication, authorization, and encryption are needed to secure information

“安全”一词在计算机行业中的使用具有广义意义。在讨论计算机安全时,通常会关注两个方面:身份验证和授权。身份验证是证明我们是我们所说的人的手段。授权是指定用户访问权限的手段。当我们增加在网络上操作的复杂性时,就会出现第三个关注领域:隐私。隐私是确保数据安全的一种方式,以便数据仅供指定对象使用。通常使用某种形式的加密来保护数据的私密性。

LDAP supports cleartext, Kerberos, and SASL for authentication

LDAP 支持多种身份验证方法。 LDAP v2 和 v3 都支持简单身份验证(明文)、Kerberos 和数字证书。 LDAP v2 支持 Kerberos v4,而 LDAP v3 通过简单身份验证和安全层 (SASL) 添加了对 Kerberos v5 的支持。您可以在 RFC 1510 和 1964 下找到 Kerberos 的标准名称。LDAP v3 也支持 SASL。 SASL 提供了一种向任何协议添加身份验证机制的方法。这种机制的例子是 Kerberos 5 和 DIGEST-MD5。 SASL 标准名称在 RFC 2222 中指定。LDAP v3 将安全套接字层 (SSL) 的后继传输层安全性 (TLS) 标识为使用数字证书进行身份验证的方式。 TLS 记录在 RFC 2246 中。鉴于 LDAP 是 Internet 标准,您可能不会对 Kerberos、SASL 和 TLS 也是 Internet 标准感到惊讶。

Implementation of authorization is left to the vendor

目前,LDAP 没有授权规范。通过授权或访问控制,您可以控制对条目甚至属性的访问。您可以允许或拒绝特定用户或用户组访问条目。访问级别因权限级别而异,例如能够读取或写入条目。因为在 LDAP 标准中没有关于授权的协议,供应商只能实现他们自己的授权模型。 IETF 正在就此主题进行讨论和工作,因此将来这可能成为 LDAP 标准的一部分。缺乏标准化意味着这是 Mycompany 在选择供应商时希望仔细审查的领域之一。

LDAP supports SSL and TLS for data encryption privacy.

LDAP 还支持隐私会话加密。在客户端-服务器会话期间传递的所有信息都可以加密,从而阻止窃听者。支持 SSL 和 TLS。 TLS 是 SSL 的后继者,可以认为是 SSL v3.1。 SSL 和 TLS 都是基于公钥证书技术,这取决于服务器是否拥有来自受信任的证书颁发机构服务器的证书。此外,客户端可以获得证书,并且在某些情况下将它们用作有效的身份证明(身份验证)形式。尽管此要求可能会造成一些障碍,包括证书管理,但由此产生的安全性被认为是值得的。加密会话可以为通过线路传递的目录信息提供隐私。您组织目录中的信息可能是您拥有的一些最敏感的数据,可能是个人数据和专有数据,您的组织不希望为了外人的利益而“明文”传递这些信息。如果简单身份验证(明文)是特定客户端唯一可用的身份验证方法,则会话加密至关重要。


LDAP 是否提供安全性?
我经常与那些将 LDAP 混淆为安全问题的通用解决方案的人交谈。人们认为“LDAP”是一个安全流行语。 LDAP 是一种目录技术,而不是一种安全技术。 LDAP 目录通常使用 Kerberos 等安全技术来提供对目录的安全访问,它们还可以用于存储与安全相关的信息,例如 X.509 证书或授权信息。但是 LDAP 本身不提供任何安全服务。在我将安全性与它相关联之前,LDAP 作为标准或协议仍有发展空间。不要误会我的意思,在大多数产品中它是相对安全地实现的。但是,IETF 应该对供应商已经实施的许多安全功能进行标准化。此外,该协议应该需要一些输入流验证机制,这样客户端就不能通过缓冲区溢出或其他问题将命令传递到目录服务器。

Vendor LDAP Products

    Part II covers several of the most popular LDAP products. A few notes about the trends and diversity of

offerings are worth mentioning here.

Vendors often use a directory to enable their network operating system

一种强烈的趋势是供应商使用 LDAP 来支持他们的网络操作系统 (NOS)。这是创新的,并提供了很好的机会来集成许多基础设施服务和 LDAP 的所有好处。然而,这些公司的产品通常会限制与供应商软件套件之外的产品的集成。当您必须使用供应商的 NOS 来使用 LDAP 目录时,情况会变得更糟。集成很好,但没有自由选择最佳组件的集成就不是集成。

LDAP has a strong open source movement.

贯穿 LDAP 历史的另一个趋势是开源运动。鉴于之前的趋势,这一走势很重要。开源运动有助于确保某些最低级别的集成保持标准,反过来又对供应商施加压力,要求他们与其他供应商合作。开源 LDAP 软件提供了选择组件和消除对单一供应商的依赖的能力。

There are a lot of LDAP product offerings available.

最后一个需要注意的趋势是,几乎每个大型软件公司都提供 LDAP 目录产品。此外,一些小公司也提供 LDAP 目录产品。这种产品的多样性对消费者来说非常好,因为它提供了更多的选择,并且意味着供应商必须提供真正的竞争优势来吸引我们的注意力。表 1-2 列出了大多数 LDAP 服务器产品。

Why Choose LDAP?

The reasons to use LDAP are overwhelming. Simply put, LDAP is the best show in town if you want to use a
directory. Consider the many companies and organizations that have already adopted the technology. Benefits
1-2 summarizes a list of advantages of LDAP, but you probably are already familiar with them. This list,
together with Benefits 1-1 and Figure 1-4, would make a good start on justification for deploying a directory.

image.png

Benefits 1-2 Summary of LDAP Advantages

[1] 条目以不同的层次结构组织。这提供了委派管理、应用访问控制和享受其他信息管理优势的方法。甚至条目的名称也会揭示有关该条目的信息

[2] 一项的属性可以有多个值。不需要扩展条目的结构来允许附加数据。一个条目也可以有多个名称,每个名称在整个目录中都是唯一的

[3] LDAP 目录可以分布在多个服务器上。此设计分配负载并提供其他管理优势

[4] LDAP 是一种开放标准,具有多平台支持。任何平台上的 LDAP 客户端都可以与任何 LDAP 服务器通信。因此,对单一供应商的依赖较少。

[5] LDAP 客户端需要很少的资源来运行,并且可以很容易地集成到其他软件中。 LDAP 操作数量很少,这使得与目录交互变得容易。会话流量经过编码并使用 TCP,因此网络通信是经济的。

[6] LDAP 具有适用于多个平台的标准化 API。因此,您的开发人员在开发新应用程序时可以利用目录中的信息,而不必重建此信息。这节省了金钱和时间,同时开辟了基于对以前不可用的数据的访问的新的跨功能应用程序的可能性。

[7] LDAP 提供与现有标准的轻松集成,因为 LDAP 使用其他公认的标准,包括 TCP/IP 和 DNS。集成方法与其他标准的标准化是一个持续的过程。后面的章节记录了这个过程的结果。

[8] LDAP 支持强身份验证和加密方法。

[9] LDAP 使用 Unicode UTF-8,因此几乎可以表示任何语言字符集。这使得 LDAP 目录能够支持本地语言的国际组织。

[10] LDAP 采用可扩展模式,允许添加更多操作性。操作和数据必须符合模式,从而提高数据质量。

[11] LDAP 的用途正在不断扩展,因为人们普遍认为它是目录服务的未来。

Cross-technology integration has become a strength of LDAP

大多数组织现在都在采取下一步行动,寻找将 LDAP 与现有技术集成的更多方法。此步骤扩展了在 LDAP 中所做投资的用途和价值。有许多利用其他技术来扩展 LDAP 用途的示例。这是因为 LDAP 基于一个明确的标准,可以轻松地与其他现有标准集成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值