快速跳转

什么是轻量级目录访问协议(LDAP)身份验证?

复制 URL

轻量级目录访问协议(LDAP)是一种可帮助用户查找关于企业和人员等数据的协议。LDAP 有两大工作目标:一、将数据存储在 LDAP 目录中;二、对要访问目录的用户进行身份验证。它也为应用提供所需的通信语言,以便从目录服务收发信息。借助目录服务,用户可以访问网络中的企业、个人信息和其他数据的存储位置

LDAP 最常见的用法是提供一个集中位置来访问和管理目录服务。LDAP 让企业能够存储、管理和保护与该企业、其用户和资产有关的信息(比如用户名和密码)。它提供分层的信息结构,可以让用户快速、高效地访问存储内容,当企业在扩大规模、吸纳了更多用户数据和资产时,这是一个相当重要的优势。

LDAP 也可充当身份和访问管理(IAM)解决方案来满足用户身份验证的需要,支持 Kerberos 和单点登录(SSO)、简单身份验证安全层(SASL)和安全套接字层(SSL)。

LDAP 是微软的 Active Directory(AD)目录服务中使用的核心协议(但并非是其专用);而 Active Directory 是一个大型目录服务数据库,包含网络中每一用户帐户的信息。更具体地说,LDAP 是目录访问协议(DAP)的轻量级版本,提供一个中央位置来访问和管理在传输控制协议/互联网协议(TCP/IP)上运行的目录服务,其最新版本是 LDAPv3。 

AD 提供身份验证以及用户和组管理,它是最终对用户或计算机执行身份验证的主体。这个数据库中包含的属性数量要比 LDAP 调用的数量多。不过,LDAP 擅长于使用少量信息来查找目录,因此不需要从 AD 提取它的全部属性,而且从哪一个目录服务调取也无关紧要。

LDAP 的主要目标是与 AD 通信,从中提取对象(如域、用户和组等),并以可用格式存储到位于 LDAP 服务器上的专用目录中。

我们可以这样比喻:AD 是世界上最庞大的图书馆,而您想要找一本书名提到丧尸的书。这本书是否在美国出版、是否超过 1000 页,或是否为丧尸末日逃生指南,对于 LDAP 而言都无关紧要——尽管它们确实有助于缩小目标的范围。LDAP 是经验丰富的图书管理员,它知道哪里可以找到满足您要求的所有选项,并且会验证您是否已找到要找的目标。

LDAP 检索是如何发起的?它是如何工作的?

LDAP 身份验证使用的是一种客户端加服务器型身份验证模式,包含以下几个重要组成部分: 

  • 目录系统代理(DSA):作为服务器,在其网络中运行 LDAP

  • 目录用户代理(DUA):作为客户端(例如,用户的个人电脑),访问 DSA

  • DN:即专有名称(Distinguished Name),包含了供 LDAP 检索的目录信息树(DIT)的路径(例如,cn=Susan、ou=users、o=Company)

  • 相对专有名称(RDN):专有名称路径中的各个组成部分(例如,cn=Susan)

  • 应用编程接口(API):通过 API,您无需了解实施原理,也能将您的产品或服务与其他其他产品或服务互通。

当用户尝试访问支持 LDAP 的客户端程序,例如其个人电脑上的商务电子邮件应用,整个 LDAP 流程就开始了。使用 LDAPv3 时,有两种用户身份验证方法:简单身份验证(例如,使用登录凭据的 SSO)和 SASL 身份验证(将 LDAP 服务器绑定到 Kerberos 等程序)。用户尝试登录时,系统会发送一个请求来鉴定分配给用户的 DN。DN 是通过启动 DSA 的客户端 API 或服务器发送的。

客户端会自动绑定到 DSA,LDAP 使用 DN 来搜索与 LDAP 数据库中记录相匹配的对象或对象集合。DN 中的 RDN 在这个阶段非常重要,因为它们会一步一步引导 LDAP 搜索 DIT,以找到所需个体。如果路径在后端缺少连接的 RDN,结果可能会呈现为无效。在本例中,LDAP 搜索的对象是个人用户帐户(cn=Susan),它只有在目录中的帐户有匹配的 uid 和 userPassword 时才会验证用户。用户组在 LDAP 目录中也被看做是对象。

一旦用户收到回复(无论有效或无效),客户端会从 LDAP 服务器解绑。然后,通过验证的用户可以访问 API 及其服务,包括所需的文件、用户信息和其他应用数据,具体取决于系统管理员授予的权限。

LDAP 采用轻量型结构并且使用了 DIT,因而能快速运行 LDAP 搜索并提供搜索结果。想要顺利浏览 LDAP 服务器并理解 LDAP 搜索的工作原理,了解 DIT 至关重要。

DIT 能够让用户快速浏览不同层级的 LDAP 目录,以缩小搜索结果范围并提供对查询的回复。DIT 以根目录开头,后跟国家或地区,然后划分为两个子类:域名(dc)和组织名称(o)。

域名(dc)

dc(例如,dc=com、dc=example)使用域名系统(DNS)映射来查找互联网域名并将其转译为 IP 地址。

大多数用户不知道他们搜索的个体的域名和/或 IP 地址。这时,LDAP 使用分配给用户的专有名称(DN)作为路径,以快速浏览 DIT 并找到搜索结果。接下来就要使用 o 子类了。

组织名称(o)

o 子类(例如,o-Company)是 DN 中列出的最常用子类之一,通常也是 LDAP 运行搜索时的起始位置。例如,一个简单路径通常以 o 子类开头,分叉到组织单元/部门(ou),后跟用户帐户或组。

组织单元(ou)

如前文所述,ou 是 o 的一个子类,通常表现为 ou=users 或 ou=group,分别包含用户帐户或组的列表。其在目录中可能如下所示:

  • o-Company

    • ou=groups

      • cn=developers

    • ou=users

      • cn=Susan 

通用名称(cn)

通用名称或 cn 用于标识组或个人用户帐户的名称(如 cn=developers、cn=Susan)。用户可以从属于某个组;因此,如果 Susan 是开发人员,则也可能会存在于 cn=developers 下。

属性和值

LDAP DIT 中的各个子类(即 o、ou、cn)包含属性或值,或含有 LDAP 目录相关信息的模式,它们有助于缩小搜索范围。属性有点像地址簿中的条目,有着名称、电话号码和地址等标签,每个属性分配有相应的值。例如,Susan 可能是 name 属性的值。

在 cn=Susan 帐户中,user id(uid)和 userPassword 是属性,而用户的登录凭据则是值。不过,在诸如 cn=developers 之类的组中,Susan 可能有 uniqueMember 属性(例如,uniqueMember=cn-Susan,ou-Users,o-Company)。这会将路径映射到 Susan 的个人用户帐户所处的位置,以及 LDAP 所搜索的信息。用户帐户是 DIT 中的末端,也是 LDAP 最终提取搜索结果的地方。

还有许多其他属性类型和语法可以帮助缩小搜索范围,包括 organizationalPerson(structural)或 personal(structural)等 ObjectClass。不过,为了保持轻量和易用,LDAP 中的属性数量是有限的。

企业网络管理员通常要同时管理成千上万的用户。这意味着,他们要根据用户的角色以及对日常任务所需文件(例如,访问公司内网)的访问权限来分配访问控制和策略。

LDAP 可以简化用户管理过程,节省网络管理员的宝贵时间,并使身份验证过程集中到同一个地方。在您采用 LDAP 之前,务必要思考以下几个问题:

  • 容量:您需要存储的用户管理数据有多少?要考虑实施 LDAP 解决方案的产品是否有足够容量来存储和管理您需要的所有数据。

  • 搜索频率:是不是有用户每天都需要访问的数据,如公司内网、电子邮件应用或服务?如果有,那么 LDAP 应该就很适合您。

  • 条理性:LDAP 中的简单 DIT 能否为您的数据提供足够的整理功能,还是说您需要更加细致周到的系统?

虽然 LDAP 通常在 AD 中使用,但也可用于为其他工具和客户端环境提供用户身份验证,例如 Unix 上的红帽目录服务器以及 OpenLDAP(Windows 上的一款开源应用)。您还可以将 LDAP 的身份验证和用户管理功能用于 API 管理基于角色的访问控制(RBAC),或者 Docker Kubernetes 等其他应用和服务。

红帽® 企业 Linux® 内含集中式身份管理功能,允许您使用跨整个数据中心的单个可扩展接口对用户进行身份验证,并实现 RBAC。

红帽企业 Linux 附带的身份管理涵盖了一系列身份验证和授权功能,例如:

  • 用于 Linux 的域控制器:用户可在这个可靠的集中式身份存储中集中管理所有用户、服务和主机的身份、访问权限和策略。这有助于减轻管理员负担并简化域注册,从而打造一个可信的安全边界。而用户也可以获得流畅的用户身份验证体验。

  • AD 集成:利用红帽企业 Linux 与 Active Directory 之间的原生集成,填补 Linux 和 Windows 之间的用户身份管理缺口。将 Active Directory 用作用户身份的单一数据源,直接将定制的访问控制策略应用到 Linux 域,以提高管理效率并将策略创建集于一处。

  • Kerberos SSO:利用 Kerberos(身份管理和身份验证的核心)简化用户身份验证过程,支持 SSO 用于基础架构。扩展到各项服务,以便无需密码就能完成身份验证,并且支持借助 SSO(基于 Keycloak)进行 Web 身份验证。

  • 系统角色:利用一致且可重复的配置工作流,节省时间和资源。自动化可大幅减轻技术负担,减少与长期部署和身份管理相关的手动任务。

对于具有更专业化需求的用户,红帽也以附加组件形式提供红帽目录服务器。

红帽目录服务器是一个基于 LDAP 的目录,可以面向多元大型环境进行扩展。使用近乎即用型的替代方案来取代成本高昂的现有第三方 LDAP 解决方案,利用一系列复制选项来管理分散而复杂的目录拓扑。此解决方案可为您的目录数据提供可自定义的属性和模式,为您带来灵活性。

Keep reading

Article

Edge computing with Red Hat Enterprise Linux

Red Hat Enterprise Linux extends your hybrid cloud infrastructure to the edge—across hundreds of thousands of nodes all over the world.

Article

Red Hat Enterprise Linux security

Red Hat Enterprise Linux is the world’s leading open source Linux platform, enabling you to mitigate risk, enforce security configuration and policy, and streamline compliance strategy.

Article

Why choose Red Hat for Linux?

Workloads need to be portable and scalable across environments. Red Hat Enterprise Linux is your consistent, stable foundation across hybrid cloud deployments.

详细了解红帽企业 Linux

产品

多面全能、成熟稳定的技术平台,能帮您轻松部署新型应用、虚拟化环境和创建更为安全的混合云。

相关资源

分析师资料

对于 SAP 环境,迁移要考虑的不仅仅只是 Linux

分析师资料

IDC:红帽企业 Linux 对经济效益的影响

培训

免费培训课程

红帽企业 Linux 技术概述

Try Red Hat Enterprise Linux

Red Hat Enterprise Linux Server

A version of Red Hat Enterprise Linux® that orchestrates hardware resources and runs on physical systems, in the cloud, or as a hypervisor guest. 

Red Hat Enterprise Linux for IBM Power

Open source innovation paired with IBM architecture for a stable, hybrid cloud foundation. 

Illustration - mail

获取更多类似的内容

免费订阅我们的 Red Hat Shares 通讯邮件