3.2. 发布应用程序

创建表示组织中的应用程序、应用服务器和用户的对象并不向用户授予通过 SGD 访问应用程序的权限。必须发布应用程序。通过在组织层次结构中的对象之间建立关系来发布应用程序。SGD 将这类关系称为分配。可按如下方式发布应用程序:

分配可以是以下类型之一:

使用本地分配来实现向应用服务器分配应用程序。

使用本地分配、LDAP 分配或两者组合来实现向用户分配应用程序。

管理控制台提供了多种方式来查看分配,请参见第 3.2.3 节 “查看分配”

3.2.1. 本地分配

本地分配是本地系统信息库中的对象之间的关系。

在管理控制台中,可以按如下方式在 "Applications"(应用程序)选项卡上分配应用程序:

  • 使用 "Hosting Application Servers"(托管应用服务器)选项卡向应用服务器分配应用程序或应用程序组。

    请参见第 3.2.1.1 节 “如何向应用程序分配应用服务器”

    提示

    您也可以从 "Hosted Applications"(托管的应用程序)选项卡为组对象和应用服务器对象分配应用程序。

  • 使用 "Assigned User Profiles"(分配的用户配置文件)选项卡向用户分配应用程序。

    请参见第 3.2.1.2 节 “如何向用户分配应用程序”

    提示

    您也可以从 "Assigned Applications"(分配的应用程序)选项卡为目录对象和用户配置文件对象分配应用程序。

SGD 利用继承来使本地分配更易于管理和更加高效。OU 和用户配置文件对象可以继承组织层次结构中其父对象的分配和设置。默认情况下继承处于启用状态。要使用继承,请在 OU 对象内创建用户配置文件对象,然后将应用程序分配给 OU。

管理控制台提供了多种方式来查看分配,请参见第 3.2.3 节 “查看分配”

3.2.1.1. 如何向应用程序分配应用服务器

  1. 在管理控制台中,转到 "Applications"(应用程序)选项卡并选择应用程序对象或组对象。

    如果选择一组应用程序,则可以向该组中的所有应用程序分配应用服务器。

    此时将显示 "General"(常规)选项卡。

  2. 转到 "Hosting Application Servers"(托管应用服务器)选项卡。

  3. 在 "Editable Assignments"(可编辑的分配)表中,单击 "Add"(添加)。

    此时将显示 "Add Application Server Assignment"(添加应用服务器分配)窗口。

  4. 查找应用服务器对象或组对象。

    使用 "Search"(搜索)字段或导航树来查找所需的对象。

  5. 选中应用服务器对象或组对象旁边的复选框,然后单击 "Add"(添加)。

    如果选择了多个应用服务器或一组应用服务器,SGD 将在应用服务器之间进行负载平衡。请参见第 7.2 节 “负载平衡”

    如果选择一组应用服务器,则会选中该组中的所有应用服务器。

    将以选定的应用服务器更新 "Effective Application Servers"(有效的应用服务器)表。

3.2.1.2. 如何向用户分配应用程序

  1. 在管理控制台中,转到 "Applications"(应用程序)选项卡并选择应用程序对象、OU 对象或组对象。

    如果选择一组应用程序或一个 OU,则可以向用户分配该组或 OU 中的所有应用程序。

    此时将显示 "General"(常规)选项卡。

  2. 单击 "Assigned User Profiles"(分配的用户配置文件)选项卡。

  3. 在 "Editable Assignments"(可编辑的分配)表中,单击 "Add"(添加)。

    屏幕上将显示 "Add User Assignment"(添加用户分配)窗口。

  4. 查找用户配置文件对象或目录对象。

    使用 "Search"(搜索)字段或导航树来查找所需的对象。

    可以将应用程序分配给用户配置文件对象或目录对象。

    如果将应用程序分配给某个目录对象,则该目录对象中包含的所有用户配置文件都会自动接收该应用程序。这称为继承。将应用程序分配给目录对象更为高效。

  5. 选中用户配置文件对象或目录对象旁边的复选框,然后单击 "Add"(添加)。

    将以选定的用户更新 "Effective User Profiles"(有效的用户配置文件)表。

3.2.2. LDAP 分配

LDAP 分配利用 SGD 的目录服务集成功能。通过目录服务集成,可使用 LDAP 目录而不是本地系统信息库来存放用户信息。这意味着,您不必在本地系统信息库中创建用户配置文件对象。

只能对通过搜索 LDAP 目录或 Active Directory 确定了用户身份的用户使用目录服务集成。这意味着,必须通过以下验证机制之一对用户进行了验证:

LDAP 分配是 SGD 系统信息库中的对象和 LDAP 目录中的对象之间的关系。使用 LDAP 分配,您是向应用程序分配用户,而不是向用户分配应用程序。在管理控制台中,在 "Assigned User Profiles"(分配的用户配置文件)选项卡上针对应用程序、文档和组对象来执行此操作。可以按如下方式分配用户:

在管理控制台中处理 LDAP 分配时,显示所处理对象的命名属性很有用。默认情况下,管理控制台不显示命名属性。您可以在管理控制台的 "Preferences"(首选项)中启用命名属性的显示。

如果想要对 LDAP 用户特定于 SGD 的设置(例如能否使用复制和粘贴或者编辑客户端配置文件)进行更多控制,请参见第 3.1.6 节 “LDAP 镜像”

管理控制台中显示哪些用户配置为使用 LDAP 分配来接收应用程序,请参见第 3.2.3 节 “查看分配”

SGD 会缓存所获取的目录数据,有关更多详细信息,请参见第 3.2.5 节 “管理目录服务缓存”

有关使用 LDAP 分配的技巧,请参见第 3.2.6 节 “LDAP 分配故障排除”

3.2.2.1. 如何向 LDAP 用户分配应用程序

  1. 在 SGD 管理控制台中,转到 "Applications"(应用程序)选项卡。

  2. 选择应用程序或组对象,然后转到 "Assigned User Profiles"(分配的用户配置文件)选项卡。

    使用 "Search"(搜索)字段或导航树来查找所需的对象。

    如果选择组对象,LDAP 用户将接收组中的所有应用程序。

  3. 在 "Editable Assignments"(可编辑的分配)表中,单击 "Add"(添加)按钮。

    屏幕上将显示 "Add User Assignment"(添加用户分配)窗口。

  4. 从 "Repository"(系统信息库)列表中选择 "Local + LDAP"(本地 + LDAP)。

  5. (可选)从 "View"(查看)列表中选择一个服务对象。

    默认情况下,将会选择服务对象列表中的第一个启用服务对象。只有启用的服务对象才会显示在 "View"(查看)列表中。请参见第 2.8.4 节 “使用服务对象”

  6. 查找要分配给对象的 LDAP 用户。

    使用 "Search"(搜索)字段或导航树来在 LDAP 目录中查找用户。

  7. 选中 LDAP 用户旁边的复选框,然后单击 "Add"(添加)按钮。

    如果向某个对象分配多个 LDAP 用户,则使用 LDAP 搜索会更加高效。

    提示

    在命令行上,可以使用 --ldapusers 选项来分配 LDAP 用户。

    此时 "Add User Assignment"(添加用户分配)窗口将关闭,并以 LDAP 用户更新 "Editable Assignments"(可编辑的分配)表。

3.2.2.2. 如何向 LDAP 组成员分配应用程序

  1. 在管理控制台中,转至 "Applications"(应用程序)选项卡。

  2. 选择应用程序、文档或组对象,然后转到 "Assigned User Profiles"(分配的用户配置文件)选项卡。

    使用 "Search"(搜索)字段或导航树来查找所需的对象。

    如果选择组对象,LDAP 组的所有成员将接收该组中的所有应用程序。

  3. 在 "Editable Assignments"(可编辑的分配)表中,单击 "Add"(添加)按钮。

    屏幕上将显示 "Add User Assignment"(添加用户分配)窗口。

  4. 从 "Repository"(系统信息库)列表中选择 "Local + LDAP"(本地 + LDAP)。

  5. (可选)从 "View"(查看)列表中选择一个服务对象。

    默认情况下,将会选择服务对象列表中的第一个启用服务对象。只有启用的服务对象才会显示在 "View"(查看)列表中。请参见第 2.8.4 节 “使用服务对象”

  6. 查找要分配给对象的 LDAP 组。

    使用 "Search"(搜索)字段或导航树来在 LDAP 目录中查找组。

  7. 选中 LDAP 组旁边的复选框,然后单击 "Add"(添加)按钮。

    如果向某个对象分配多个组,则使用 LDAP 搜索会更加高效。

    提示

    在命令行上,可以使用 --ldapgroups 选项来分配 LDAP 组成员。

    此时 "Add User Assignment"(添加用户分配)窗口将关闭,并以 LDAP 组更新 "Editable Assignments"(可编辑的分配)表。

3.2.2.3. 如何使用 LDAP 搜索分配应用程序

  1. 在管理控制台中,转至 "Applications"(应用程序)选项卡。

  2. 选择应用程序、文档或组对象,然后转到 "Assigned User Profiles"(分配的用户配置文件)选项卡。

  3. 在 "LDAP Searches"(LDAP 搜索)部分配置 LDAP 搜索。

    执行以下任一操作:

    • 选择 "Simple Search"(简单搜索)选项,然后使用 LDAP 查询生成器构造 LDAP 搜索。

    • 选择 "Advanced Search"(高级搜索)选项,然后在 "LDAP URL or Filter"(LDAP URL 或过滤器)字段中输入 LDAP 搜索字符串。

    有关详细信息,请参见第 3.2.2.4 节 “使用 LDAP 搜索”

    使用 "Preview"(预览)按钮检查所配置的搜索是否返回预期的结果。

    提示

    在命令行上,可以使用 --ldapsearch 选项来配置 LDAP 搜索。

  4. 单击 "Save"(保存)。

3.2.2.4. 使用 LDAP 搜索

LDAP 搜索可以是以下任一项:

管理控制台提供了 "Simple Search"(简单搜索)和 "Advanced Search"(高级搜索),用于配置 LDAP 搜索。

注意

管理控制台不会自动对 RFC2254 中指定的特殊字符进行转义。要在管理控制台中使用特殊字符,必须手动键入转义序列。例如,要搜索具有通用名称 "John Doe (123456)" 的用户,请在搜索字段中键入以下内容 cn=John Doe\0x28123456\0x29

SGD 支持使用 RFC2254 中指定的可扩展匹配搜索过滤器。这允许您从构成对象 DN 的组成部分中查找信息。例如,要将应用程序分配给包含在任何名为 managers 的 OU (ou=managers) 中的用户,您可以使用 (&(ou:dn:=managers)) 搜索过滤器。Active Directory 不支持可扩展搜索过滤器。

在配置 LDAP 搜索时,可使用 "Preview"(预览)按钮来检查搜索是否返回了预期的结果。

3.2.2.4.1. 使用简单搜索

通过简单搜索,您可以使用以下常用的 LDAP 和 Active Directory 属性构造 LDAP 搜索。

属性名称

描述

c

包含两字母 ISO 3166 国家/地区代码的 countryName 属性。

cn

包含对象名称的 commonName 属性。对于人员对象,这通常是人员的全名。

departmentNumber

包含部门代码的属性。该代码可以是数字或字母数字。

l

包含位置(例如城市或国家/地区)名称的 localityName 属性。

memberOf

用于在 Active Directory 中管理用户的常用属性。包含用户所属组的列表。

sn

包含人员姓氏的 surname 属性。

单击 "Browse"(浏览)按钮可显示 "Select Root for LDAP Search"(为 LDAP 搜索选择根目录)窗口。通过此窗口,您可以选择要用作搜索根目录的 LDAP 对象。如果配置了多个服务对象,请使用 "View"(查看)列表选择要用于搜索根目录的服务对象。只有启用的服务对象才会显示在 "View"(查看)列表中。如果指定了搜索根目录,则搜索将格式化为 LDAP URL。如果未指定搜索根目录,则搜索将格式化为 LDAP 过滤器。该过滤器将应用于启用的所有服务对象。

保存简单搜索后,搜索字符串将显示在 "Advanced Search"(高级搜索)字段中。

3.2.2.4.2. 使用高级搜索

通过 "Advanced Search"(高级搜索)字段,您可以输入自己的 LDAP 搜索过滤器或 URL,也可以粘贴来自其他工具的搜索。

如果您输入 LDAP URL,请使用以下格式 ldap:///search。如果您在 URL 中包括主机、端口和返回属性指定信息,它们将被忽略。

您可以使用 "Simple Search"(简单搜索)构造一个基本搜索并保存它。这会将该简单搜索装入 "Advanced Search"(高级搜索)字段。然后可以选择 "Advanced Search"(高级搜索)选项对搜索进行微调。

注意

如果在 "Advanced Search"(高级搜索)字段中对简单搜索进行微调,并以与简单搜索不兼容的方式对其进行编辑,您可能无法再次将该搜索作为简单搜索来编辑。如果发生这种情况下,您必须清除 "Advanced Search"(高级搜索)字段并保存更改。然后重新生成简单搜索。

3.2.3. 查看分配

通过管理控制台,您可以按如下方式查看分配:

  • 用 "Assigned User Profiles"(分配的用户配置文件)选项卡查看应用程序、文档、组和 OU 对象的分配-"Effective User Profiles"(有效的用户配置文件)表中显示了分配有应用程序的用户

  • 用 "Assigned Applications"(分配的应用程序)选项卡查看用户配置文件、OU 和组织对象的分配-"Effective Applications"(有效的应用程序)表显示了分配给用户的应用程序

  • 用 "Hosting Application Servers"(托管应用服务器)选项卡查看应用程序和组对象的分配-"Effective Application Servers"(有效的应用服务器)表显示了可运行应用程序的应用服务器

  • 用 "Hosted Applications"(托管的应用程序)选项卡查看应用服务器和组对象的分配-"Effective Applications"(有效的应用程序)表显示了可在应用服务器上运行的应用程序

  • 用 "Members"(成员)选项卡查看组对象的分配-"Effective Members"(有效成员)表显示了组的成员。

默认情况下,不显示 LDAP 分配。要显示 LDAP 分配,请在有效分配表中单击 "Load LDAP"(装入 LDAP)链接。

通过有效分配表,您可以跟踪分配的源:分配是来自于继承、组成员关系还是 LDAP 搜索。

3.2.4. 调整 LDAP 组搜索

以下主题说明了如何调整 LDAP 组搜索以返回 LDAP 分配所需的用户。

3.2.4.1. 增加组搜索深度

默认情况下,LDAP 组搜索不会搜索嵌套组或子组。如果您的组织使用嵌套组或子组,可以增加搜索的深度。增加深度可能会对性能有负面影响。

要增加组搜索深度,请使用以下命令:

$ tarantella config edit \
--tarantella-config-ldap-nested-group-depth depth

默认 depth 为 0。增大 depth 的值,使之与嵌套组的深度匹配。

3.2.4.2. 组成员关系属性

SGD 通过搜索 LDAP 用户对象和 LDAP 组对象的属性来确定组成员关系。首先检查 LDAP 用户对象,再检查 LDAP 组对象。

用户组成员关系属性是列出用户所属组的 LDAP 用户对象属性。默认情况下,SGD 在 LDAP 用户对象的 isMemberOfnsrolednmemberOf 属性中搜索组。要配置用户组成员关系属性,请使用以下命令:

$ tarantella config edit \
--tarantella-config-ldap-object-member-attributes attribute ...

您可以列出多个 attribute。每个 attribute 必须以空格分隔。请注意在列表中包括默认属性 isMemberOfnsrolednmemberOf

组用户成员关系属性是列出属于组的用户的 LDAP 组对象属性。默认情况下,SGD 在 LDAP 组对象的 uniquemembermember 属性中搜索用户。要配置组用户成员关系属性,请使用以下命令:

$ tarantella config edit \
--tarantella-config-ldap-group-member-attributes attribute ...

您可以列出多个 attribute。每个 attribute 必须以空格分隔。请注意在列表中包括默认属性 uniquemembermember

3.2.4.3. 短属性

如果组成员关系属性不包含用户的 DN,则组搜索将失败。

您可以对 SGD 进行配置,以搜索可用于标识用户的短属性。要使短属性起作用,它们必须包含唯一值。LDAP 用户对象或 LDAP 组对象可以具有短属性。

要配置 SGD 搜索 LDAP 用户对象的短属性,请使用以下命令:

$ tarantella config edit \
--tarantella-config-ldap-object-short-attributes attribute ...

您可以列出多个 attribute。每个 attribute 必须以空格分隔。

要配置 SGD 搜索 LDAP 组对象的短属性,请使用以下命令:

# tarantella config edit \
--tarantella-config-ldap-group-short-attributes attribute ...

您可以列出多个 attribute。每个 attribute 必须以空格分隔。

3.2.4.4. 加速 Active Directory 组搜索

要加速 Active Directory 用户的组搜索,您可以配置 SGD 使用 Active Directory 用户对象的 tokenGroups 属性进行搜索。对于组成员关系嵌套很深和没有成员关系属性的 Active Directory 环境,使用 tokenGroups 可以减少 Webtop 生成时间。

要配置 SGD 使用 tokenGroups 属性,请使用以下命令:

# tarantella config edit \
--tarantella-config-ad-support-token-groups 1

使用 tokenGroups 进行的搜索还使用 LDAP 组用户成员关系属性(如第 3.2.4.2 节 “组成员关系属性”中所述)。要更进一步加速组搜索,可以禁用使用组用户成员关系属性进行搜索。使用以下命令:

$ tarantella config edit \
--tarantella-config-ldap-group-member-attributes ""

请注意,此命令将禁用任何不使用 tokenGroups 的组搜索。

3.2.5. 管理目录服务缓存

SGD 会缓存所获取的目录服务数据。

如果您发现 SGD 未检测到变化,可以使用 tarantella cache 命令手动清除、刷新或填充缓存。

要更新组数据的缓存,请使用以下命令:

$ tarantella cache --refresh ldapgroups

运行此命令时,SGD 会在缓存中搜索 LDAP 组,在目录中查询每个 LDAP 组的成员关系,然后将用户列表添加到缓存。

要将组数据添加到缓存,请使用以下命令:

$ tarantella cache --populate ldapgroups

运行此命令时,SGD 会在本地系统信息库中搜索具有 LDAP 组分配的对象,并将 LDAP 组添加到缓存。然后,SGD 在目录中查询每个 LDAP 组的成员关系,并将用户列表添加到缓存。

要从缓存中删除组数据,请使用以下命令:

$ tarantella cache --flush ldapgroups

要从缓存中删除 LDAP 搜索数据,请使用以下命令:

$ tarantella cache --flush ldapconn-lookups

要重置所有 LDAP 连接,请使用以下命令:

$ tarantella cache --flush ldapconn

要从缓存中删除所有 LDAP 数据,请使用以下命令:

$ tarantella cache --flush all

默认情况下,SGD 将组数据在缓存中保存 4300 秒(12 小时)。您可能需要根据 LDAP 数据的变化频率更改 SGD 保存组数据的时间。这可通过以下命令实现:

# tarantella config edit \
--tarantella-config-ldap-ldapgroups-timeout secs

3.2.6. LDAP 分配故障排除

如果 LDAP 组搜索未返回预期的结果,请参见第 3.2.4 节 “调整 LDAP 组搜索”

SGD 会缓存从 LDAP 目录中收集的数据。如果您发现 SGD 未检测到变化,可以手动清除缓存的数据。请参见第 3.2.5 节 “管理目录服务缓存”

如果对 LDAP 目录的 LDAP 搜索失败,您可以配置 LDAP 超时。请参见第 2.8.14 节 “LDAP 操作超时”

要帮助诊断 LDAP 分配问题,请设置以下日志过滤器:

server/webtop/*:ldapwebtop%%PID%%.log
server/webtop/*:ldapwebtop%%PID%%.jsl
server/directoryservices/*:ldapwebtop%%PID%%.log
server/directoryservices/*:ldapwebtop%%PID%%.jsl

有关配置和使用日志过滤器的更多信息,请参见第 7.4.3 节 “使用日志过滤器对 SGD 服务器问题进行故障排除”

管理控制台中的某些配置设置会影响 LDAP 数据的显示,例如用于标识用户的属性。如果您发现管理控制台中的 LDAP 操作不按预期方式工作,可能需要调整设置。有关详细信息,请参见第 7.3.4 节 “管理控制台配置设置”