要访问 LDAP 服务,LDAP 客户端首先必须向服务验证自身身份。也就是说,它必须告知 LDAP 服务器谁将要访问数据,以便服务器可以决定客户端允许查看和执行哪些操作。如果客户端成功向 LDAP 服务器验证身份,则当服务器随后收到来自客户端的请求时,它将检查客户端是否被允许执行该请求。此过程称为访问控制。
在 LDAP 中,身份验证在“bind”操作中提供。Ldapv3 支持三种类型的身份验证:匿名身份验证、简单身份验证和 SASL 身份验证。客户端发送 LDAP 请求而未执行“bind”操作时,将被视为匿名客户端。简单身份验证包括向 LDAP 服务器发送客户端(用户)的完全限定 DN 和客户端的明文密码。此机制存在安全问题,因为密码可以从网络中读取。为了避免以这种方式暴露密码,您可以在加密通道(例如 SSL)中使用简单身份验证机制,前提是 LDAP 服务器支持此功能。
最后,SASL 是简单身份验证和安全层(Simple Authentication and Security Layer,RFC 2222)。它指定了一种质询-响应协议,其中客户端和服务器之间交换数据,目的是进行身份验证并建立一个安全层,以便在其上进行后续通信。通过使用 SASL,LDAP 可以支持 LDAP 客户端和服务器之间约定的任何类型的身份验证。Cyrus-SASL 软件包可在以下 URL 获取:http://asg.web.cmu.edu/sasl/sasl-library.html。
进一步,关于验证用户以访问来自您的目录树的信息,您的 LDAP 服务器也可以验证来自其他服务的用户(Sendmail、Login、Ftp 等)。这是通过将特定的用户信息迁移到您的 LDAP 服务器并使用称为 PAM(可插拔身份验证模块,Pluggable Authentication Module)的机制来实现的。LDAP 的身份验证模块以 tar ball 格式在以下地址提供:http://www.padl.com/OSS/pam_ldap.html