Définition du modèle ThingWorx dans Composer > Modélisation > Modèles d'objet > Modèles distants > Présence d'objet > Objets de stratégie de reporting de présence d'objet : configuration de sécurité
Objets de stratégie de reporting de présence d'objet : configuration de sécurité
La sécurité est primordiale. Vérifiez que vos utilisateurs ThingWorx disposent des autorisations minimales requises en matière de visibilité, de conception et d'exécution. Assurez-vous également que tous les services exécutés automatiquement par la plateforme le sont dans un contexte utilisateur disposant des autorisations minimales requises.
Configuration de RunAsUser pour les objets de stratégie
Les stratégies de reporting disposent d'un champ de configuration (RunAsUser) afin d'accorder des autorisations pour réaliser des actions sur la plateforme. Par défaut, la valeur de cette configuration est un utilisateur intégré qui ne dispose d'aucune autorisation.
Si un objet ReportingStrategy personnalisé nécessite l'accès à la plateforme, comme les valeurs de propriété d'un objet, la configuration RunAsUser doit être modifiée. Pour des raisons de sécurité, seuls les administrateurs peuvent modifier ce paramètre. L'utilisateur spécifié pour RunAsUser doit disposer des autorisations en matière de visibilité et de lecture requises par votre objet de stratégie.
Dépannage de la configuration RunAsUser
Une configuration RunAsUser non valide ou disposant de droits insuffisants empêchera votre appareil d'être identifié comme émetteur de données de reporting (isReporting défini sur true). Des messages de journal sont consignés dans le journal de l'application après chaque échec d'évaluation de reporting, y compris les échecs dus à l'absence de configuration RunAsUser ou à une exception de sécurité lors de la tentative d'appel du service ReportingAlgorithm de votre stratégie. Vous pouvez appeler directement EvaluateReporting sur votre objet d'appareil afin de tester l'évaluation et de contrôler les messages consignés. Notez que l'évaluation définit isReporting sur false si l'état était précédemment défini sur true et que l'évaluation détermine que l'appareil n'est pas connecté normalement.
Résumé de la sécurité des services
Service
EntityOf
Type
Description
EvaluateReporting
Signalable
Objet d'appareil
Point d'entrée pour le déclenchement d'évaluations de reporting. Utilisé par les timers, les liaisons WebSocket et d'autres événements personnalisés pouvant avoir un impact sur le statut de connexion de l'appareil.
Ce service transmet ses paramètres via le service ReportingAlgorithm. Il est recommandé de l'utiliser pour transmettre des informations à votre service ReportingAlgorithm.
Ce service appelle ReportingStrategy.ReportingAlgorithm.
SetReportingStrategy
Signalable
Objet d'appareil
Met à jour la propriété Strategy sur un appareil avec le THINGNAME de la stratégie utilisée par l'appareil pour déterminer la présence.
ReportingAlgorithm
ReportingStrategy
Objet de stratégie
Evalue un objet afin de déterminer la présence. S'exécute dans le contexte utilisateur de la configuration RunAsUser de la stratégie afin d'empêcher tout accès non autorisé.
Il est recommandé de transmettre autant d'informations que possible dans le service ReportingAlgorithm en tant qu'arguments (vers EvaluateReporting) plutôt que d'accéder aux entités ThingWorx depuis ce service.
* 
Cette méthode peut être remplacée.
Evénements ThingWorx et EvaluateReporting
Dans certaines instances, il peut être souhaitable d'exécuter le service EvaluateReporting suite à un événement ThingWorx. Par exemple, vous pouvez souhaiter exécuter le service lorsqu'un timer se déclenche. Gardez à l'esprit que les événements ThingWorx s'exécutent dans le contexte de l'utilisateur qui les déclenche. Par conséquent, ces utilisateurs doivent disposer des autorisations appropriées pour exécuter le service EvaluateReporting et l'appel de ReportingStrategy.ReportingAlgorithm qui suit.