Sécurité de l'accès à distance
Pour exécuter des sessions à distance avec les périphériques dont ils sont responsables, les utilisateurs finaux doivent disposer des autorisations et de la visibilité pour exécuter les services d'accès à distance disponibles sur leurs objets auxquels la forme d'objet RemoteAccessible est affectée. L'administrateur système est responsable de la configuration des entités de sécurité qui nécessitent des autorisations et de la visibilité, telles que les utilisateurs non-administrateurs, les groupes d'utilisateurs et les organisations. Les administrateurs sont également responsables de l'exécution des services qui accordent les autorisations et la visibilité pour l'accès à distance.
* 
Si vos actifs exécutent Axeda eMessage Agents (Axeda Gateway et Axeda Connector), ThingWorx Connection Services Extension (CSE) doit être importé en premier, suivi de ThingWorx Remote Access Extension (RAE) et enfin de ThingWorx Axeda Compatibility Extension (ACE). Si vous n'importez pas ces trois extensions dans l'ordre spécifié, vous ne disposerez pas de toutes les entités et de tous les services dont vous aurez besoin pour les actifs qui exécutent Axeda eMessage Agents.
Création d'entités de sécurité
Pour configurer la sécurité de l'accès à distance, vous devez créer au moins une instance de chacune de ces entités :
Un utilisateur non-administrateur ThingWorx. Par exemple, raUser.
Un groupe d'utilisateurs ThingWorx. Par exemple, raUserGroup. Ajoutez l'utilisateur non-administrateur à ce groupe.
Une organisation ThingWorx. Par exemple, raOrg. Ajoutez raUserGroup à cette organisation.
Pour plus d'informations sur les utilisateurs, les groupes d'utilisateurs, les organisations, ainsi que la visibilité et les autorisations sur les objets et les modèles d'objet de ces entités, consultez les rubriques suivantes :
Une fois que vous avez créé les entités de sécurité, vous pouvez exécuter des services pour accorder des autorisations et une visibilité aux utilisateurs pour l'accès à distance aux objets, y compris ceux dérivés d'un modèle d'objet spécifié. Lors de l'exécution des services, vous aurez besoin des noms des groupes d'utilisateurs et de l'organisation que vous avez créés.
Exécution des services pour accorder la visibilité et les autorisations pour l'accès à distance
ThingWorx Remote Access Extension (RAE) et ThingWorx Axeda Compatibility Extension (ACE) fournissent des services qui automatisent la définition des autorisations et de la visibilité pour l'accès à distance. Les objets suivants fournissent ces services :
L'objet ThingworxInternalRemoteAccessProvider (RAE) pour les actifs exécutant une application Edge écrite à l'aide de ThingWorx Edge SDK, ThingWorx WebSocket-based Edge MicroServer (WS EMS) ou Lua Script Resource (LSR) :
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForThing
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForTemplate
L'objet eMessageServices (ACE) pour les actifs exécutant Axeda Gateway Agents ou Axeda Connector Agents :
eMessageServices.GrantRemoteAccessPermissionsForThing.
eMessageServices.GrantRemoteAccessPermissionsForTemplate.
Quand faut-il utiliser les services fournis par chacun de ces objets ? Cela dépend de l'agent qui s'exécute sur vos périphériques Edge. La table ci-dessous mappe les types d'agents à leurs objets RemoteAccessProvider, et affiche le nom de l'objet à partir duquel exécuter les services afin d'accorder les autorisations d'accès à distance et la visibilité sur une organisation et/ou un groupe d'utilisateurs. Cette table indique également quelle extension fournit les objets nécessaires.
Mappage des agents aux fournisseurs d'accès à distance
Type d'agent
Extensions requises
Fournisseur d'accès à distance
Objet des services (extension)
ThingWorx WebSocket-based Edge MicroServer (WS EMS) et Lua Script Resource (LSR)
RAE
Objet ThingworxInternalRemoteAccessProvider (RAE)
Objet RemoteAccessPermissionsServices (RAE)
Axeda eMessage Agents (Axeda Gateway et Axeda Connector)
RAE et ACE*
Axeda Global Access Server (GAS), représenté dans ThingWorx par l'objet GASRemoteAccessProvider (ACE)
Objet eMessageServices (ACE)
* 
* RAE fournit les entités de base pour l'accès à distance qui sont implémentées par les entités Axeda. Pour cette raison, vous avez besoin des deux extensions pour la fonctionnalité d'accès à distance avec Axeda Agents.
En général, accédez à l'objet qui fournit les services accordant les autorisations d'accès à distance, puis exécutez l'un ou l'autre des services pour accorder la visibilité et les autorisations à une organisation et à un groupe d'utilisateurs. Pour accorder la visibilité et des autorisations sur un seul objet, utilisez le service GrantRemoteAccessPermissionsForThing. Pour accorder la visibilité et des autorisations sur un ensemble d'objets, à savoir tous les objets d'un modèle d'objet, utilisez le service GrantRemoteAccessPermissionsForTemplate. Dans les deux cas, vous devez définir les paramètres suivants pour le service :
organization : indiquez le nom de l'organisation qui doit disposer de la visibilité et des autorisations pour démarrer, terminer et obtenir des sessions à distance sur l'objet spécifié ou les objets dérivés du modèle d'objet spécifié. Le type ThingWorx de base de ce paramètre est STRING.
userGroup : indiquez le nom du groupe d'utilisateurs qui doit disposer de la visibilité et des autorisations pour démarrer, terminer et obtenir des sessions à distance sur l'objet spécifié ou les objets dérivés du modèle d'objet spécifié. Le type ThingWorx de base de ce paramètre est GROUPNAME.
Spécifiez le nom de l'entité pour laquelle les autorisations d'accès à distance et la visibilité doivent être accordées à l'organisation et au groupe d'utilisateurs spécifiés :
thingName : pour le service qui accorde des autorisations d'accès distant à un objet, spécifiez le nom de l'objet dans ThingWorx. Le type de base de ce paramètre est THINGNAME.
templateName : pour le service qui accorde des autorisations d'accès à distance à un modèle d'objet, spécifiez le nom du modèle d'objet. Le type de base de ce paramètre est THINGTEMPLATENAME.
IMPORTANT : L'objet ou le modèle d'objet spécifié pour le service doit implémenter la forme d'objet RemoteAccessible. La table ci-dessous mappe les agents aux modèles d'objet. Si vous avez créé des modèles d'objet personnalisés, vous pouvez également spécifier ces modèles d'objet. Toutefois, assurez-vous que les modèles d'objet implémentent la forme d'objet RemoteAccessible.
Mappage des types d'agent aux modèles d'objet
Type d'agent
Modèles d'objet
ThingWorx WebSocket-based Edge MicroServer (WS EMS) et Lua Script Resource (LSR)
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer ou un modèle d'objet personnalisé qui implémente l'un de ces modèles d'objet et implémente la forme d'objet RemoteAccessible.
Application Edge écrite à l'aide de ThingWorx Edge C SDK, ThingWorx Edge Java SDK ou ThingWorx Edge .NET SDK
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer ou un modèle d'objet personnalisé qui implémente l'un de ces modèles d'objet et implémente la forme d'objet RemoteAccessible.
Axeda eMessage Agents
AxedaEMessageGatewayModel, AxedaManagedModel, AxedaStandaloneModel ou un modèle d'objet personnalisé qui implémente l'un de ces modèles d'objet. Tous ces modèles d'objet implémentent la forme d'objet AxedaRemoteAccessible.
Sécurité pour ThingWorx Remote Access Client (RAC)
Remote Access Client peut être lancé à partir d'une application composite qui fournit une interface utilisateur pour la gestion et la création de sessions distantes. A compter de la version 1.1.0 de RAC et de la version 1.2.0 de RAE, une clé d'application temporaire, appelée clé nonce, est générée par ThingWorx Platform pour l'utilisateur à l'origine de la session à distance. Une fois cette clé créée, un URI est construit et inclut la clé nonce, l'hôte et le port publics de la plateforme, ainsi que l'ID de la nouvelle session à distance créée. Cet URI est utilisé pour lancer Remote Access Client. La clé nonce dans l'URI est utilisée pour établir la connectivité entre Remote Access Client et la plateforme. Dès que possible après son utilisation ou son expiration, la clé nonce est supprimée de la plateforme.
Autorisations pour les utilisateurs de la plateforme
Remote Access Client se connecte à ThingWorx Platform à l'aide d'une clé nonce associée à l'utilisateur à l'origine de la session. Via Remote Access Client, l'utilisateur dispose de l'ensemble minimum d'exigences de sécurité nécessaires pour que le client démarre une session avec le périphérique distant :
READ sur l'objet RemoteAccessible.
PROPERTY READ sur l'objet RemoteAccessible.
SERVICE INVOKE sur les services de session tels que StartSession sur l'objet RemoteAccessible.