リモートアクセスのセキュリティ
エンドユーザーが使用しているデバイスでリモートセッションを実行するには、RemoteAccessible Thing Shape が割り当てられているエンドユーザーの Thing で使用可能なリモートアクセスサービスを実行するためのアクセス許可と表示権限が必要です。アクセス許可と表示権限が必要なセキュリティエンティティ (管理者以外のユーザー、ユーザーグループ、組織など) のセットアップは、システム管理者が行います。管理者は、リモートアクセスのためのアクセス許可と表示権限を付与するサービスを実行する役割も担います。
* 
アセットが 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 を実行しているアセットに必要なすべてのエンティティとサービスを用意するには、この順序で 3 つすべての拡張機能をインポートしなければなりません。
セキュリティエンティティの作成
リモートアクセスのセキュリティをセットアップするには、以下のエンティティを少なくとも 1 つ作成しなければなりません。
管理者以外の ThingWorx ユーザー。たとえば、raUser などです。
ThingWorx ユーザーグループ。たとえば、raUserGroup などです。このグループには管理者以外のユーザーを追加します。
ThingWorx 組織。たとえば、raOrg などです。この組織には raUserGroup を追加します。
ユーザー、ユーザーグループ、組織、およびこれらのエンティティの Thing と Thing Template に対する表示権限とアクセス許可の詳細については、以下のトピックを参照してください。
組織
セキュリティエンティティを作成した後、Thing および指定した Thing Template から派生した Thing へのリモートアクセスのためのアクセス許可と表示権限をユーザーに付与するサービスを実行できます。これらのサービスを実行する際、作成したユーザーグループと組織の名前が必要です。
リモートアクセスのための表示権限とアクセス許可を付与するサービスの実行
ThingWorx Remote Access Extension (RAE) および ThingWorx Axeda Compatibility Extension (ACE) は、リモートアクセスのためのアクセス許可と表示権限の設定を自動化するサービスを提供します。以下の Thing がこれらのサービスを提供します。
ThingWorx Edge SDK で記述された Edge アプリケーション、ThingWorx WebSocket-based Edge MicroServer (WS EMS) 、または Lua Script Resource (LSR) を実行しているアセットの ThingworxInternalRemoteAccessProvider Thing (RAE):
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForThing
RemoteAccessPermissionsServices.GrantPermissionsThingWorxInternalForTemplate
Axeda Gateway Agents または Axeda Connector Agents を実行しているアセットの eMessageServices Thing (ACE):
eMessageServices.GrantRemoteAccessPermissionsForThing.
eMessageServices.GrantRemoteAccessPermissionsForTemplate.
どの Thing が提供するサービスをいつ使用するかは、Edge デバイスで実行されているエージェントによって決まります。次の表は、エージェントのタイプとその RemoteAccessProvider Thing のマッピング、およびリモートアクセスのためのアクセス許可と表示権限を組織またはユーザーグループに付与するサービスを実行する Thing の名前を示しています。この表は、必要な Thing を提供する拡張機能も示しています。
エージェントとリモートアクセスプロバイダのマッピング
エージェントのタイプ
必要な拡張機能
リモートアクセスプロバイダ
サービス Thing (拡張機能)
ThingWorx WebSocket-based Edge MicroServer (WS EMS) および Lua Script Resource (LSR)
RAE
ThingworxInternalRemoteAccessProvider Thing (RAE)。
RemoteAccessPermissionsServices Thing (RAE)
Axeda eMessage Agents (Axeda Gateway および Axeda Connector)
RAE および ACE*
ThingWorx では GASRemoteAccessProvider Thing (ACE) と表される Axeda Global Access Server (GAS)
eMessageServices Thing (ACE)
* 
* RAE には、Axeda エンティティによって実装されるリモートアクセスのための基本エンティティが用意されています。このため、Axeda Agents でリモートアクセス機能を使用するには、両方の拡張機能が必要です。
通常、リモートアクセスのためのアクセス許可を付与するサービスを提供する Thing に移動してから、これらのサービスのいずれかまたは両方を実行して、組織およびユーザーグループに表示権限とアクセス許可を付与します。1 つの Thing に表示権限とアクセス許可を付与するには、GrantRemoteAccessPermissionsForThing サービスを使用します。一連の Thing (つまり同じ Thing Template のすべての Thing) に表示権限とアクセス許可を付与するには、GrantRemoteAccessPermissionsForTemplate サービスを使用します。どちらの場合も、サービスに対して以下のパラメータを設定しなければなりません。
organization - 指定した Thing または Thing Template から派生した Thing でリモートセッションを開始、終了、および取得するための表示権限とアクセス許可を付与する必要のある組織の名前を指定します。このパラメータの ThingWorx ベースタイプは STRING です。
userGroup - 指定した Thing または Thing Template から派生した Thing でリモートセッションを開始、終了、および取得するための表示権限とアクセス許可を付与する必要のあるユーザーグループの名前を指定します。このパラメータの ThingWorx ベースタイプは GROUPNAME です。
指定した組織およびユーザーグループにリモートアクセスのためのアクセス許可と表示権限を付与する必要のあるエンティティの名前を指定します。
thingName - リモートアクセスのためのアクセス許可を Thing に付与するサービスの場合は、ThingWorx 内の Thing の名前を指定します。このパラメータのベースタイプは THINGNAME です。
templateName - リモートアクセスのためのアクセス許可を Thing Template に付与するサービスの場合は、Thing Template の名前を指定します。このパラメータのベースタイプは THINGTEMPLATENAME です。
重要 サービスに対して指定した Thing または Thing Template によって RemoteAccessible Thing Shape が実装されなければなりません。下の表は、エージェントと Thing Template のマッピングを示しています。カスタム Thing Template を作成した場合は、それらの Thing Template を指定することもできます。ただし、これらの Thing Template によって RemoteAccessible Thing Shape が実装されることを確認してください。
エージェントタイプと Thing Template のマッピング
エージェントのタイプ
Thing Template
ThingWorx WebSocket-based Edge MicroServer (WS EMS) および Lua Script Resource (LSR)
RemoteThingWithTunnelsRemoteThingWithTunnelsAndFileTransfer、またはこれらの Thing Template のいずれかと RemoteAccessible Thing Shape の両方を実装するカスタム Thing Template。
ThingWorx Edge C SDK で記述された Edge アプリケーション、ThingWorx Edge Java SDK、または ThingWorx Edge .NET SDK
RemoteThingWithTunnelsRemoteThingWithTunnelsAndFileTransfer、またはこれらの Thing Template のいずれかと RemoteAccessible Thing Shape の両方を実装するカスタム Thing Template。
Axeda eMessage Agents
AxedaEMessageGatewayModelAxedaManagedModelAxedaStandaloneModel、またはこれらの Thing Template のいずれかを実装するカスタム Thing Template。これらの Thing Template はすべて AxedaRemoteAccessible Thing Shape を実装します。
ThingWorx Remote Access Client (RAC) のセキュリティ
Remote Access Client はマッシュアップから起動でき、このマッシュアップにはリモートセッションを管理および作成するためのユーザーインタフェースが用意されています。RAC v.1.1.0 および RAE v.1.2.0 より、リモートセッションを開始するユーザーに対して nonce キーと呼ばれる一時的なアプリケーションキーが ThingWorx Patform によって生成されます。このキーが作成されると、nonce キー、プラットフォームのパブリックホストとポート、および新規作成したリモートセッションのセッション ID で構成される URI が作成されます。この URI を使用して、Remote Access Client が起動されます。この URI 内の nonce キーを使用して、Remote Access Client からプラットフォームへの接続が確立されます。nonce キーが使用されるか期限切れになると、ただちにプラットフォームから除去されます。
プラットフォームユーザーのアクセス許可
Remote Access Client は、セッションを開始したユーザーに関連付けられている nonce キーを使用して ThingWorx Platform に接続します。クライアントがリモートデバイスでセッションを開始するために最小限必要なセキュリティ要件が、Remote Access Client を介してユーザーに適用されます。
RemoteAccessible Thing での READ
RemoteAccessible Thing での PROPERTY READ
セッションサービスでの SERVICE INVOKE (RemoteAccessible Thing での StartSession など)