用户
必须定义 ThingWorx 的每个用户。
用户名称可以是电子邮件地址。用户名中不能包含以下字符:
& (and 符号)
: (冒号)
* 
在 ThingWorx 8.4.7 及更高版本中,用户名可接受冒号,但是,您无法通过基本身份验证器登录,且 Active Directory 不支持用户名中的冒号字符。其他形式的身份验证仍受支持,例如表单登录和自定义身份验证器。
/ (斜杠)
+ (加号)
有关详细信息,请参阅 命名实体
用户可以属于任意数量的组,并且可以分配大多数权限组合。与事物不同,用户没有服务、事件或订阅。
您可以从“用户”选项卡中访问混搭构建器中当前用户 (已登录用户) 的属性。运行时,它们也会出现在混搭中。您可以在运行时使用资源服务库来创建和复制用户。
默认用户
默认用户
详细信息
管理员
“管理员”为默认用户帐户,不能删除。“管理员”具有所有实体的创建、读取、更新与删除权限,以及所有运行时执行权限。
超级用户
如果您使用 Extension SDK 进行扩展开发,且需要访问提出请求的用户可能没有访问权限的受保护资源,则您可以通过适当的工厂方法来生成超级用户或系统用户上下文。您必须确保只能通过安全上下文才能访问正常运行所需的受保护资源。
系统用户
有关详细信息,请参阅 系统用户
用户命名指南
PTC 强烈建议您遵循以下事项:
不要在用户名中包含敏感信息。
对于高度敏感的用例,请考虑使用任意分配的或随机用户名,而不要使用根据 OWASP 建议从用户定义的公共数据中派生的名称。
为非管理员用户配置权限和调试错误消息
非管理员用户在出厂设置条件下没有任何权限。除非“管理员”明确允许,否则非管理员用户不能查看任何内容。按照以下提示配置新用户,并在某些操作受到限制时调试错误消息:
在 ThingWorx 8.4.0 及更高版本中中,必须在 ThingWorx 的 ComposerUser 用户组中放置新用户。这将允许用户使用运行时服务调用权限登录到 Composer。
如果用户应该有其他操作,但这些操作似乎受到限制,则“管理员”用户可以使用 应用程序日志进行调试。查找指示实体可能丢失或无法授权其他功能的错误级别消息。以下为示例错误消息:
Entity Not Found : [CurrentSessionInfo]] 指示“管理员”必须授予非管理员用户可见性权限才能查看 CurrentSessionInfo 资源。
Not authorized for ServiceInvoke on GetDaysRemainingInLicense in LicensingSubsystem] 指示该非管理员用户缺少对授权子系统上 GetDaysRemainingInLicense 服务的运行时服务调用权限。
从 ThingWorx 的先存版本 (8.4.0 之前) 迁移的任何用户实体都必须手动添加到 ComposerUsers 用户组中。ThingWorx 不会自动将导入的用户实体迁移到 ComposerUsers 用户组中。
用户扩展
用户可具有任意数量且被称为“用户扩展”的属性。用户扩展属性存储在配置表中 (它们都是强类型字符串)。因此,将信息表属性添加到用户扩展的数据形状中,然后在该信息表中为用户设置值的方式无法实现。配置表最常见的用途是存储凭据和外部资源的主机信息。 配置表不能用于存储经常进行更新的动态数据。
* 
由于用户扩展配置表是唯一不使用简单数据形状结构的配置表类型,因此,有些服务不能用于对其进行修改。这些服务有 SetConfigurationTableSetConfigurationTableRowsSetMultiRowConfigurationTable
要修改用户扩展配置,请在“建模” > “事物形态” > “用户扩展”下编辑其事物形态。
如果您允许用户重置密码,则需要使用以下用户扩展属性:
firstName
lastName
emailAddress
服务的用户权限
服务明确设计为该用户启动服务时不需要权限。例如,用户可以更改他们自己的密码。不能阻止用户使用其自己帐户上的任何服务。
语言首选项
“语言”字段中,熟悉可用语言名称的管理员可以输入经排序的、以逗号分隔的列表 (例如,ca,es,hu,fr-CA),也可从可用语言列表中进行选择。所列出的第一个语言为用户首选语言。如果用户未设置语言首选项,则会使用“默认”“系统” 本地化表
本地化标记的显示值 (译文) 由以下几项内容加以确定:用户的语言首选项、系统中配置的本地化表,以及所指定的本地化表中现有标记的译文。
例如,用户的语言首选项为 fr,pt,ru,hi (法语、葡萄牙语、俄语、印地语)。将使用 es (西班牙语)、fr-CA (加拿大法语)、it (意大利语)、pt-BR (巴西葡萄牙语)、ru (俄语) 和默认值 (可能是英语) 的本地化表来配置系统。系统搜索给定标记的值。系统首先查找现有的 fr 本地化表。不过,fr 本地化表中未包含该标记。因此,系统继续搜索 pt 本地化表。系统中没有 pt 本地化表。因此,系统继续搜索 ru。系统找到了 ru 本地化表和标记。标记具有一个值,因此会在用户界面中显示该值。