远程访问安全性
要对所负责的设备运行远程会话,最终用户需要权限和可见性才能执行已分配 RemoteAccessible 事物形态的相应事物上可用的远程访问服务。系统管理员负责设置需要权限和可见性的安全实体,例如:非管理员用户、用户组和组织。管理员还负责执行为远程访问授予权限和可见性的服务。
* 
如果资产正在运行 Axeda eMessage Agents (Axeda Gateway 和 Axeda Connector),必须先导入 ThingWorx Connection Services Extension (CSE),然后导入 ThingWorx Remote Access Extension (RAE),最后导入 ThingWorx Axeda Compatibility Extension (ACE)。如果未按此顺序导入所有三个扩展,您将不具备运行 Axeda eMessage Agents 的资产所需的全部实体和服务。
创建安全实体
要设置远程访问的安全性,需要为下列每个实体至少创建一个:
非管理 ThingWorx 用户。例如,raUser
ThingWorx 用户组。例如,raUserGroup。将非管理员用户添加到此组中。
ThingWorx 组织。例如,raOrg。将 raUserGroup 添加到此组织。
有关用户、用户组、组织以及这些实体的事物和事物模板的可见性和权限的详细信息,请参阅以下主题:
用户
组织
创建安全实体后,您可以运行服务来授予远程访问用户对事物以及从特定事物模板衍生的事物的权限和可见性。运行服务时,您将需要已创建的用户组和组织的名称。
运行服务以授予远程访问的可见性和权限
ThingWorx Remote Access Extension (RAE)ThingWorx Axeda Compatibility Extension (ACE) 提供的服务可自动设置远程访问的权限和可见性。以下事物提供了这些服务:
如果资产运行使用 ThingWorx Edge SDKThingWorx WebSocket-based Edge MicroServer (WS EMS) Lua Script Resource (LSR) 编写的 Edge 应用程序,则是 ThingworxInternalRemoteAccessProvider 事物 (RAE):
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForThing
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForTemplate
如果资产运行 Axeda Gateway AgentsAxeda Connector Agents,则是 eMessageServices 事物 (ACE):
eMessageServices.GrantRemoteAccessPermissionsForThing
eMessageServices.GrantRemoteAccessPermissionsForTemplate
何时使用这些事物提供的服务?这取决于在 Edge 设备上运行的代理程序。下表将代理程序类型映射到其 RemoteAccessProvider 事物,并显示授予对组织和/或用户组的远程访问权限和可见性的服务所属事物的名称。该表还显示哪些扩展提供了必要的事物。
将代理程序映射到远程访问提供者
代理程序类型
必需的扩展
远程访问提供者
服务事物 (扩展)
ThingWorx WebSocket-based Edge MicroServer (WS EMS)Lua Script Resource (LSR)
RAE
ThingworxInternalRemoteAccessProvider 事物 (RAE)。
RemoteAccessPermissionsServices 事物 (RAE)
Axeda eMessage Agents (Axeda GatewayAxeda Connector)
RAEACE*
Axeda Global Access Server (GAS),在 ThingWorx 中由 GASRemoteAccessProvider 事物 (ACE) 表示。
eMessageServices 事物 (ACE)
* 
* RAE 为 Axeda 实体所实现的远程访问提供基本实体。因此,为了使用 Axeda Agents 的远程访问功能,您需要这两个扩展。
基本过程如下:导航至为远程访问授予权限的服务所属的事物,运行其中一个或两个服务,以授予组织和用户组所需的可见性和权限。要授予对单个事物的可见性和权限,请使用服务 GrantRemoteAccessPermissionsForThing。要授予对一组事物的可见性和权限 (即所有具有相同事物模板的事物),请使用 GrantRemoteAccessPermissionsForTemplate 服务。在任一情况下,都必须为服务设置以下参数:
organization - 指定应授予其可见性和权限的组织的名称,以在指定事物或从指定事物模板衍生的事物上启动、结束和获取远程会话。此参数的 ThingWorx 基本类型为 STRING
userGroup - 指定应授予其可见性和权限的用户组名称,以在指定事物或从指定事物模板衍生的事物上启动、结束和获取远程会话。此参数的 ThingWorx 基本类型为 GROUPNAME
指定要为相关组织和用户组授予远程访问权限和可见性的实体的名称:
thingName - 对于授予针对某一事物的远程访问权限的服务,请在 ThingWorx 中指定该事物的名称。此参数的基本类型为 THINGNAME
templateName - 对于授予针对某一事物模板的远程访问权限的服务,请指定该事物模板的名称。此参数的基本类型为 THINGTEMPLATENAME
重要信息! 为服务指定的事物或事物模板必须实现 RemoteAccessible 事物形态。下表将代理程序映射到事物模板。如果您已创建了自定义事物模板,则还可以指定这些事物模板。但是,请确保事物模板实现了 RemoteAccessible 事物形态。
将代理程序类型映射到事物模板
代理程序类型
事物模板
ThingWorx WebSocket-based Edge MicroServer (WS EMS)Lua Script Resource (LSR)
RemoteThingWithTunnelsRemoteThingWithTunnelsAndFileTransfer 或实现其中一个事物模板并且实现 RemoteAccessible 事物形态的自定义事物模板。
使用 ThingWorx Edge C SDKThingWorx Edge Java SDKThingWorx Edge .NET SDK 编写的 Edge 应用程序
RemoteThingWithTunnelsRemoteThingWithTunnelsAndFileTransfer 或实现其中一个事物模板并且实现 RemoteAccessible 事物形态的自定义事物模板。
Axeda eMessage Agents
AxedaEMessageGatewayModelAxedaManagedModelAxedaStandaloneModel 或实现其中一个事物模板的自定义事物模板。所有这些事物模板均可实现 AxedaRemoteAccessible 事物形态。
ThingWorx Remote Access Client (RAC) 的安全性
Remote Access Client 可从混搭中启动,该混搭可提供用于管理和创建远程会话的用户界面。自 RAC v.1.1.0 和 RAE v.1.2.0 开始,ThingWorx Platform 将生成一个临时应用程序密钥 (称为 nonce 密钥),以供用户启动远程会话使用。该密钥创建后,将构建一个 URI,其中包括 nonce 密钥、平台的公共主机和端口、新创建的远程会话的会话 ID。此 URI 可用于启动 Remote Access Client。URI 中的 nonce 密钥可用于建立从 Remote Access Client 到平台的连接。nonce 密钥一经使用或一旦过期,将立即从平台中移除。
平台用户权限
Remote Access Client 使用与启动会话的用户关联的 nonce 密钥连接到 ThingWorx Platform。用户 (通过 Remote Access Client) 具备客户端使用远程设备启动会话所需的最低安全要求:
RemoteAccessible 事物上的 READ
RemoteAccessible 事物上的 PROPERTY READ
会话服务上的 SERVICE INVOKE,例如 RemoteAccessible 事物上的 StartSession