Protezione per l'accesso remoto
Per eseguire sessioni remote con i dispositivi di cui sono responsabili, gli utenti finali devono disporre dei permessi e della visibilità per eseguire i servizi di accesso remoto disponibili negli oggetti di cui è stata loro assegnata la thing shape RemoteAccessible. L'amministratore di sistema è responsabile dell'impostazione delle entità di protezione che richiedono permessi e visibilità, ad esempio utenti non amministratori, gruppi di utenti e organizzazioni. Gli amministratori sono inoltre responsabili dell'esecuzione dei servizi che concedono i permessi e la visibilità per l'accesso remoto.
* 
Se gli asset eseguono Axeda eMessage Agents (Axeda Gateway e Axeda Connector), è necessario importare innanzitutto ThingWorx Connection Services Extension (CSE), quindi ThingWorx Remote Access Extension (RAE) e infine ThingWorx Axeda Compatibility Extension (ACE). Senza tutte e tre le estensioni, importate in quest'ordine, non saranno disponibili tutti i servizi e le entità necessari per gli asset che eseguono Axeda eMessage Agents.
Creazione delle entità di protezione
Per impostare la protezione per l'accesso remoto, è necessario creare almeno una delle entità indicate di seguito.
Un utente ThingWorx non amministratore. Ad esempio, raUser.
Un gruppo di utenti ThingWorx. Ad esempio, raUserGroup. Aggiungere l'utente non amministratore al gruppo.
Un'organizzazione ThingWorx. Ad esempio, raOrg. Aggiungere raUserGroup all'organizzazione.
Per informazioni dettagliate su utenti, gruppi di utenti e organizzazioni, nonché su visibilità e permessi per gli oggetti e i modelli di oggetto di queste entità, vedere i seguenti argomenti:
Utenti
Una volta create le entità di protezione è possibile eseguire i servizi per concedere permessi e visibilità agli utenti per l'accesso remoto agli oggetti e agli oggetti derivati da un modello di oggetto specificato. Quando si eseguono i servizi, sono necessari i nomi dei gruppi di utenti e dell'organizzazione creati.
Esecuzione di servizi per concedere visibilità e permessi per l'accesso remoto
ThingWorx Remote Access Extension (RAE) e ThingWorx Axeda Compatibility Extension (ACE) forniscono servizi che automatizzano l'impostazione dei permessi e della visibilità per l'accesso remoto. Di seguito sono riportati gli oggetti che forniscono questi servizi.
Oggetto ThingworxInternalRemoteAccessProvider (RAE) per asset che eseguono un'applicazione edge scritta con ThingWorx Edge SDK, ThingWorx WebSocket-based Edge MicroServer (WS EMS) o Lua Script Resource (LSR):
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForThing
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForTemplate
Oggetto eMessageServices (ACE) per asset che eseguono Axeda Gateway Agents o Axeda Connector Agents:
eMessageServices.GrantRemoteAccessPermissionsForThing.
eMessageServices.GrantRemoteAccessPermissionsForTemplate.
Quando si utilizzano i servizi offerti da ciascuno di questi oggetti? Dipende dall'agente in esecuzione nei dispositivi edge. La tabella seguente mappa i tipi di agenti ai rispettivi oggetti RemoteAccessProvider e mostra il nome dell'oggetto da cui eseguire i servizi per concedere i permessi e la visibilità per l'accesso remoto a un'organizzazione e/o un gruppo di utenti. Nella tabella viene inoltre indicata l'estensione che fornisce gli oggetti necessari.
Mappatura degli agenti ai provider di accesso remoto
Tipo di agente
Estensioni obbligatorie
Provider di accesso remoto
Oggetto servizi (estensione)
ThingWorx WebSocket-based Edge MicroServer (WS EMS) e Lua Script Resource (LSR)
RAE
Oggetto ThingworxInternalRemoteAccessProvider (RAE).
Oggetto RemoteAccessPermissionsServices (RAE)
Axeda eMessage Agents (Axeda Gateway e Axeda Connector)
RAE e ACE*
Axeda Global Access Server (GAS), rappresentato in ThingWorx dall'oggetto GASRemoteAccessProvider (ACE).
Oggetto eMessageServices (ACE)
* 
* RAE fornisce le entità di base per l'accesso remoto implementate dalle entità Axeda. Per questo motivo, sono necessarie entrambe le estensioni per la funzionalità di accesso remoto con Axeda Agents.
In generale, passare all'oggetto che fornisce i servizi per la concessione di permessi e visibilità per l'accesso remoto, quindi eseguire uno o entrambi i servizi per concedere visibilità e permessi per un'organizzazione e un gruppo di utenti. Per concedere visibilità e permessi a un singolo oggetto, utilizzare il servizio GrantRemoteAccessPermissionsForThing. Per concedere visibilità e permessi a un insieme di oggetti, ad esempio, tutti gli oggetti dello stesso modello di oggetto, utilizzare il servizio GrantRemoteAccessPermissionsForTemplate. In entrambi i casi, è necessario impostare i seguenti parametri per il servizio:
organization - Specificare il nome dell'organizzazione a cui concedere visibilità e permessi per avviare, terminare e ottenere sessioni remote per l'oggetto o gli oggetti specificati derivati dal modello di oggetto specificato. Il tipo di base ThingWorx di questo parametro è STRING.
UserGroup - Specificare il nome del gruppo di utenti a cui concedere visibilità e permessi per avviare, terminare e ottenere sessioni remote per l'oggetto o gli oggetti specificati derivati dal modello di oggetto specificato. Il tipo di base ThingWorx di questo parametro è GROUPNAME.
Specificare il nome dell'entità per cui devono essere concessi permessi e visibilità di accesso remoto all'organizzazione e al gruppo di utenti specificati:
thingName - Per il servizio che concede permessi di accesso remoto a un oggetto, specificare il nome dell'oggetto in ThingWorx. Il tipo di base di questo parametro è THINGNAME.
templateName - Per il servizio che concede permessi di accesso remoto a un modello di oggetto, specificare il nome del modello di oggetto. Il tipo di base di questo parametro è THINGTEMPLATENAME.
IMPORTANTE: l'oggetto o il modello di oggetto specificato per il servizio deve implementare la thing shape RemoteAccessible. La tabella che segue mappa gli agenti ai modelli di oggetto. Se sono stati creati modelli di oggetto personalizzati, è possibile specificare anche questi. Assicurarsi tuttavia che i modelli di oggetto implementino la thing shape RemoteAccessible.
Mappatura dei tipi di agente ai modelli di oggetto
Tipo di agente
Modelli di oggetto
ThingWorx WebSocket-based Edge MicroServer (WS EMS) e Lua Script Resource (LSR)
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer o un modello di oggetto personalizzato che implementa uno di questi modelli di oggetto e la thing shape RemoteAccessible.
Applicazione edge scritta con ThingWorx Edge C SDK, ThingWorx Edge Java SDKo ThingWorx Edge .NET SDK
RemoteThingWithTunnels, RemoteThingWithTunnelsAndFileTransfer o un modello di oggetto personalizzato che implementa uno di questi modelli di oggetto e la thing shape RemoteAccessible.
Axeda eMessage Agents
AxedaEMessageGatewayModel, AxedaManagedModel, AxedaStandaloneModel o un modello di oggetto personalizzato che implementa uno di questi modelli di oggetto. Tutti questi modelli di oggetto implementano la thing shape AxedaRemoteAccessible.
Protezione per ThingWorx Remote Access Client (RAC)
Remote Access Client può essere avviato da un mashup che fornisce un'interfaccia utente per la gestione e la creazione di sessioni remote. A partire dalla v. 1.1.0 di RAC e dalla v. 1.2.0 di RAE, una chiave di accesso temporanea, detta chiave nonce, viene generata da ThingWorx Platform per l'utente che avvia la sessione remota. Una volta creata la chiave, viene costruito un URI che include la chiave nonce, l'host e la porta pubblici della piattaforma e l'ID della sessione remota appena creata. Questo URI viene utilizzato per avviare Remote Access Client. La chiave nonce nell'URI viene utilizzata per stabilire la connettività da Remote Access Client alla piattaforma. Appena possibile, dopo che la chiave nonce è stata utilizzata o scade, viene rimossa dalla piattaforma.
Permessi utente per la piattaforma
Remote Access Client si connette a ThingWorx Platform utilizzando una chiave nonce associata all'utente che avvia la sessione. L'utente, tramite Remote Access Client, dispone dell'insieme minimo di requisiti di protezione necessari affinché il client avvii una sessione con il dispositivo remoto:
READ per l'oggetto RemoteAccessible
PROPERTY READ per l'oggetto RemoteAccessible
SERVICE INVOKE per i servizi di sessione, ad esempio StartSession per l'oggetto RemoteAccessible