稽核活動的安全性
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 (資料表實行)
「管理員」群組中的使用者應擁有此排程器物件的存取權。排程器物件有一個名為 lastArchivedTime 的內容,其會在每次成功執行封存操作之後更新。雖然此內容可以更新,但無論是使用者、管理員還是非管理員,都「切勿」更新此內容。基於此原因 (以及您組織可能出現的其他原因),建議「不要」向非管理員使用者授與排程器的存取權。
AuditArchiveSchedulerDirectPersistence
「管理員」群組中的使用者應擁有此排程器物件的存取權。排程器物件有一個名為 lastArchivedTimeDirectPersistence 的內容,其會在每次成功執行封存操作之後更新。雖然此內容可以更新,但無論是使用者、管理員還是非管理員,都「切勿」更新此內容。基於此原因 (以及您組織可能出現的其他原因),建議「不要」向非管理員使用者授與排程器的存取權。
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:服務執行
這是否有幫助?