2.4. LDAP 验证

LDAP 验证允许在 LDAP 目录中有条目的用户登录到 SGD。

默认情况下,此验证机制处于禁用状态。

本节包括以下主题:

2.4.1. LDAP 验证的工作方式

在 SGD 登录屏幕中,用户键入用户名和密码。用户名可以是以下任意项:

  • 通用名,如 Indigo Jones

  • 用户名,如 indigo

  • 电子邮件地址,如 indigo@example.com

SGD 将在 LDAP 目录中搜索属性与用户键入的用户名相匹配的 LDAP 对象。默认情况下,SGD 搜索以下属性:

  • cn

  • uid

  • mail

如果未找到 LDAP 对象,则尝试下一个验证机制。

如果找到了 LDAP 对象,SGD 使用该 LDAP 对象的名称和用户键入的密码执行绑定。如果绑定失败,则尝试下一个验证机制。

如果验证成功,SGD 会在本地系统信息库中搜索用户配置文件,有关详细信息,请参见第 2.4.1.1 节 “用户身份和用户配置文件”。如果用户配置文件的 "Login"(登录)属性未启用,用户将无法登录,系统不会尝试任何其他验证机制。如果用户配置文件的 "Login"(登录)属性已启用,用户将登录。

2.4.1.1. 用户身份和用户配置文件

用户身份是用户的 LDAP 对象的 DN。在 SGD 数据存储中,该用户身份位于 LDAP 名称空间中。在管理控制台中,文本 "(LDAP)" 显示在该用户身份的旁边。在命令行上,该用户身份位于 .../_service/sco/tta/ldapcache 中。

考虑到 LDAP 与 SGD 命名系统之间的差异,SGD 将通过搜索本地系统信息库确定用户配置文件。SGD 将搜索以下用户配置文件,直到找到匹配项:

  • 与用户 LDAP 对象同名的用户配置文件。

    例如,如果用户的 LDAP 对象为 cn=Emma Rald,cn=Sales,dc=example,dc=com,SGD 将在本地系统信息库中搜索 dc=com/dc=example/cn=Sales/cn=Emma Rald

  • 与用户的 LDAP 对象在同一组织单元,但名称为 cn=LDAP Profile 的用户配置文件。

    例如:dc=com/dc=example/cn=Sales/cn=LDAP Profile

  • 任意父组织单元内的名称为 cn=LDAP Profile 的用户配置文件。

    例如:dc=com/dc=example/cn=LDAP Profile

如果没有匹配项,将使用 o=System Objects/cn=LDAP Profile 配置文件对象作为用户配置文件。

可将 LDAP 验证与目录服务集成搭配使用。分配给 LDAP 用户的应用程序来自用户配置文件组合和 LDAP 搜索。有关如何为用户分配应用程序的详细信息,请参见第 3 章 向用户发布应用程序

2.4.2. 设置 LDAP 验证

设置 LDAP 验证包括以下配置步骤:

  1. 为 LDAP 验证做准备。

    可能还需要其他配置才能组合使用 SGD 和 LDAP 目录,请参见第 2.4.3 节 “为 LDAP 验证做准备”

  2. 启用 LDAP 验证。

    将 SGD 配置为使用 LDAP 验证,并指定 LDAP 目录详细信息,请参见第 2.4.4 节 “如何启用 LDAP 验证”

    对于 LDAP 部署比较复杂的组织,请使用服务对象管理及调整 LDAP 配置。请参见第 2.8.4 节 “使用服务对象”

2.4.3. 为 LDAP 验证做准备

按如下所示为 LDAP 验证做准备:

2.4.3.1. 支持的 LDAP 目录

Oracle Secure Global Desktop 发行版 4.7 平台支持和发行说明》中列出了支持的 LDAP 目录,该文档位于 http://www.oracle.com/technetwork/documentation/sgd-193668.html

2.4.3.2. LDAP 验证的网络要求

启用 LDAP 验证之前,确保阵列中的所有 SGD 服务器均能访问用于验证的每个 LDAP 目录服务器。

用于连接到 LDAP 目录服务器的端口是 TCP 端口 389(适用于标准连接)和端口 TCP 636(适用于安全连接,即 ldaps:// 连接)。如果您的目录服务器使用其他端口,可在启用 LDAP 验证时指定端口。必须确保 SGD 可以使用这些端口进行 LDAP 连接。

要能够使用安全 (ldaps://) 连接,SGD 必须能够对 LDAP 目录服务器提供的 SSL 证书进行验证。您可能需要将 LDAP 目录服务器的 CA 证书导入到 SGD CA 证书信任库中。有关如何检查支持的 CA 以及如何导入 CA 证书的详细信息,请参见第 7.5.1 节 “CA 证书信任库”

2.4.3.3. LDAP 绑定 DN 和密码更改

默认情况下,SGD 使用两个 LDAP 绑定 DN,即管理员绑定 DN 和用户绑定 DN。

管理员绑定 DN 是为 LDAP 验证配置的用户名和密码。管理员绑定 DN 仅用于查询目录服务器,所以此用户必须具有搜索目录的特权。您可能需要创建一个特殊 LDAP 用户用于 SGD。管理员绑定可以是一个匿名绑定。Active Directory 不支持匿名绑定。

用户绑定 DN 是用户登录时提供的用户名和密码。默认情况下,用户绑定 DN 用于验证和密码更改操作。

用户的密码过期后,他们将无法登录到 SGD 且 SGD 无法强制用户更改密码。可将 SGD 配置为警告用户其密码即将过期,并强制用户在密码过期前更改密码,请参见第 2.8.5 节 “密码过期”。SGD 要能够执行上述操作,必须满足下列要求:

  • 在 LDAP 目录中,SGD 以用户身份绑定到目录时必须能够读取用户的密码策略控制

  • 在 Active Directory 中,SGD 必须能够读取域控制器的 "Maximum Password Age"(密码最长期限)设置和用户的 "Password Last Set"(上次设置的密码)属性

如果目录服务器不满足这些要求,但您需要 SGD 处理密码更改,则必须将 SGD 配置为使用管理员绑定 DN 执行密码更改操作。请参见第 2.8.6 节 “LDAP 密码更新模式”

注意

在某些 LDAP 目录中,系统会将使用管理员绑定 DN 执行的密码更改操作当作密码重置处理,而不当作更改操作处理。

对于 Oracle Directory Server Enterprise Edition,如果将 SGD 配置为使用管理员绑定 DN 进行密码更新,则可能还需要进行其他配置,SGD 才能处理密码更改,这些配置如下所述:

  • 不要在全局密码策略或单个密码策略中使用 "User must change password after reset"(重置后用户必须更改密码)选项。这会导致密码更改失败。

  • 管理员绑定 DN 必须具有管理特权。

对于 Active Directory,只有在 SGD 服务器与 Active Directory 服务器之间建立了安全连接 (ldaps://) 时,系统才会处理密码过期,包括强制用户在下次登录时更改其密码。

默认情况下,Novell eDirectory 要求所有包含密码的简单 LDAP 绑定必须使用 SSL 连接。要组合使用 eDirectory 和 SGD,请执行以下操作之一:

  • 使用 ldaps:// URL,将 SGD 配置为使用安全连接与 eDirectory 建立连接

  • 在 eDirectory 中配置 LDAP 组对象,并对简单绑定禁用 TLS

2.4.3.4. 验证 Novell eDirectory

用户可能无法验证 Novell eDirectory,因为 LDAP 验证的用户登录过滤器会过滤掉 cn 属性,而此属性在 eDirectory 中是一个受限制的属性。

要使用户能够登录到 SGD,请执行以下操作之一:

2.4.4. 如何启用 LDAP 验证

  1. 在 SGD 管理控制台中,显示 "SGD Authentication Configuration"(Secure Global Desktop 验证配置)向导。

    转到 "Global Settings"(全局设置)→ "Secure Global Desktop Authentication"(Secure Global Desktop 验证)选项卡,然后单击 "Change Secure Global Desktop Authentication"(更改 Secure Global Desktop 验证)按钮。

  2. 在 "Third-Party/System Authentication"(第三方/系统验证)步骤中,确保选中 "System Authentication"(系统验证)复选框。

  3. 在 "System Authentication - Repositories"(系统验证 - 系统信息库)步骤中,选中 "LDAP/Active Directory" 复选框。

  4. 在 "LDAP Repository Details"(LDAP 系统信息库详细信息)步骤中,配置 LDAP 目录详细信息。

    1. 对于 "Repository Type"(系统信息库类型),选择 "LDAP" 选项。

      即使要使用 Microsoft Active Directory 服务器进行 LDAP 验证,也要选择此选项。"Active Directory" 选项将启用 Active Directory 验证,请参见第 2.2 节 “Active Directory 验证”

    2. 在 "URL" 字段中,键入一个或多个 LDAP 目录服务器的 URL。

      例如:ldap://melbourne.example.com

      如果键入多个 URL,请用分号 (;) 分隔各个 URL。

      如果有多个 URL,SGD 会按其列出顺序使用 URL。如果列表中的第一个 LDAP 目录服务器不可用,则尝试下一个。

      要使用安全连接与 LDAP 目录服务器建立连接,请使用 ldaps:// URL。

      所有 URL 必须为同一类型,ldap://ldaps://。不能混合使用 ldap://ldaps:// URL。

      如果 LDAP 目录使用非标准端口,请在 URL 中指定端口号,例如 ldap://melbourne.example.com:5678。否则可省略端口号。

      可指定一个 DN 用作搜索基,例如,ldap://melbourne.example.com/dc=example,dc=com。这将指定用于搜索用户身份的 LDAP 目录部分。

    3. 在 "User Name"(用户名)和 "Password"(密码)字段中键入 LDAP 用户的详细信息。

      用户名必须是用户的 DN,例如 cn=sgd-user,cn=Users,dc=example,dc=com。此处为管理员绑定 DN,有关更多详细信息,请参见第 2.4.3.3 节 “LDAP 绑定 DN 和密码更改”

      由于您只能输入一个用户名和密码,所以此用户必须能够搜索 URL 字段中列出的所有 LDAP 目录服务器。

      如果目录服务器支持匿名绑定,则可以省略用户名和密码。您必须能够对用户数据执行 LDAP 查询,才能使用匿名绑定。

      为 LDAP 服务对象配置的所有 URL 必须为同一类型,ldap://ldaps://。不能混合使用 ldap://ldaps:// URL。

  5. 在 "Review Selections"(查看所做的选择)步骤中,检查验证配置,然后单击 "Finish"(完成)。

    单击 "Finish"(完成)时,SGD 会创建一个名为 generated 的服务对象。服务对象用于管理目录服务配置,有关更多详细信息,请参见第 2.8.4 节 “使用服务对象”