轻量级目录访问协议 (LDAP) 是一种 Internet 标准,可提供对不同计算机系统和应用程序中信息的访问。LDAP 使用一组协议来访问信息目录并检索信息。目录就像数据库,但所含的信息更具描述性且基于属性。目录中信息的读取频率通常高于其编写或修改频率。LDAP 允许在学校计算机平台上运行的应用程序获取用户名和密码等信息。

通过提供单点管理实现集中处理此类信息,从而简化您的工作。在单个位置提供用户信息,以减少重复信息的存储,进而降低维护需求。LDAP 验证还允许用户使用单个登录和密码来访问许多不同的应用程序。

详细了解如何创建验证提供程序


关于 LDAP 以及使用 StartTLS 的 LDAPS

以前版本的 Learn 允许添加未加密的普通 LDAP(“NoSSL”)。从 3900.84 版开始,将无法创建新的“NoSSL”提供程序,而现有的“NoSSL”提供程序将继续工作,但如果更新为使用 LDAPS/StartTLS,则无法将其改回 NoSSL。Anthology 建议仍在使用 NoSSL 的客户及时迁移到安全配置。

LDAP 的最初版本可追溯到 20 世纪 80 年代,它不支持任何连接安全性。LDAPS 是首次尝试附加当时所谓的“SSL”(即今天的 TLS)。LDAPS 使用一个特殊的安全专用端口。建立连接时需要使用正确的端口,具体取决于是安全连接还是不安全连接。随着时间的推移,使用不安全连接的情况逐渐减少,这一点也就变得不那么重要了。

LDAPS 从未正式标准化。IETF 在 RFC 2830 中通过 StartTLS 利用一种完全不同的方法对“带加密的 LDAP”进行了标准化。在这种安排下,LDAP 服务器只监听一个端口。LDAP 客户端在没有安全保护的情况下建立连接,然后发送“STARTLS”命令,LDAP 服务器和客户端会协商 TLS。

选择 LDAPS 还是 StartTLS,需要各机构根据自身需求、目录服务器的支持情况或其他架构考虑因素来决定。如果可以选择其中一个选项,一般来说,StartTLS 更受青睐,因为它已由 IETF 进行标准化,而且比较新。一些安全专家认为 LDAPS 已经过时,并且随着 RFC 2830 的发布而名存实亡,但是并未就此达成共识。

安全先决条件

您需要具有商业签名的证书,该证书与 Java 11 默认的“CACerts”密钥库所信任的证书颁发机构之间有完整的信任链,否则连接将失败。密钥库中不能安装其他证书。自签名证书不受支持。

您的证书颁发机构 (CA) 通常不会使用其高度可信的根证书来签名您的证书,而是使用由该根证书签名的中间证书。中间证书必须与服务器证书一起发送,因为需要有中间证书才能完成到信任根的验证链。通常情况下,这是通过将中间证书附加到服务器证书来实现的。有关详细信息,请查阅 LDAP 目录服务器和证书颁发者的相关文档。

  • LDAP 目录服务器和所有中间系统都需要支持 Java 11 及更高版本所接受的密码套件。例如:TLS 1.0 不再受支持。
  • LDAP 目录服务器和所有中间系统都需要接受来自您所在地区 SaaS 出口 IP 的传入连接。有关此信息,请联系 Blackboard 支持团队。

配置 LDAP 提供程序

  1. 提供您的 LDAP 服务器 URL,例如,ldaps://directory.example.edu:636 用于 LDAPS,或 ldap://directory.example.edu:389 用于使用 StartTLS 的 LDAP。
  2. 将 SSL 版本设置为 StartTLS 或 LDAPS。
  3. 提供基本搜索 DN,即用于搜索 Learn 用户的 LDAP 目录结构的起点。子树搜索在此处执行,例如,dc=people,dc=example,dc=edu。您可以通过不同的基本搜索 DN,创建和配置指向同一个物理 LDAP 服务器的两个完全独立的 LDAP 提供程序。如果您希望通过“链接”到 education.blackboard.com 主页面并将 LDAP 提供程序设置为仅搜索 dc=people,dc=education, dc=example,dc=edu(而非整个树),降低 LDAP 服务器上的负载,可以这样做。

    您可以通过相同的基本搜索 DN,添加指向不同物理服务器的多个 LDAP 提供程序。如果其中一个 LDAP 服务器没有响应,则框架会查询下一个服务器。详细了解提供程序顺序

  4. 提供搜索属性,即 LDAP 属性,其中所含的值将映射到在创建提供程序步骤中所设的 Learn 用户名批处理 UID。该属性特定于域。对于 Active Directory (AD),所用的属性通常为 sAMAccountName,对于 Novell,所用的属性通常为 uid。对于 Active Directory,大部分客户端集成使用 sAMAccountName 作为搜索属性。这将映射到最多有 20 个字符的旧样式(win2k 之前的版本)登录名。AD 域管理员可以确认这是否为正确属性或您是否能/应该使用 userPrincipalName

    有些 LDAP 服务器(如 Active Directory)要求特权用户连接到目录。LDAP 提供程序需要提供用户的可分辨名称 (DN) 和密码。使用特权用户连接的两个常用选项包括:

    • 在目录内创建新用户。仅为该用户分配正确的读取权限。将该用户帐户用作特权用户。
    • 将现有目录用户用作特权用户。

    该帐户需要访问每个尝试登录到 Blackboard 的用户的 LDAP 服务器。最佳做法是,选择用户无法更改密码密码永不过期选项。

    这就是所谓的服务帐户,因此,LDAP 管理员可以在这些类型帐户的目录中拥有一个特殊位置。

    首次设置帐户时,使用基本密码,并仅在您已确认配置可以正常运行之后,将该密码更改为安全性较高的密码。请注意,使用 # 和 @ 等特殊字符时可能会出现问题。

  5. (可选)设置以下内容:
    • 使用特权用户进行搜索设为。默认设置为。搜索用户的 FDN 以进行验证时,LDAP 提供程序会作为特权(指定)用户绑定到 LDAP 服务器。
    • 提供特权用户 DN。如果将使用特权用户进行搜索设为,则必须设置此值。例如:cn=BlackboardLDAP,ou=Special Users, dc= example,dc=edu 或 BlackboardLDAP@example.edu
    • 提供特权用户密码。如果将使用特权用户进行搜索设为,则必须设置此值。这表示特权用户 DN 的用户密码。
  6. (可选)设置高级设置
    • 连接超时至少需要 15000 毫秒。这表示在取消 LDAP 请求前等待的时间(以毫秒为单位)。
    • 取消引用别名设为始终正在查找正在搜索。默认设置为从不。此属性用于定义在搜索操作期间别名的取消引用方式。
      • 从不:从不取消引用别名。
      • 始终:始终取消引用别名。
      • 正在查找:只有在名称解析时取消引用别名,也就是在找到目标条目时。
      • 正在搜索:在名称解析完成后取消引用别名,也就是在找到目标条目后。
    • 引用设为关注引发。默认设置为忽略。此属性用于指定提供程序应如何处理引用。
      • 忽略:如果引用显示在结果中,就将其忽略。
      • 关注:自动关注任何引用。
      • 引发:引发每个引用的 Java ReferralException。这会导致一个错误条件。
    • 引用限制的默认值为 5。此属性用于指定要关注的引用的最大数量。设置为零时表示值无效。您可以仅在将引用属性设为关注引发时设置此属性。
  7. 选择提交以保存配置。

    将新验证提供程序设为活动之前,从关联菜单中选择测试连接设置,以确认配置可按预期正常运行。