Composer での ThingWorx モデルの定義 > モデル化 > Thing Template > リモートテンプレート > Thing の存在 > Thing の存在のレポートストラテジー Thing: セキュリティの設定
Thing の存在のレポートストラテジー Thing: セキュリティの設定
セキュリティは最も重要な事柄です。ThingWorx ユーザーには必要最小限の表示、設計時間、およびランタイムアクセス許可が設定されていなければなりません。さらに、プラットフォームで自動的に実行されるすべてのサービスが、必要最小限のアクセス許可を持つユーザーコンテキストで実行されるようにします。
ストラテジー Thing の RunAsUser コンフィギュレーション
レポートストラテジーにはコンフィギュレーションフィールド RunAsUser があり、ここでプラットフォーム操作を実行するアクセス許可を付与します。デフォルトでは、このコンフィギュレーションの値として、アクセス許可がまったく付与されていない組み込みユーザーが指定されています。
カスタム ReportingStrategy がプラットフォームへのさらなるアクセスを必要とする場合 (Thing のプロパティ値など)、RunAsUser のコンフィギュレーションを変更する必要があります。セキュリティのため、この設定は管理者だけが修正できます。RunAsUser に指定されているユーザーには、ストラテジー Thing が必要とする表示と読み取りのアクセス許可が必要です。
RunAsUser コンフィギュレーションのトラブルシューティング
RunAsUser が無効であるか権限が不十分である場合、デバイスにレポート中としてマーク (isReportingtrue に設定) されなくなります。レポートの評価に失敗すると (RunAsUser が存在しないことが原因の失敗や、ストラテジーの ReportingAlgorithm を呼び出し中にセキュリティの例外が発生したことによる失敗を含む)、アプリケーションログにログメッセージが表示されます。デバイス Thing に対して EvaluateReporting を直接呼び出して評価をテストし、ログのメッセージを監視できます。事前に true に設定されており、デバイスが正常に接続していないと評価された場合、isReportingfalse に設定されることに注意してください。
サービスセキュリティの概要
サービス
エンティティ
タイプ
説明
EvaluateReporting
Reportable
デバイス Thing
レポート評価をトリガーするエントリポイント。タイマー、WebSocket バインド、およびその他のデバイス接続ステータスに影響を与える可能性があるカスタムイベントで使用されます。
このサービスはそのパラメータを ReportingAlgorithm に渡します。情報を ReportingAlgorithm に渡すには、このサービスを使用することが推奨されます。
このサービスは ReportingStrategy.ReportingAlgorithm を呼び出します。
SetReportingStrategy
Reportable
デバイス Thing
デバイスの Strategy プロパティを、そのデバイスが存在の判別に使用するストラテジーの THINGNAME に更新します。
ReportingAlgorithm
ReportingStrategy
ストラテジー Thing
Thing を評価して存在を判別します。ストラテジーの RunAsUser コンフィギュレーションのユーザーコンテキストで実行し、許可されていないアクセスを防止します。
このサービス内から ThingWorx エンティティにアクセスする代わりに、できるだけ多くの情報を (EvaluateReporting への) 引数として ReportingAlgorithm に渡すことをお勧めします。
* 
このメソッドはオーバーライド可能です。
ThingWorx イベントと EvaluateReporting
場合によっては、ThingWorx イベントの結果として EvaluateReporting サービスを実行することが望ましいことがあります。たとえば、タイマーが初めて起動した場合にこのサービスを実行する必要が生じることがあります。ThingWorx イベントはそのイベントをトリガーしたユーザーのコンテキストで実行されることを覚えておいてください。このため、それらのユーザーは EvaluateReporting サービスおよび以降の ReportingStrategy.ReportingAlgorithm の呼び出しを実行するための適切なアクセス許可を持っている必要があります。