LDAP解释:从区分名称到用户身份验证
组织常常依赖于LDAP(轻量级目录访问协议)来进行重要的用户管理、存储和认证。
然而,这可能会让用户感到困惑,导致他们将其与Active Directory混淆。
在本文中,我们将介绍LDAP的定义、目的和工作原理。然后,我们将回顾其主要功能、目录结构和数据组织能力。最后,我们将介绍LDAP在管理目录服务和user authentication中的重要性。
LDAP是什么?
LDAP是轻量级目录访问协议(Lightweight Directory Access Protocol)的缩写。它是一个开放协议,用于管理本地目录的安全用户认证。此外,它是一个供应商中立的应用协议,使其在Internet上的分布式目录信息服务中具有多种用途和普适性。
LDAP可以高效地使应用程序查询用户信息。这意味着它可以在IT基础设施服务中的多种方式中工作,包括电子邮件服务、授权、许可证管理和用户管理。
但是,它不应与活动目录服务混淆-一组企业用于组织、访问和保护IT资产的服务/数据库。基本上,目录服务使组织能够存储描述性、静态和有价值的数据。
从技术上讲,LDAP归因于目录服务中的数据表示的完整过程。它确保用户可以以预定义的方式获取数据。这意味着LDAP使组织能够通过其工具在目录服务中创建数据条目。
因此,在Active Directory中,LDAP还确保了如何基于不同的基本元素轮廓组成条目。
简而言之,LDAP是:
- 通信协议
- 它是一个开放的供应商中立的应用协议
- 软件协议存储和安排数据以便易于搜索
- 与本地目录一起工作
- 与包含静态、描述性和有价值数据的Active Directory一起工作
- 它不是一个新协议,已于2003年发布
它的目的是什么?
LDAP的目的围绕两个方面:
- 在LDAP/Active目录中存储数据
- 验证用户对该目录的访问
- 使应用程序能够使用适当的通信语言从目录服务发送和接收数据。
换句话说,它充当了一个通信协议,不仅能够进行身份验证和授权,还能以可搜索的方式组织数据。使用LDAP,组织可以存储关键的用户和IT资产信息,包括用户凭据。此外,它可以通过使管理员能够主动设置访问规则来确保安全访问。
LDAP的工作原理是什么?
在LDAP的核心是客户端-服务器架构。
因此,当进行LDAP身份验证时,它遵循客户端-服务器模型。在此过程中,关键参与者包括以下内容:
- 目录系统代理(DSA):在特定网络上运行LDAP的服务器。
- 可辨识名称(DN)包含导航目录信息树(DIT)的路径。
- 目录用户代理(DUA):DUA用作客户端访问DSA。
- 相对可辨识名称(RDN):RDN指定DN路径中的每个组件。
- 应用程序编程接口(API):我们有用于服务和产品之间通信的API。
在LDAP身份验证过程中,当用户启动LDAP客户端程序(如电子邮件应用程序)时,管理员可以配置LDAP客户端与目录服务的身份验证交互方式。例如,它可以使用两种可用的用户身份验证方法之一:
– 使用Kerberos的SASL身份验证
– 使用登录凭据的简单SSO authentication
在登录尝试中,请求DN身份验证。一旦进程开始,LDAP将客户端分配给目录系统代理(DSA),后者使用DN在数据库中搜索匹配记录。
DN中的相对区分名称(RDN)是LDAP搜索的关键部分,因为它在整个通过目录信息树(DIT)进行的搜索过程中都被使用。
如果搜索成功,则匹配的UID和用户密码将匹配以验证用户。如果不成功,它将返回无效结果。
最后,客户端从LDAP服务器解除绑定。完成后,经过身份验证的用户可以通过API与服务进行通信。这意味着他可以浏览所有存储的信息 – 唯一的限制是授予的权限。
如果您想了解更多关于LDAP的工作原理,请查看Greg Vaneder和Mark Wahl于2003年发表的paper。如果您想了解更多关于LDAP搜索操作的内容,请查阅The LDAP Search Operation。
LDAP的主要特点如下:
– 验证用户会话:用于对用户会话进行身份验证,例如Active Directory等数据库服务。
– 不同的操作类型:还可以对目录服务器数据库执行操作,包括
– 绑定会话
– 删除LDAP条目
– 修改现有条目
– 搜索和比较条目
– 放弃请求
– 解除绑定操作
– 轻量级:LDAP是轻量级的,对网络和系统资源的开销很小。
– 供应商和协议独立:LDAP也是供应商和协议独立的。这意味着它可以与任何供应商/解决方案/协议配合使用。例如,您可以使用TCP/IP或X.25上的LDAP。但是,最新的LDAP版本LDAPv3使用TCP/IP。
– 目录结构:LDAP使用目录树结构来存储和访问目录数据库中的资源。父子关系意味着更快的搜索和检索。
– 标准化:LDAP由IETF(互联网工程任务组)标准化。标准化确保LDAP在不同供应商之间正常工作。
– 安全性:LDAP是安全的。它通过在TCP/IP层上使用安全的TLS来实现安全性。它还可以使用安全套接字(SSL)对信息进行加密、解密和远程传输,确保完整性和机密性。
– 复制:LDAP还支持多个服务器之间的复制。它确保数据冗余,并在任何故障的情况下提供数据可用性。它使用Syncrepl – 一种同步复制引擎。
LDAP目录结构如下:
– 根目录
– 国家
– 组织
– 组织单位
– 个人
LDAP目录具有清晰明确定义的结构。这使得数据易于访问,并增加了LDAP目录内容的可搜索性。
由于LDAP遵循树状结构,因此它是分层的。这就是为什么它主要被视为目录信息树(DIT)的原因。
LDAP目录结构的不同级别包括:
– 根目录
– 国家
– 组织
– 组织单位
– 个人
正如您所看到的,在LDAP目录中存在树状结构。 “root”目录是顶级条目,包含目录级别中的所有其他条目。在其下方,您可以看到Country(countries),然后分支出Organization(s)。
接下来,它分支到组织单位(OU),最后是个人和组。
为了理解LDAP目录结构,让我们来看下面的一个例子。
- Root(顶级条目)
|
+-- Country:"dc=com"(例如,dc=example,dc=com)
|
+-- Organization:"dc=example"(例如,dc=example)
|
+-- Organizational Unit(OU):"ou=Users"
| |
| +-- User:"cn=Nitish Singh"
| |
| +-- User:"cn=Oliver Green"
|
+-- Organizational Unit(OU):"ou=Groups"
|
+-- Group:"cn=Admins"
|
+-- Group:"cn=Users"
|
+-- Group:"cn=Superusers"
根实体是用DC来标识的,DC代表Domain Component属性。因此,如果是“dc=com”,根条目将被标识为“com”域。
在根目录下,可以有多个组织或域。它由“dc=organization”表示,位于“com”域下。
类似地,每个组织可以具有一个或多个组织单位(OU)。管理员可以将它们逻辑地组织成子部门。例如,您可以将OU设置为“users”,“groups”或“superusers”。
最后,在每个OU下,您可以列出不同的条目,包括组,设备,用户等。在我们的例子中,OU users的两个值包括“Nitish Singh”和“Oliver Green”。同样,OU Groups下有“Admins”,“Users”和“Superusers”。
LDA目录结构严重依赖于Distinguished Name(DN),因为它用于标识每个条目。这是因为它包含一个唯一名称,并用于检索相对专有名称(RDN)。
LDAP常见元素
为了理解LDAP数据组织,我们需要了解LDAP的常见元素,这些元素构成了LDAP系统的条目。
基本的LDAP数据组件包括:
- 属性:
- 条目:
- 数据信息树:
属性
LDAP中的属性是键值对。它们在LDAP系统中存储数据。例如,mail属性必须用于在LDAP系统中存储邮件。
mail: [email protected]
条目
LDAP系统中的条目与属性相关联,以提供含义。您可以将条目视为相关属性的集合。
例如,以LDIF(LDAP数据交换格式)格式的数据将如下所示:
dn: sn=Hogwarts, ou=wizards, dc=WizardingWorld, dc=fiction
objectclass: wizard
sn: Hogwarts
cn: Harry Potter
数据信息树
数据信息树(DITs)表示并访问LDAP系统中的数据。由于大多数数据是分支的,通过树来表示它们是有意义的。它类似于具有父子关联的文件系统。
LDAP数据组织
现在有了实体的基本概念,我们可以探索LDAP系统中的数据组织。
在这里,LDAP利用DIT组织和结构化数据。然而,它是如何实现的呢?让我们在下面讨论一下。
为了将相关联的条目以分层的方式放置在DIT中。因此,当创建新条目时,它会作为现有条目的子级添加到树状结构中。
它所有的开始都在DIT的层次结构树的顶部。因为它涵盖了所有子条目,所以主要标记为组织,比如“dc=com”或example。这是使用域组件来确保简单管理的。
这样,管理员可以使用l=location_name或组织部分(例如ou=tech,marketing等)来设置位置。
条目使用组织单位(OU)objectClass。这是因为条目可以使用属性标签ou=。它们简单且提供了在DIT中对信息进行分类和查找的绝佳方式。
接下来是另一个重要概念,即相对可分辨名称。它是一个元素的相对名称,取决于其DIT层次级别。因此,要访问一个条目,您需要输入实体的RDN值以及父级的RDN值。
这样创建了一系列的RDN值,从底部到顶部,创建了到该条目的路径。而这个RDN值链被称为“可分辨名称或DN”。
换句话说,在创建条目时,您必须提及DN,这样LDAP就能准确地知道您需要将新资产或信息放置在哪里。因此,RDN充当相对值,而DN更像是一个绝对路径。
LDAP的重要性
在本节中,我们将从两个角度探讨LDAP的重要性:
- 管理目录服务:LDAP协议具有适当的手段来存储和访问LDAP目录数据。LDAP是一种管理、存储、访问和保护数据的手段。它还确保了高效的信息检索。此外,它还提供了可扩展性和复制性。
- 用户身份验证:除了管理目录服务外,LDAP在用户身份验证和授权方面表现出色。一旦建立连接,用户可以根据管理员设置的访问规则访问存储的资产。
LDAP vs. Active Directory
人们常常将LDAP和Active Directory混淆。LDAP和微软的Active Directory紧密合作,为组织提供了一种安全地存储和访问组织数据的手段。
因此,LDAP是一种通信协议,而Active Directory是一种以树状结构存储组织数据的目录服务产品。
LDAP充当了访问目录服务器(如Active Directory)的通信协议。
结论
LDAP是与活动目录服务一起工作的关键协议。它是一种轻量级协议,在与其合作的服务和服务器上不会产生任何开销。此外,它的开源、供应商中立和标准化的特性意味着它可以轻松集成到现有解决方案中。
您还可以探索一下(MFA)。