审计活动的安全
ThingWorx Platform 上的活动在用户的上下文 (特别是用户的安全上下文) 中进行。用户可以是针对事物调用服务的人员,也可以是访问平台以从 Edge 设备传送入站消息的 ThingWorx Connection Server。这两类用户均在包含已分配给用户的权限的已定义安全上下文中执行操作。系统提供了设计时权限和运行时权限。
* 
有关在安全上下文中审计切换的信息,请参阅 审计安全上下文的切换
设置权限
ThingWorx 有两组权限:一组为设计时权限,另一组为运行时权限。设计时权限用于管理可以修改实体 (创建、读取、更新和删除) 的用户。运行时权限决定可以访问数据、执行服务和触发事物 (包括数据表、流和用户) 事件的用户。
管理员可以为用户组定义显式权限,以及覆盖这些权限的例外情况。例如,您可以限制执行服务的权限,然后定义允许用户仅执行一个特定服务的服务覆盖。这种灵活性可以实现更加精细的控制,例如,特定用户组可以访问哪些事物属性、事件或服务。默认情况下,只有“管理员”组中的用户具有审计子系统组件的完整权限。因此,管理员需要使用服务覆盖授予非管理员用户调用审计子系统提供的服务的能力。
默认情况下,“管理员”组中的用户具有下列审计组件的权限:
审计子系统,是用于公开 QueryAuditHistoryArchiveAuditHistoryExportAuditDataPurgeAuditData 服务的系统对象。
AuditArchiveFileRepository 是用于审计存档的“审计子系统文件信息库”。
AuditArchiveScheduler 是控制审计条目自动存档的 Scheduler 事物。
AuditPurgeScheduler 是用于控制自动清除审计条目操作的 Scheduler 事物。
AuditArchiveCleanupScheduler 用于计划已存档文件的清理操作。
AuditArchiveCleanupNotificationScheduler 用于发送清理的提醒通知。
下表显示了可以授予给用户组中非管理员用户以使其访问这些组件的权限。有关非管理员用户组运行审计子系统服务所需的权限,请参阅下文的 非管理员运行审计服务所需的权限部分。
* 
确保 为非管理员用户授予在设计时编辑对象的权限。对于管理员,请不要在设计时编辑系统对象。如果在设计时编辑对象,则所做更改可能会在升级过程中丢失。
组件
非管理员用户组的权限
审计子系统
要允许非管理员用户和用户组调用 QueryAuditHistoryArchiveAuditHistoryExportAuditDataPurgeAuditData 服务:
审计子系统 -“设计时” > “读取”
审计子系统 -“运行时” > “属性、服务或事件覆盖”。请针对您希望组中用户能够调用的每个服务定义“服务覆盖”,并为每个服务添加“服务执行”
AuditArchiveFileRepository
切勿向非管理员用户或用户组授予审计子系统的 AuditArchiveFileRepository 权限。
AuditArchiveScheduler
“管理员”组中的用户应具有访问此 Scheduler 事物的权限。Scheduler 事物具有称为 lastArchivedTime 属性,该属性会在每次成功运行存档操作后更新。如果可能,此属性始终不应由用户、管理员或非管理员更新。对于此原因 (以及组织的其他可能原因),不建议为非管理员用户授予访问 Scheduler 的权限。
AuditPurgeScheduler
仅“管理员”组中的用户应具有此计划程序事物的访问权限。建议不要为非管理员用户授予此计划程序的访问权限。
AuditArchiveCleanupScheduler
对于非管理员用户执行清理服务:
AuditArchiveCleanupScheduler -“设计时” > “读取”
AuditArchiveCleanupScheduler -“运行时” > “属性、服务或事件覆盖”。为此服务定义“服务覆盖”(“服务执行”)。
AuditArchiveCleanupNotificationScheduler
对于非管理员用户执行清理服务的通知:
AuditArchiveCleanupNotificationScheduler -“设计时” > “读取”
AuditArchiveCleanupNotificationScheduler -“运行时” > “属性、服务或事件覆盖”。为此服务定义“服务覆盖”(“服务执行”)。
非管理员运行审计服务所需的权限
通常情况下,要允许用户组中的非管理员用户调用“审计子系统”的服务,应创建一个用户组并向该用户组授予以下权限:
审计子系统 - 可见性权限
审计子系统 - 设计时权限 - 允许读取
审计子系统运行时权限 - 为您希望组中用户能够调用的每个服务定义服务覆盖,并允许服务执行。
下表列出了需要向实体授予的权限,以允许在“审计子系统”中对其调用服务:
服务
实体类型
实体名称
可见性
设计时
运行时
QueryAuditHistory
子系统
AuditSubsystem
读取
服务:QueryAuditHistory - 服务执行
数据形状
AuditHistory
读取
ArchiveAuditHistory
子系统
AuditSubsystem
读取
服务:ArchiveAuditHistory:服务执行
事物
AuditArchiveScheduler
属性 LastArchiveTime:属性读取和属性写入
ExportAuditData
子系统
AuditSubsystem
读取
服务:ExportAuditData:服务执行
事物
AuditArchiveScheduler
属性 LastArchivedTime:属性读取和属性写入
事物
<用户创建的 FileRepository>
所有服务:服务执行
PurgeAuditData
子系统
AuditSubsystem
读取
服务 PurgeAuditData:服务执行
事物
AuditPurgeScheduler
属性读取和属性写入