创建和配置 JNDI 适配器
当连接到另一个命名或目录服务 (如 LDAP 服务) 时,必须创建和配置 Java 命名和目录界面 (JNDI) 适配器。JNDI 适配器能连接到通过使用 JNDI 系统访问的各种命名和目录界面,包括企业目录服务器。JNDI Service Provider Interface (SPI) 提供可使命名和目录服务集成到 JNDI 框架中的方法。要连接到某一目录,JNDI 适配器需要相应的 JNDI 服务提供程序。
JNDI 配置过程实质上包括两个主要步骤:
1. 创建 JNDI 适配器条目
2. 设置其他属性
创建 JNDI 适配器条目
适配器属性被作为 Info*Engine 适配器 LDAP 条目内的属性来加以维护。使用 Info*Engine 属性管理实用程序来添加或修改 Info*Engine 适配器 LDAP 条目。可通过导航到 > 并单击“Info*Engine 管理”访问属性管理实用程序。
要创建新的适配器服务 LDAP 条目,在 属性管理主页上的“创建条目”下拉菜单中选择“JNDI 适配器”Info*Engine。在表单中输入值,表单上必填的字段要用星号 (*) 来标识。
有关使用
Info*Engine 属性管理实用程序的详细信息,请参阅
属性管理主页。
所有适配器 LDAP 条目表单都包括下列字段:
服务名称
可分辨名称
运行时服务名称
属性管理实用程序用建议的名称来自动填充“服务名称”、“可分辨名称”和“运行时服务名称”字段。这些名称基于登录到管理实用程序时提供的信息以及存储在表单中的信息:
◦ “服务名称”- 确保此名称是唯一的。如果要提供新名称,使用句点字符 (".") 时应给予特殊的考虑,如下所述。
◦ “可分辨名称”- 使用属性管理实用程序建议的名称。如果输入新的服务名称,可分辨名称字段会相应更新。
◦ “运行时服务名称”- 本名称必须与服务名称相同。
可以选择更改这些名称来匹配为站点 LDAP 条目而设置的条件。但是,请注意句点字符 (".") 在命名新 JNDI 适配器时,具有唯一的重要性。包括句点字符 (".")影响名称的格式,其必须用于相应的信息库定义。
多数信息库名称和信息库类型指定分级结构,要求格式化的值作为 Internet 域。因此,对 Info*Engine 适配器通常给定名称来反映它们部署在网络中的关系。例如:
com.company.host.Ldap
因为服务名称包括句点字符 ("."),当创建和命名新的信息库定义时,应需要颠倒名称的一些部分。因此,如果选择命名 JNDI 适配器 com.company.host.Ldap,必须命名相应的 Info*Engine 信息库:
Ldap.host.company.com
为避免这种情况,可以提供一个不包括 (".")字符的适配器名称。例如,如果命名 JNDI 适配器
EnterpriseDirectory1,也应该命名相应的信息库定义
EnterpriseDirectory1。有关创建新信息库定义的说明,请参阅
创建信息库定义。
| 只有在将 Windchill 连接到用于维护用户和组信息的 LDAP 目录服务时,这样的命名约定要求才是必要的。但是,对于其他 Info*Engine 集成配置,就没有这样必需的要求。 |
服务类
“服务类”属性可确定适配器的 Java 类。使用由属性管理实用程序提供的默认值。
序列化类型
主机
端口
提供者 URL
指定用于访问企业目录服务器的 URL。
搜索库
指定所有用户信息位于其下的 LDAP 节点的可分辨名称。所有用户搜索都将使用它作为基础。
目录系统代理用户
目录系统代理凭证
序列化类型
主机
端口
除非有特定的原因,否则所有其他字段应留为空白。
查找有关剩余适配器属性的详细信息,可使用下列选项:
• 将光标悬停在属性名称上来查看此属性的简短说明。
• 单击“属性名称”可打开说明每个属性的页面。
• 单击表单中的帮助链接。
设置其他属性
将企业目录属性与 Windchill 属性进行比较,以确定存在差异的位置。
用户和组 LDAP 属性值映射中介绍了 Windchill 用户和组属性。比较属性定义时使用此信息。
如果未在表单中定义属性,则可将其添加到“其他特性”字段中。添加其他属性时,属性名称由适配器条目 (LDAP 条目表单中“服务名称”字段的值) 的名称和其后面的属性名称组成。例如:
<服务名称>.pageSize
如果必要,设置下列其他属性。可以在 LDAP 条目表单中使用“其他特性”字段来添加它们:
windchill.config.readOnly
将此属性设置为“真”(TRUE) 来表示目录不允许通过 Windchill 执行的修改。否则,不需要属性,也可以将它设置为“假”(FALSE)。
windchill.config.doesNotContainGroups
将此属性设置为“真”(TRUE) 来表示目录不包含组并且不应搜索组。否则,不需要属性,也可以将它设置为“假”(FALSE)。
windchill.config.directoryType
仅在使用 Microsoft Active Directory 时,需要此属性;否则,忽略此属性。
设置此属性提示适配器以唯一与 Microsoft Active Directory 兼容的方式来处理一些请求:
<service_name>.windchill.config.directoryType=ADS
设置后,此属性自动启用分页搜索。要配置分页搜索,使用
pageSize 和
pagedSizeLimit 属性。有关详细信息,请参阅
JNDI 适配器属性。
| 可以为任何目录类型配置分页搜索,但默认为仅在使用 Microsoft Active Directory 时启用。要对其他目录类型启用分页搜索,则设置 pageSize 属性。 |
windchill.mapping.user.attributes
指定 Windchill 和参与者缓存中可用的 LDAP 属性。例如,可由 Windchill 访问的典型属性可能为:
user.getAttributes().get(“<LDAP-attribute-name>”);
将属性输入为以逗号分隔的列表。
windchill.mapping.usersOrganizationName
有两种方式来分配组织名称给用户。如果未分配组织给用户,他们不能访问任何子上下文中的数据 (例如,产品、项目和存储库)。使用的方法取决于是否需要标识多个组织:
◦ 如果系统具有多个组织并且需要对不同的用户组和不同组织进行关联,可以向目录服务器中的每个用户条目分配一个组织属性。分配给组织属性的值是在 Windchill 中分配给用户的组织。
默认情况下,为用户查找组织名称时,Windchill 会在目录服务器中标识 o 属性。如果目录服务器不使用 o 属性,则必须使用下列属性 (
<服务名称>.windchill.mapping.user.o=<组织属性名称>
) 来定义与组织名称关联的属性:
其中,<service_name> 是适配器的服务名称,而 <organization_attribute_name> 是在目录服务器中用于对用户和组织名称进行关联的属性。
◦ 如果通过 JNDI 适配器来进行访问的所有用户属于同一组织,可通过添加 usersOrganizationName 属性
<服务名称>.windchill.mapping.usersOrganizationName=<组织名称>
来分配用户的组织名称:
为此属性设置的值代表为所有通过适配器访问的用户分配的组织名称。
如果使用,此属性将覆盖任何在目录服务器用户条目中定义的组织属性。仅
usersOrganizationName 属性的值由 Windchill 使用。有关详细信息,请参阅
管理用户对数据的访问。
有关映射属性值的详细信息,请参阅
用户和组 LDAP 属性值映射。