审计活动的安全
ThingWorx Platform 上的活动在用户的上下文 (特别是用户的安全上下文) 中进行。用户可以是针对事物调用服务的人员,也可以是访问平台以从 Edge 设备传送入站消息的 ThingWorx Connection Server。这两类用户均在包含已分配给用户的权限的已定义安全上下文中执行操作。系统提供了设计时权限和运行时权限。
* 
有关在安全上下文中审计切换的信息,请参阅审计安全上下文的切换
ThingWorx 权限
ThingWorx 中的实体安全性包括设置以下权限:
设计时权限 - 控制哪些用户组和用户可以创建、读取、更新和删除实体。
运行时权限 - 控制哪些用户组和用户可以访问数据、执行服务和针对事物 (包括数据表、流和用户) 触发事件。您可以在事物、事物模板或实体集合级别设置运行时权限。模型中的抽象实体、事物形态、数据形状和用户组没有运行时权限。
可见性权限 - 定义哪些组织和组织单位具有查看实体的权限。如果组织或组织单位的成员没有可见性权限,那么他们将无法查看实体列表或搜索结果中的实体。也无法在可见性权限内为其分配读取、写入、订阅及其他权限。
所需的用例和权限
用例、用户需要查看的对象以及所需的权限包括以下内容:
应将欲使用与管理员相同的方式查看所有审计条目的用户添加至通过以下非管理员运行审计服务所需的权限部分中所述的步骤创建的用户组中。
应将欲查看与特定事物相关联的所有审计条目的用户添加至审计员用户组,并授予有关该事物 QueryAuditHistory 服务的运行时权限以及该事物的可见性和运行时权限。
欲在用户上下文中仅查看审计条目的用户应具有有关事物 QueryAuditHistory 服务的运行时权限以及事物的可见性和运行时权限。
对于 ThingWorx Platform v.9.0.0,已添加名为“审计员”的用户组,以将权限分配给非管理用户。有关详细信息,请参阅以下部分。
管理员和审计员用户组的权限
默认情况下,管理员组中的用户对于 ThingWorx 中的所有内容具有完整权限,包括审计子系统、其服务和数据。默认情况下,在针对事物运行 QueryAuditHistiory 服务时,审计员组中的用户可以查看由其他用户创建的审计条目。对于非管理员用户和用户组,管理员需要使用服务覆盖授予调用审计子系统所提供服务的功能。有关如何使用服务覆盖的详细信息。请参阅服务覆盖
默认情况下,管理员组中的用户有权访问与审计子系统相关的以下实体:
审计子系统是一种在两个实现中公开以下服务的系统对象:
服务执行 - QueryAuditHistory 针对审计子系统运行
服务执行 - ArchiveAuditHistory
服务执行 - ExportAuditData
服务执行 - CleanupOfflineAudit
服务执行 - GetAuditEntryCount
服务执行 - PurgeAuditData
服务执行 - ExportOnlineAuditData
服务执行 - ArchiveAuditHistoryDirectPersistence
服务执行 - QueryAuditHistoryWithQueryCriteria
服务执行 - QueryAuditHistory 针对事物运行
AuditArchiveFileRepository 是用于审计存档的“审计子系统文件信息库”。在子系统启动时创建的信息库具有一个用于当前活动实现的目录。如果从一个实现切换到另一个实现,则会保留来自先前活动实现的审计数据,并会创建用于当前活动实现的新目录。在两个实现均处于活动状态的安装中,信息库的结构与以下结构类似:
根据活动实现的具体情况,选用用于存档审计数据的两个计划程序之一:
AuditArchiveScheduler 是一个用于控制自动存档数据表实现审计条目操作的 Scheduler 事物。
AuditArchiveSchedulerDirectPersistence 是一个用于控制自动存档直接久存实现审计条目操作的 Scheduler 事物。
AuditPurgeScheduler 是一个用于控制自动清除在线审计条目操作的 Scheduler 事物。
AuditArchiveCleanupScheduler 用于安排离线存档审计数据文件的清理操作。
AuditArchiveCleanupNotificationScheduler 用于发送清理的提醒通知。
非管理员用户所需的权限
下表显示了可授予用户组中的非管理员用户以使其能够访问这些审计子系统实体的权限。
* 
确保 为非管理员用户授予在设计时编辑对象的权限。对于管理员,请不要在设计时编辑系统对象。如果在设计时编辑对象,则所做更改可能会在升级过程中丢失。
非管理员用户组审计实体所需的权限
实体
非管理员用户组的权限
审计子系统
要允许非管理员用户和用户组调用 QueryAuditHistoryQueryAuditHistoryWithQueryCriteriaArchiveAuditHistoryExportAuditDataExportOnlineAuditDataCleanupOfflineAuditPurgeAuditDataGetAuditEntryCountArchiveAuditHistoryDirectPersistence 服务:
审计子系统 -“设计时” > “读取”
审计子系统 -“运行时” > “属性、服务或事件覆盖”。请针对您希望组中用户能够调用的每个服务定义“服务覆盖”,并为每个服务添加“服务执行”
AuditArchiveFileRepository
切勿向非管理员用户或用户组授予审计子系统的 AuditArchiveFileRepository 权限。
AuditArchiveScheduler (数据表实现)
“管理员”组中的用户应具有访问此 Scheduler 事物的权限。Scheduler 事物具有称为 lastArchivedTime 属性,该属性会在每次成功运行存档操作后更新。如果可能,此属性始终不应由用户、管理员或非管理员更新。对于此原因 (以及组织的其他可能原因),不建议为非管理员用户授予访问 Scheduler 的权限。
AuditArchiveSchedulerDirectPersistence
“管理员”组中的用户应具有访问此 Scheduler 事物的权限。Scheduler 事物具有称为 lastArchivedTimeDirectPersistence 属性,该属性会在每次成功运行存档操作后更新。如果可能,此属性始终不应由用户、管理员或非管理员更新。对于此原因 (以及组织的其他可能原因),不建议为非管理员用户授予访问 Scheduler 的权限。
AuditPurgeScheduler
仅“管理员”组中的用户应具有此计划程序事物的访问权限。建议不要为非管理员用户授予此计划程序的访问权限。
AuditArchiveCleanupScheduler
仅“管理员”组中的用户应具有此计划程序事物的访问权限。建议不要为非管理员用户授予此计划程序的访问权限。
AuditArchiveCleanupNotificationScheduler
对于非管理员用户执行清理服务的通知:
AuditArchiveCleanupNotificationScheduler -“设计时” > “读取”
AuditArchiveCleanupNotificationScheduler -“运行时” > “属性、服务或事件覆盖”。为此服务定义“服务覆盖”(“服务执行”)。
通常情况下,要允许用户组中的非管理员用户调用“审计子系统”的服务,应创建一个用户组并向该用户组授予以下权限:
审计子系统 - 可见性权限
审计子系统 - 设计时权限 - 允许读取
审计子系统运行时权限 - 为您希望组中用户能够调用的每个服务定义“服务覆盖”,并允许“服务执行”。
下表列出了需要向实体授予的权限,以允许在“审计子系统”中对其调用服务:
非管理员用户运行审计服务的权限
服务
实体类型
实体名称
可见性
设计时
运行时
QueryAuditHistory
子系统
AuditSubsystem
读取
服务:QueryAuditHistory - 服务执行
数据形状
AuditHistory
读取
QueryAuditHistoryWithQueryCriteria
子系统
AuditSubsystem
读取
服务:QueryAuditHistoryWithQueryCriteria - 服务执行
数据形状
AuditHistory
读取
ArchiveAuditHistory
子系统
AuditSubsystem
读取
服务:ArchiveAuditHistory:服务执行
事物
AuditArchiveScheduler
属性 LastArchiveTime:属性读取和属性写入
ArchiveAuditHistoryDirectPersistence
子系统
审计子系统
读取
服务:ArchiveAuditHistory-DirectPersistence:服务执行
事物
AuditArchiveSchedulerDirectPersistence
属性 LastArchiveTimeDirectPersistence:属性读取和属性写入
ExportAuditData
子系统
AuditSubsystem
读取
服务:ExportAuditData:服务执行
事物
AuditArchiveScheduler
属性 LastArchivedTime:属性读取和属性写入
事物
<用户创建的 FileRepository>
所有服务:服务执行
ExportOnlineAuditData
子系统
AuditSubsystem
读取
服务:ExportOnlineAuditData:服务执行
事物
<用户创建的 FileRepository>
所有服务:服务执行
CleanupOfflineAudit
子系统
AuditSubsystem
读取
服务 CleanupOfflineAudit:服务执行
事物
AuditArchiveCleanupScheduler
属性 DaysToArchive:属性读取和属性写入
事物
AuditArchiveCleanupNotificationScheduler
属性读取和属性写入
事物
<用户创建的 FileRepository>
所有服务:服务执行
PurgeAuditData
子系统
AuditSubsystem
读取
服务 PurgeAuditData:服务执行
事物
AuditPurgeScheduler
属性读取和属性写入
GetAuditEntryCount
子系统
AuditSubsystem
读取
服务 GetAuditEntryCount:服务执行
这对您有帮助吗?