Seguridad para el acceso remoto
Para ejecutar sesiones remotas con los dispositivos de los que los usuarios finales son responsables, estos últimos necesitan permisos y visibilidad para ejecutar los servicios de acceso remoto disponibles en sus cosas que tienen asignadas la definición de cosa RemoteAccessible. El administrador del sistema es responsable de configurar las entidades de seguridad que requieren permisos y visibilidad, como usuarios que no son administradores, grupos de usuarios y organizaciones. Los administradores también son responsables de ejecutar los servicios que conceden permisos y visibilidad para el acceso remoto.
* 
Si los activos ejecutan Axeda eMessage Agents (Axeda Gateway y Axeda Connector), primero se debe importar ThingWorx Connection Services Extension (CSE), seguido de ThingWorx Remote Access Extension (RAE) y, por último, ThingWorx Axeda Compatibility Extension (ACE). Sin las tres extensiones importadas en este orden, no se dispondrá de todas las entidades y servicios que se necesitan para los activos que ejecutan Axeda eMessage Agents.
Creación de entidades de seguridad
Para configurar la seguridad del acceso remoto, se debe crear al menos una de estas entidades:
Usuario no administrativo de ThingWorx. Por ejemplo, raUser.
Un grupo de usuarios de ThingWorx. Por ejemplo, raUserGroup. Añada un usuario que no es administrador a este grupo.
Una organización de ThingWorx. Por ejemplo, raOrg. Añada raUserGroup a esta organización.
Para obtener más información sobre los usuarios, los grupos de usuarios, las organizaciones, así como la visibilidad y los permisos para las cosas y las plantillas de cosa de estas entidades, consulte los siguientes temas:
Una vez creadas las entidades de seguridad, se pueden ejecutar los servicios para conceder permisos y visibilidad a los usuarios para el acceso remoto a cosas y cosas derivadas de una plantilla de cosa especificada. Cuando se ejecuten los servicios, se necesitarán los nombres de los grupos de usuarios y la organización que se han creado.
Ejecución de servicios para conceder visibilidad y permisos para el acceso remoto
En ThingWorx Remote Access Extension (RAE) y ThingWorx Axeda Compatibility Extension (ACE) se proporcionan servicios que automatizan la configuración de permisos y visibilidad para el acceso remoto. Las siguientes cosas proporcionan estos servicios:
Cosa ThingworxInternalRemoteAccessProvider (RAE) para activos que ejecutan una aplicación Edge escrita mediante ThingWorx Edge SDK, ThingWorx WebSocket-based Edge MicroServer (WS EMS) o Lua Script Resource (LSR):
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForThing
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForTemplate
Cosa eMessageServices (ACE) para activos que ejecutan Axeda Gateway Agents o Axeda Connector Agents:
eMessageServices.GrantRemoteAccessPermissionsForThing.
eMessageServices.GrantRemoteAccessPermissionsForTemplate.
¿Cuándo se utilizan los servicios proporcionados por cada una de estas cosas? Depende del agente que se ejecute en los dispositivos Edge. En la siguiente tabla se asignan los tipos de agentes a sus cosas RemoteAccessProvider y se muestra el nombre de la cosa desde la que se deben ejecutar los servicios para conceder permisos de acceso remoto y visibilidad a una organización o un grupo de usuarios. En la tabla también se muestra qué extensión proporciona las cosas necesarias.
Asignación de agentes a proveedores de acceso remoto
Tipo de agente
Extensiones necesarias
Proveedor de acceso remoto
Cosa de servicios (extensión)
ThingWorx WebSocket-based Edge MicroServer (WS EMS) y Lua Script Resource (LSR)
RAE
Cosa ThingworxInternalRemoteAccessProvider (RAE).
Cosa RemoteAccessPermissionsServices (RAE)
Axeda eMessage Agents (Axeda Gateway y Axeda Connector)
RAE y ACE*
Axeda Global Access Server (GAS), representado en ThingWorx por la cosa GASRemoteAccessProvider (ACE).
Cosa eMessageServices (ACE)
* 
* En RAE se proporcionan las entidades básicas para el acceso remoto que las entidades de Axeda implementan. Por este motivo, se necesitan ambas extensiones para la funcionalidad de acceso remoto con Axeda Agents.
En general, navegue hasta la cosa que proporciona los servicios de concesión de permisos para acceso remoto y, a continuación, ejecute uno o ambos servicios para conceder visibilidad y permisos para una organización y un grupo de usuarios. Para conceder visibilidad y permisos para una sola cosa, utilice el servicio GrantRemoteAccessPermissionsForThing. Para conceder visibilidad y permisos para un conjunto de cosas, específicamente todas las cosas de la misma plantilla de cosa, utilice el servicio GrantRemoteAccessPermissionsForTemplate. En cualquier caso, se deben definir los siguientes parámetros para el servicio:
organization: permite especificar el nombre de la organización a la que se debe conceder visibilidad y permisos para iniciar, finalizar y obtener sesiones remotas en la cosa o cosas especificadas derivadas de la plantilla de cosa especificada. El tipo base de ThingWorx de este parámetro es STRING.
userGroup: permite especificar el nombre del grupo de usuarios al que se debe conceder visibilidad y permisos para iniciar, finalizar y obtener sesiones remotas en la cosa o cosas especificadas derivadas de la plantilla de cosa especificada. El tipo base de ThingWorx de este parámetro es GROUPNAME.
Especifique el nombre de la entidad para la que se deben conceder permisos de acceso remoto y visibilidad a la organización y al grupo de usuarios especificados:
thingName: para el servicio que concede permisos de acceso remoto a una cosa, se debe especificar el nombre de la cosa en ThingWorx. El tipo base para este parámetro es THINGNAME.
templateName: para el servicio que concede permisos de acceso remoto a una plantilla de cosa, especifique el nombre de la plantilla de cosa. El tipo base para este parámetro es THINGTEMPLATENAME.
IMPORTANTE En la cosa o plantilla de cosa especificada para el servicio se debe implementar la definición de cosa RemoteAccessible. En la siguiente tabla se asignan los agentes a las plantillas de cosa. Si se han creado plantillas de cosa personalizadas, también se pueden especificar dichas plantillas de cosa. Sin embargo, asegúrese de que las plantillas de cosa implementen la definición de cosa RemoteAccessible.
Asignación de tipos de agente a plantillas de cosa
Tipo de agente
Plantillas de cosa
ThingWorx WebSocket-based Edge MicroServer (WS EMS) y Lua Script Resource (LSR)
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer o una plantilla de cosa personalizada en la que se implementa cualquiera de estas plantillas de cosa y se implementa la definición de cosa RemoteAccessible.
Aplicación Edge escrita mediante ThingWorx Edge C SDK, ThingWorx Edge Java SDKo ThingWorx Edge .NET SDK
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer o una plantilla de cosa personalizada en la que se implementa cualquiera de estas plantillas de cosa y se implementa la definición de cosa RemoteAccessible.
Axeda eMessage Agents
AxedaEMessageGatewayModel, AxedaManagedModel, AxedaStandaloneModel o una plantilla de cosa personalizada en la que se implementa una de estas plantillas de cosa. Todas estas plantillas de cosa implementan la definición de cosa AxedaRemoteAccessible.
Seguridad para ThingWorx Remote Access Client (RAC)
Remote Access Client se puede iniciar desde un mashup que proporciona una interfaz de usuario para gestionar y crear sesiones remotas. A partir de v. 1.1.0 de RAC y v.1.2.0 de RAE, la instancia de ThingWorx Platform genera una clave de aplicación temporal denominada clave nonce para que el usuario inicie la sesión remota. Una vez creada la clave, se genera un URI en el que se incluye la clave nonce, el host público y el puerto de la plataforma, así como el ID de sesión de la sesión remota recién creada. Este URI se utiliza para iniciar Remote Access Client. La clave nonce del URI se utiliza para establecer la conectividad de Remote Access Client con la plataforma. Una vez que la clave nonce se haya utilizado o ha vencido, se quita lo antes posible de la plataforma.
Permisos de los usuario de la plataforma
Remote Access Client se conecta a ThingWorx Platform mediante una clave nonce asociada al usuario que inicia la sesión. El usuario, a través de Remote Access Client, tiene el conjunto mínimo de requisitos de seguridad necesarios para que el cliente inicie una sesión con el dispositivo remoto:
READ en la cosa RemoteAccessible
PROPERTY READ en la cosa RemoteAccessible
SERVICE INVOKE en los servicios de sesión, como StartSession en la cosa RemoteAccessible