Active Directory 组和动态用户登录
本主题介绍了将 Active Directory 与 ThingWorx Platform 结合使用时实现的下列功能:
动态用户登录
* 
当启用“动态用户登录”时,建议用户使用相同的用户名通过 ThingWorx Platform 进行身份验证。否则,由于 ThingWorx Platform 的当前限制,系统将为同一用户创建多个 ThingWorx Platform 帐户。例如,假设用户使用其 displayName testuser 登录。在名为 testuser 的平台上创建一个用户帐户。但是,如果同一用户使用其通用主体名称 (UPN) 登录,在此示例中为 testuser@domain.com,还会在平台上创建用户 testuser@domain.com
如果启用“动态用户登录”,则将忽略“管理者名称”和“管理者密码”的连接设置。登录到 ThingWorx Platform 目录的用户将通过其用户名和密码在 Active Directory 中进行身份验证。Active Directory 中当前支持的身份验证方法是使用 displayName、UPN 和 domain\samAccountName。
如果禁用“动态用户登录”,则用户登录的工作流与 ThingWorx Platform 8.3.0 到 8.3.4 中的工作流保持一致。
要解决动态用户登录问题,请参阅故障排除:Active Directory 域前缀和动态用户登录
组映射
请确保您了解用户和组的 ThingWorx 可见性权限组织规则,以确保按预期配置映射。如果未正确分配权限,则用户可能会访问到其不应访问的内容。
虽然组映射不是必需的,但如果用户已设置或更新,那么没有组映射将会导致权限受限 (仅用户具有的默认权限)。
“组映射”配置大概位于 Active Directory 目录服务“配置”页面的中间位置。要设置组映射:
1. 在 ThingWorx Composer 中,请导航至 Composer 中的 Active Directory 目录服务 (“安全” > “目录服务” > “Active Directory 服务名称”)。
2. 打开“配置”页面,并向下滚动至“组映射”部分,然后单击“添加”,如下图所示:
3. 在“组映射”窗口的“Active Directory 组名称”字段中,键入想要映射到 ThingWorx 组的 Active Directory 组的名称。
4. 在“ThingWorx 组名称”字段中,单击加号 + 号以显示 ThingWorx 组的下拉列表,如下所示。请注意,它提供了“高级搜索”,在此您可以按特定实体及更多其他条件进行筛选。自 ThingWorx v.8.3.5 起,此下拉列表可用。
* 
禁用“动态用户登录”时,系统会显示以下 GroupMappings 表单。
5. 在下列版本的 GroupMappings 表单中,请注意启用“动态组登录”时显示的消息“登录凭据必填”。要输入“Active Directory 组名称”,请单击绿色的锁定图标。
6. “提供登录凭据”对话框显示出来后,设置 AdministrativePrincipalNameAdministrativePassword,然后单击“设置”
下表说明了组映射的设置:
组映射
名称
说明
有效值
Active Directory 组名称
在运行时关联/映射到 ThingWorx 组以进行权限/授权验证的 Active Directory 组的名称。
非空字符串,其中包含与所配置域下 Active Directory 中的 groupObjectClass 对象相对应的组名称。
ThingWorx 组名称
将包含在运行时所用 ThingWorx 权限/授权配置的 ThingWorx 组的名称。由 Active Directory 设置的用户将添加到此 ThingWorx 组。此过程基于用户所属且映射到此 ThingWorx 组的 Active Directory 组。
非空字符串,其中包含与 ThingWorx 中的组实体相对应的组名称。
使用“动态用户登录”进行组映射
对于 v.8.3.5 中增加的“动态用户登录”功能,启用“动态用户登录”时,GetDomainGroupsIsValidGroup 服务采用允许传入 Active Directory 管理用户登录凭据的自变量,例如从 UI 传入。禁用“动态用户登录”时 (默认情况下),管理用户登录凭据对于 IsValidGroupGetDomainGroups 服务是可选的。TestConnection 服务适用于所有必需的登录凭据。只要参数为空,服务即会使用管理员登录凭据。
组映射的组验证
自 v.8.3.5 起,ThingWorx Composer 在“组映射”页面上提供了一个文本框,您可在其中输入 Active Directory 组的名称。从下拉列表中选择 Active Directory 组的选项仍然可用。此文本框支持按名称或完整可分辨名称输入组。例如,名称 TestGroup 是简单名称,而 CN=TestGroup, CN=Users, DC=domain, DC=com 是完整可分辨名称。
自 v.8.3.5 起,即提供 IsValidGroup 服务,以便您能够在 Active Directory 中搜索有效组的名称。此服务采用单个 STRING 参数 groupName,用于指定您要查找的组的名称。此服务会返回 BOOLEAN 结果,指示该组是否存在于 Active Directory 中。
* 
不允许使用通配符字符 ("*") 作为 groupName 输入的一部分。
嵌套组成员资格
自 v.8.3.5 起,“将用户添加到映射的上级组”配置选项可以在 Active Directory 配置的“架构映射”部分中找到。此 BOOLEAN 设置启用或禁用嵌套组成员资格。
如果启用了嵌套组成员资格,则会发生以下情况:
使用可扩展匹配规则查询 Active Directory,以检索用户所属的组以及这些组所属的组,无论嵌套深度如何。
将这些组与“组映射”表进行比较,以将生成的 ThingWorx 用户分配到用户组。
此选项可能会对性能产生影响,因为它会增加 Active Directory 的负载,并且可能会产生较大的结果集。
如果禁用嵌套组成员资格,则工作流与 ThingWorx Platform v.8.3.0 到 8.3.4 中的工作流保持一致。
架构映射
为了能够进行身份验证和组检索/映射,本部分中的下列字段为必填字段:“用户 ID 属性名称”、“组对象类名称”、“组成员资格属性名称”、“组属性名称”、“用户标志属性名称”、“用户控制属性的禁用位”和“用户控制属性的锁定位”。
架构映射
名称
说明
XML 属性名称
默认值
值示例
用户 ID 属性名称
包含用户名称值的属性名称,用于在登录到 ThingWorx 时与指定的用户名进行匹配。
attributeUserIdName
cn
cn, userPrincipalName
用户基础可分辨名称
在用户凭据验证过程中使用的顶级目录的可分辨名称。
userBaseDN
ou=people
DC=test, DC=acme, DC=com
组对象类名称
表示对象是一个组的 objectClass 属性的值。将查询组对象并将其呈现给“组映射”配置表中的 Active Directory / ThingWorx 组映射。
groupObjectClass
group
group
用于筛选域组的组 LDAP 筛选器
允许筛选大量的域组。
* 
如果您有大量的组,则必须配置此参数,切勿留空。如果留空,则可能会影响检索大量组的性能。
groupLdapFilter
不适用
(cn=a_testgroup111*)(cn=b_testgroup222*)
组成员资格属性名称
表示用户或组是另一个组“成员”的属性名称。对于 Active Directory 中用户的每个 memberOf 条目,该用户将作为成员添加到映射至 memberOf 条目中指定 Active Directory 组的 ThingWorx 组中。
memberOfAttribute
memberOf
memberOf
组属性名称
在 ThingWorx 用户界面中用于检索组显示名称的属性名称,特别是在“组映射”配置表选择中。
* 
使用 distinguishedName 以显示 Active Directory 中组位置的完整路径。当组存在于多个域中时,这会提供其所属子域的上下文。
groupAttribute
cn
cn
用户标志属性名称
userControlAttribute
userAccountControl
userAccountControl
用户控制属性的禁用位
指定的用户标志属性名称 (即默认的 userControlAttribute) 内禁用位标志的整数/小数值。有关详细信息,请转至 https://msdn.microsoft.com/en-us/library/cc223145.aspx
userDisableBit
2
2
用户控制属性的锁定位
指定的用户标志属性名称 (即默认的 userControlAttribute) 内锁定位标志的整数/小数值。有关详细信息,请转至 https://msdn.microsoft.com/en-us/library/cc223145.aspx
userLockoutBit
16
16
森林名称标识符
用于标识域控制器的集合/森林。配置有相同字符串的每个目录服务对象均可在“组映射”配置中从彼此的域中映射组。有关使用此选项的示例,请参阅后续各个部分。
forestNameIdentifier
不适用
这对您有帮助吗?