轻量级目录访问协议(LDAP)是90年代早期开发的一种协议,用于验证需要访问本地资源的用户身份并授予用户访问权限。
之后的几十年中,LDAP 已成为企业 IT 系统以及身份和访问管理 (IAM) 领域的核心组成部分,除了本地功能以外还扩展了基于云平台的新功能,同时为本地用户和远程用户启用 LDAP 身份验证。基于云的 LDAP 则是标准 LDAP 协议的实现方式之一。
本系列文章将介绍 LDAP 的相关基础知识,本期将介绍 LDAP 的基本概念、运行原理以及传统用例。在下期推送中,将深入到基于云的 LDAP、面临的挑战以及在现代 IT 架构中的作用。
1. 什么是 LDAP 协议?
1993 年,LDAP 最早是作为当时常用的 X.500 目录协议的轻量级版本而开发,主要针对 Unix 网络,但后来很快也在其他系统和网络上适用。LDAP 的概念也已经从最初的协议扩展到包括厂商配套的 LDAP 软件、服务器,以及最新的 LDAP 托管服务。
LDAP 并不是新产品,也可以说是历史悠久,但因其灵活性、稳定性和与特定应用的兼容性,目前仍然被广泛使用。而且在特定应用、存储系统、Linux 服务器等场景中仍然是首选协议。
2. LDAP 的运行原理
LDAP 协议将企业目录中的数据进行存储和索引以便其可被搜索,并且支持 LDAP 服务器与本地网络中的客户端、设备和用户进行通信。LDAP 中可进行添加、删除、修改和搜索 LDAP 目录信息,及身份验证和授权等操作。一旦用户输入了正确的用户名和密码,LDAP 就会对其进行身份验证并授权其访问各种 IT 资源,包括文件、应用、服务器、网络设备等支持 LDAP 的资源。
LDAP 将数据存储在名为目录信息树 (DIT) 的分层结构中,DIT 将数据编排成适用 LDAP 的分支结构,使管理员更容易检索,更好地处理用户访问策略。
3. 传统上如何使用和设置 LDAP?
从技术层面讲,LDAP 只是一种协议。而 LDAP 服务器这一新产品不仅包含 LDAP 协议,还将协议在软件中实例化,用于对 LDAP 客户端和终端用户的访问授权。在基于云的 LDAP 诞生之前,两大传统 LDAP 实例分别是 OpenLDAP 和微软 Active Directory。
1)OpenLDAP
OpenLDAP 开发于1998年,是 LDAP 的免费开源版本,也是至今仍在使用的历史最悠久的 LDAP 实例之一。OpenLDAP 作为一个高度集中的软件,无论是用户界面还是附加协议都并不丰富,另外还要求企业对自己的目录服务器进行托管、配置和管理。手动配置企业目录的优势在于灵活性、不挑平台,缺点则是难以管理。
OpenLDAP 的工具匮乏和对 IT 人员的巨大需求促使一些企业寻求更强大的目录服务。于是,微软 Active Directory 成为不少企业多年来经常选择的方案。
2)微软 Active Directory
微软 Active Directory(AD)是市面上最常见的一大目录服务。和 OpenLDAP 的基础产品相比,AD 具有图形用户界面(GUI)和其他工具,在设置、配置和运维方面也更简单。
在系统兼容性上,OpenLDAP 适用于 Linux、Mac、Windows 等其他系统,而 AD 则最适用于 Windows 生态的终端和应用,对于其他操作系统通常需要附加组件来扩展管理,在灵活性上有所欠缺,也增加了其他系统设备的部署复杂性和成本。
此外,AD 专用 Kerberos 协议,虽然也支持 LDAP 但并不是作为首选协议。
LDAP 使用查询功能从 AD 中提取信息,包括判断用户是否应有权限访问特定 IT 资源、收集有关特定用户的属性数据,甚至根据 AD 数据库中的内容修改访问权限。当 IT 资源查找用户是否应该有访问权限时,LDAP 就会搜索相关数据进行绑定,然后 AD 服务器使用 LDAP 协议向 IT 资源做出响应,并提供相应信息。
虽然 AD 是十分常见的目录服务方案,但无法满足基于云的企业业务模型需求。根本原因在于 AD 使用本地服务器,最初也不是为云环境设计的,因此如果要将 AD 与云资源集成就需要使用 Azure AD 等附加组件,实施过程可能很复杂。