![]() | |
Sun[TM] Identity Manager 8.0 管理 |
第 10 章
稽核記錄本章說明稽核系統記錄事件的方式。
本章分為以下各節:
簡介Identity Manager 稽核的目的,是記錄誰對哪些 Identity Manager 物件執行了什麼作業,以及執行的時間。
稽核事件透過一個或多個發佈程式處理。依預設,Identity Manager 使用儲存庫發佈程式將稽核事件記錄在儲存庫中。借助稽核群組,篩選可以允許管理員選取稽核事件子集進行記錄。您可為每個發佈程式指定一個或多個最初已啟用的稽核群組。
備註
如需有關監視和管理使用者違規的資訊,請參閱第 13 章「身份識別稽核: 基本概念」。
Identity Manager 稽核的內容為何?大多數預設稽核都由內部 Identity Manager 元件執行。不過,有些介面可透過工作流程或透過 Java 程式碼產生事件。
預設 Identity Manager 稽核方法主要由四個主要區域執行:
- 佈建程式 - 稱為佈建程式的內部元件可產生稽核事件。
- 檢視處理程式 - 在檢視架構中,檢視處理程式會產生稽核記錄。檢視處理程式應永遠在建立或修改物件時進行稽核。
- 階段作業 - 階段作業方法 (例如 checkinObject、createObject、runTask、login 和 logout) 會在完成可稽核作業後建立稽核記錄。該方法的大部分都將推入檢視處理程式中。
- 工作流程 - 依預設,僅核准工作流程會產生稽核記錄。當核准或拒絕請求時,它們會產生稽核事件。com.waveset.session.WorkflowServices 應用程式是工作流程功能與稽核記錄程式之間的介面。詳細資訊請參閱下一節。
透過工作流程建立稽核事件依預設,只會將核准工作流程配置為產生稽核記錄。本節說明如何使用 com.waveset.session.WorkflowServices 應用程式,以透過任何工作流程程序來產生額外的稽核事件。
若需要報告自訂工作流程,則可能需要額外的稽核事件。請參閱修改工作流程以記錄標準稽核事件,以取得有關將稽核事件增加至工作流程的資訊。
您也可以將特殊的稽核事件增加至工作流程,以支援工作流程報告 (更多...)。工作流程報告會報告為完成工作流程所花的時間。需要有特殊的稽核事件,才能儲存計算時間所需的資料。請參閱修改工作流程以記錄計時稽核事件,以取得有關將計時稽核事件增加至工作流程的資訊。
com.waveset.session.WorkflowServices 應用程式
com.waveset.session.WorkflowServices 應用程式可透過任何工作流程程序,產生稽核事件。表 10-1 說明適用於此應用程式的引數。
表 10-1 適用於 com.waveset.session.WorkflowServices 的引數
引數
類型
描述
op
字串
WorkflowServices 的作業。必須設為 audit 或 auditWorkflow。使用 audit 進行標準工作流程稽核。使用 auditWorkflow,儲存計算時間所需的計時稽核事件。必要。
type
字串
要稽核的物件類型名稱。表 B-5會列出可稽核的物件類型。若要記錄標準稽核事件,則為必要項目。
action
字串
已執行之動作的名稱。表 B-6會列出可稽核的動作。必要。
status
字串
指定動作的狀態名稱。表 B-7的 [結果] 欄中會列出狀態。若要記錄標準稽核事件,則為必要項目。
name
字串
受指定動作影響的物件名稱。若要記錄標準稽核事件,則為必要項目。
資源
字串
(選擇性) 要變更物件所在之資源的名稱。
accountId
字串
(選擇性) 要修改的帳號 ID。
其應為本機資源帳號名稱。error
字串
(選擇性) 發生任何失敗時,都會顯示已本土化的錯誤字串。
reason
字串
(選擇性) ReasonDenied 物件的名稱,會對映至說明一般失敗原因的國際化訊息。
屬性
對映
(選擇性) 已增加或已修改之屬性名稱和屬性值的對映。
參數
對映
(選擇性) 最多對映五個與一個事件相關的額外名稱或值。
組織
List
(選擇性) 要放置此事件的組織名稱或 ID 之清單。其用於設定稽核記錄的組織範圍。如果不存在,則處理程式將嘗試根據類型和名稱解析組織。如果無法解析組織,則會將事件放置在頂層 (組織階層的最高層級)。
originalAttributes
對映
(選擇性) 舊屬性值的對映。名稱應與屬性引數中列出的名稱相符。值將為您希望儲存在稽核記錄中之任何先前的值。
修改工作流程以記錄標準稽核事件
若要在工作流程中建立標準稽核事件,請在工作流程中增加下列 <Activity> 元素:
<Activity name='createEvent'>
接下來,在 <Activity> 元素中進行巢狀處理,加入一個參照 com.waveset.session.WorkflowServices 應用程式的 <Action> 元素:
<Action class='com.waveset.session.WorkflowServices'>
在 <Action> 元素中進行巢狀處理,加入必要和選擇性 <Argument> 元素。請參閱表 10-1,以取得引數清單。
若要記錄標準稽核事件,則 op 引數必須設為 audit。
編碼樣例 10-1 顯示建立標準稽核事件所需最基本的程式碼。
範例
編碼樣例 10-1 說明了一個簡單工作流程作業。此範例顯示了事件產生過程,該事件將記錄由 ResourceAdministrator 執行之名為 ADSIResource1 的資源刪除作業:
編碼樣例 10-2 顯示了如何將特定屬性增加至某個工作流程,該工作流程可追蹤每個使用者在核准程序中套用至顆粒性層級的變更。通常,此增加按照請求使用者輸入的 ManualAction 進行。
ACTUAL_APPROVER 是根據實際執行核准的人員,在表單和工作流程 (如果從核准表進行核准) 中設定的。APPROVER 可識別將其指定給誰。
編碼樣例 10-2 用於在核准程序中追蹤變更的已增加屬性 (第 1 頁,共 2 頁)
<Action name='Audit the Approval' application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='audit'/>
<Argument name='type' value='User'/>
<Argument name='name' value='$(CUSTOM_DESCRIPTION)'/>
<Argument name='action' value='approve'/>
<Argument name='accountId' value='$(accountId)'/>
<Argument name='status' value='success'/>
<Argument name='resource' value='$(RESOURCE_IF_APPLICABLE)'/>
<Argument name='loginApplication' value='$(loginApplication)'/>
<Argument name='attributes'>
<map>
<s>fullname</s><ref>user.accounts[Lighthouse].fullname</ref>
<s>jobTitle</s><ref>user.accounts[Lighthouse].jobTitle</ref>
<s>location</s><ref>user.accounts[Lighthouse].location</ref>
<s>team</s><ref>user.waveset.organization</ref>
<s>agency</s><ref>user.accounts[Lighthouse].agency</ref>
</map>
</Argument>
<Argument name='originalAttributes'>
<map>
<s>fullname</s>
<s>User's previous fullname</s>
<s>jobTitle</s>
<s>User's previous job title</s>
<s>location</s>
<s>User's previous location</s>
<s>team</s>
<s>User's previous team</s>
<s>agency</s>
<s>User's previous agency</s>
</map>
</Argument>
<Argument name='attributes'>
<map>
<s>firstname</s>
<s>Joe</s>
<s>lastname</s>
<s>New</s>
</map>
</Argument>
<Argument name='subject'>
<or>
<ref>ACTUAL_APPROVER</ref>
<ref>APPROVER</ref>
</or>
</Argument>
<Argument name='approver' value='$(APPROVER)'/>
</Action>
修改工作流程以記錄計時稽核事件
修改工作流程以記錄計時事件,以支援工作流程報告 (更多... )。標準稽核事件只會記錄發生事件,而計時稽核事件則會記錄事件的開始和停止時間,因此可以進行時間的計算。除了計時事件資料之外,也會儲存標準稽核事件所記錄的大部分資訊。詳細資訊請參閱計時稽核事件儲存的資訊為何?。
備註
為了記錄計時稽核事件,您必須先啟動每個需稽核之工作流程類型的工作流程稽核。
- 若是您可以使用作業範本在管理員介面中配置的工作流程,則請先啟用與想要稽核之工作流程對應的作業範本。請參閱啟用作業範本,以取得說明。
接著,選取 [稽核整個工作流程] 核取方塊,以開啟工作流程稽核。請參閱配置 [稽核] 標籤,以取得說明。
請注意,稽核工作流程會降低效能。
編碼樣例 10-3 顯示建立計時稽核事件所需的程式碼。若要記錄計時稽核事件,則 op 引數必須設為 auditWorkflow。
action 也是必要引數,而且必須設為下列其中一個值:
auditconfig.xml 中可能會定義額外的動作引數。
範例
編碼樣例 10-3 說明如何在工作流程中啟用計時稽核事件。若要配置工作流程,則應該在工作流程、程序和作業的開頭與結尾處,增加 auditWorkflow 事件。
auditWorkflow 作業定義於 com.waveset.session.WorkflowServices 中。詳細資訊請參閱更多... 。
編碼樣例 10-3 啟動工作流程中的計時稽核事件
<Action application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='auditWorkflow'/>
<Argument name='action' value='StartWorkflow'/>
</Action>
若要停止記錄工作流程中的計時稽核事件,請將編碼樣例 10-4 中的程式碼增加至接近工作流程結束處的 pre-end 作業中。請注意,配置工作流程或程序時,並不允許您在 end 作業中放置任何項目。您必須建立 pre-end 作業,以執行最終的 auditWorkflow 事件,然後無條件地轉換為 end 事件。
編碼樣例 10-4 停止工作流程中的計時稽核事件
<Action application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='auditWorkflow'/>
<Argument name='action' value='EndWorkflow'/>
</Action>
計時稽核事件儲存的資訊為何?
計時稽核事件預設會記錄一般稽核事件所儲存的大部分資訊,包含下列屬性:
屬性
說明
WORKFLOW
正在執行之工作流程的名稱
PROCESS
正在執行之目前程序的名稱
INSTANCEID
正在執行之工作流程的唯一實例 ID
ACTIVITY
正在記錄之事件所在的作業
MATCH
工作流程實例內的唯一識別碼
上述屬性會儲存在 logattr 表格中,並且來自於 auditableAttributesList。Identity Manager 也會檢查是否已定義 workflowAuditAttrConds 屬性。
可能會在程序或工作流程的單一實例內呼叫多次某些作業。為了符合特定活動實例的稽核事件,Identity Manager 會將唯一識別碼儲存在工作流程實例內的 logattr 表格中。
若要在 logattr 表格中儲存工作流程的額外屬性,則必須定義 workflowAuditAttrConds 清單,而此清單假設為 GenericObjects 的清單。若在 workflowAuditAttrConds 清單內定義 attrName 屬性,則 Identity Manager 會提取程式碼內物件的 attrName,方法是先使用 attrName 作為鍵值,然後儲存 attrName 值。所有鍵值和值都會儲存為大寫值。
稽核配置稽核配置由一個或多個發佈程式及數個預先定義的群組所組成。
稽核群組可以根據物件類型、動作和動作結果,定義所有稽核事件的子集。每個發佈程式都具有一個或多個指定的稽核群組。依預設,將儲存庫發佈程式指定給所有稽核群組。
稽核發佈程式可將稽核事件傳送至特定的稽核目標。預設的儲存庫發佈程式可將稽核記錄寫入儲存庫。每個稽核發佈程式均可具有實作特定選項。您可以為稽核發佈程式指定文字格式化程式 (文字格式化程式可以文字說明稽核事件)。
稽核配置 (#ID#Configuration:AuditConfiguration) 物件在 sample/auditconfig.xml 檔案中定義。此配置物件具有一個延伸,該延伸是一個通用物件。其位於頂層,具有以下屬性:
filterConfiguration
filterConfiguration 屬性可列出事件群組,這些群組用於使一個或多個事件通過事件篩選器。filterConfiguration 屬性中列出的每個群組均包含表 10-2 中列出的屬性。
表 10-2 filterConfiguration 屬性
屬性
類型
描述
groupName
字串
事件群組名稱
displayName
字串
表示群組名稱的訊息目錄鍵值
enabled
字串
指示已啟用還是已停用整個群組的布林旗標。此屬性是篩選物件的最佳屬性。
enabledEvents
List
說明群組啟用哪些事件的通用物件清單。必須列出事件以啟用其記錄。列出的每個物件均必須具有以下屬性:
編碼樣例 10-5 說明了預設資源管理群組。
編碼樣例 10-5 預設資源管理群組
<Object name='Resource Management'>
<Attribute name='enabled' value='true'/>
<Attribute name='displayName'
value='UI_RESOURCE_MGMT_GROUP_DISPLAYNAME'/>
<Attribute name='enabledEvents'>
<List>
<Object>
<Attribute name='objectType' value='Resource'/>
<Attribute name='actions' value='ALL'/>
<Attribute name='results' value='ALL'/>
</Object>
<Object>
<Attribute name='objectType' value='ResourceObject'/>
<Attribute name='actions' value='ALL'/>
<Attribute name='results' value='ALL'/>
</Object>
</List>
</Attribute>
</Object>
Identity Manager 提供下列預設稽核事件群組:
您可以從 Identity Manager 管理員介面的 [稽核配置] 頁面,配置每個群組 ([配置] > [稽核])。請參閱配置稽核群組和稽核事件。
[稽核配置] 頁面可讓您配置每個群組的成功或失敗事件。此介面不支援增加或修改群組的已啟用事件,但是您可以使用 Identity Manager 除錯頁面來執行這些作業 (更多... )。
預設事件群組及其啟用的事件在以下各節中說明。
帳號管理
依預設啟用此群組。
表 10-3 預設帳號管理事件群組
類型
動作
加密金錀
所有動作
Identity 系統帳號
所有動作
資源帳號
核准、變更密碼、建立、刪除、停用、啟用、修改、拒絕、重新命名、重設密碼、解除鎖定
工作流程情況
結束作業、結束程序、結束工作流程、啟動作業、啟動程序、啟動工作流程
使用者
核准、建立、憑證過期、刪除、停用、啟用、鎖定、登入、登出、修改、拒絕、重新命名、解除鎖定、使用者名稱回復
Identity Manager 之外的變更
依預設停用此群組。
規範遵循管理
依預設啟用此群組。
表 10-5 預設規範遵循管理群組事件
類型
動作
AuditPolicy
所有動作
AccessScan
所有動作
ComplianceViolation
所有動作
Data Exporter
所有動作
UserEntitlement
核准的驗證者、拒絕的驗證者、請求的修正、已請求重新掃描、終止
Access Review Workflow
所有動作
Remediation Workflow
所有動作
配置管理
依預設啟用此群組。
表 10-6 預設配置管理事件群組
類型
動作
配置
所有動作
UserForm
所有動作
Rule
所有動作
EmailTemplate
所有動作
LoginConfig
所有動作
Policy
所有動作
XmlData
Import
Log
所有動作
事件管理
依預設啟用此群組。
登入/登出
依預設啟用此群組。
密碼管理
依預設啟用此群組。
資源管理
依預設啟用此群組。
表 10-10 預設資源管理事件群組和事件
類型
動作
資源
所有動作
資源物件
所有動作
ResourceForm
所有動作
ResourceAction
所有動作
AttrParse
所有動作
工作流程情況
結束作業、結束程序、結束工作流程、啟動作業、啟動程序、啟動工作流程
角色管理
依預設停用此群組。
安全管理
依預設啟用此群組。
Service Provider Edition
依預設啟用此群組。
作業管理
依預設停用此群組。
表 10-14 作業管理事件群組和事件
類型
動作
TaskInstance
所有動作
TaskDefinition
所有動作
TaskSchedule
所有動作
TaskResult
所有動作
ProvisioningTask
所有動作
extendedTypes
每個您增加至 com.waveset.object.Type 類別的新類型都可以進行稽核。必須為新類型指定唯一的雙字元資料庫鍵值,其將儲存在資料庫中。所有新類型均將增加至不同的稽核報告介面。必須將每個不經篩選就記錄至資料庫的新類型增加至稽核事件群組 enabledEvents 屬性中 (如 enabledEvents 屬性的說明)。
在某些情況下,您可能會想要稽核沒有相關之 com.waveset.object.Type 的物件,或者想要更詳細地表示現有類型。
例如,WSUser 物件會將使用者的所有帳號資訊儲存在儲存庫中。稽核程序將 WSUser 物件分割為兩個不同的稽核類型 (資源帳號和 Identity Manager 帳號),而不是將每個事件標記為 USER 類型。以此方法分割物件可讓您更輕鬆地在稽核記錄中尋找特定帳號資訊。
透過增加至 extendedObjects 屬性來增加延伸式稽核類型。每個延伸式物件均必須具有下表中列出的屬性:
表 10-15 延伸式物件屬性
引數
類型
描述
name
字串
類型名稱,在建構稽核事件時和篩選事件期間使用。
displayName
字串
表示類型名稱的訊息目錄鍵值。
logDbKey
字串
在記錄表中儲存此物件時要使用的雙字元資料庫鍵值。請參閱稽核記錄資料庫對映以取得保留值。
supportedActions
List
物件類型支援的動作。從使用者介面建立稽核查詢時將使用此屬性。如果該值為空值,則所有動作均會顯示為要針對此物件類型查詢的可能值。
mapsToType
字串
(選擇性) 對映至此類型的 com.waveset.object.Type 名稱 (如果有)。嘗試解析物件組織成員身份 (如果尚未在事件上指定) 時會使用此屬性。
organizationalMembership
List
(選擇性) 應放置此類型事件 (如果它們尚未具有指定的組織成員身份) 之組織 ID 的預設清單。
所有用戶特定鍵值均應以 # 符號開頭,以防止增加新的內部鍵值後出現重複的鍵值。
編碼樣例 10-6 說明了延伸式類型 Identity Manager 帳號。
編碼樣例 10-6 延伸式類型 Identity Manager 帳號
<Object name='LighthouseAccount'>
<Attribute name='displayName' value='LG_LIGHTHOUSE_ACCOUNT'/>
<Attribute name='logDbKey' value='LA'/>
<Attribute name='mapsToType' value='User'/>
<Attribute name='supportedActions'>
<List>
<String>password</String>
<String>Enable</String>
<String>Create</String>
<String>Modify</String>
<String>Delete</String>
<String>Rename</String>
</List>
</Attribute>
</Object>
extendedActions
稽核動作通常對映至 com.waveset.security.Right 物件。增加新的 Right 物件時,您必須指定唯一的雙字元 logDbKey,其將儲存在資料庫中。您可能遇到這種情況,即無權與必須稽核之特定動作對應。您可以透過將動作增加至 extendedActions 屬性中的物件清單中來延伸動作。
每個 extendedActions 物件均必須包含表 10-16 中列出的屬性。
表 10-16 extendedAction 屬性
屬性
類型
描述
name
字串
動作名稱,在建構稽核事件時和篩選事件期間使用。
displayName
字串
表示動作名稱的訊息目錄鍵值。
logDbKey
字串
在記錄表中儲存此動作時要使用的雙字元資料庫鍵值。
請參閱稽核記錄資料庫對映以取得保留值。
所有用戶特定鍵值均應以 # 符號開頭,以防止增加新的內部鍵值後出現重複的鍵值。
編碼樣例 10-7 說明了如何增加登出動作。
編碼樣例 10-7 增加登出的動作
<Object name='Logout'>
<Attribute name='displayName' value='LG_LOGOUT'/>
<Attribute name='logDbKey' value='LO'/>
</Object>
extendedResults
除了延伸稽核類型和動作之外,您還可以增加結果。依預設,有兩種結果:成功和失敗。您可以透過將結果增加至 extendedResults 屬性中的物件清單中來延伸結果。
每個 extendedResults 物件均必須包含表 10-17 中說明的屬性。
表 10-17 extendedResults 屬性
屬性
類型
描述
name
字串
結果名稱,在設定稽核事件的狀態時和篩選事件期間使用。
displayName
字串
表示結果名稱的訊息目錄鍵值。
logDbKey
字串
在記錄表中儲存此結果時要使用的單字元資料庫鍵值。請參閱標題為資料庫鍵值的小節,以取得保留值。
所有用戶特定鍵值均應使用 0 到 9 之間的數字,以防止增加新的內部鍵值後出現重複的鍵值。
publishers
發佈程式清單中的每個項目均為通用物件。每個發佈程式均具有以下屬性:
表 10-18 發佈程式屬性
屬性
類型
描述
class
字串
發佈程式類別的名稱。
displayName
字串
表示發佈程式名稱的訊息目錄鍵值。
description
字串
對發佈程式的說明。
filters
List
指定給此發佈程式的稽核群組清單。
formatter
字串
文字格式化程式的名稱 (如果有)。
options
List
發佈程式選項清單。這些選項是發佈程式特有的選項,而清單中的每個項目都是 PublisherOption 的對映表示。請參閱 sample/auditconfig.xml 以取得範例。
資料庫模式Identity Manager 儲存庫中有兩個用以儲存稽核資料的表格:
本節會先討論這些表格。
當稽核記錄資料超出上述表格中指定的欄長度限制時,Identity Manager 會截斷資料以放入欄中。(更多...) 會討論稽核記錄截斷。
稽核記錄中的一些欄具有可配置的欄長度限制。若要瞭解這些欄並學習如何變更其長度限制,請參閱稽核記錄配置。
waveset.log
本小節列出了 waveset.log 表中的各欄名稱和資料類型。資料類型是根據 Oracle 資料庫定義取得的,並會因資料庫的不同而稍有不同。如需所有受支援資料庫的資料模式值清單,請參閱附錄 B「稽核記錄資料庫模式」。
為節省空間,一些欄值在資料庫中儲存為鍵值。如需鍵值定義,請參閱標題為稽核記錄資料庫對映的小節。
- objectType CHAR(2) - 表示要稽核之物件類型的雙字元鍵值。
- action CHAR(2) - 表示已執行之動作的雙字元鍵值。
- actionStatus CHAR(1) - 表示已執行動作之結果的單字元鍵值。
- reason CHAR(2) - 用於在發生故障時說明 ReasonDenied 物件的雙字元資料庫鍵值。ReasonDenied 是包含訊息目錄項目的類別,用於一般失敗 (例如憑證無效和權限不足)。
- actionDateTime VARCHAR(21) - 上述動作發生的日期和時間。該值以 GMT 時間儲存。
- objectName VARCHAR(128) - 作業期間已對其執行動作的物件名稱。
- resourceName VARCHAR(128) - 作業期間使用的資源名稱 (如果適用)。某些事件不參照資源;但是,在許多情況下,其都提供更多詳細資訊以記錄執行作業的資源。
- accountName VARCHAR(255) - 已對其執行動作的帳號 ID (如果適用)。
- server VARCHAR(128) - 已在其中執行動作的伺服器 (由事件記錄程式自動指定)。
- message VARCHAR(255*) 或 CLOB - 任何與動作相關聯的本土化訊息,包含錯誤訊息之類的訊息。文字將儲存為已本土化的文字,因此其不會國際化。您可以配置此欄的欄長度限制。預設資料類型是 VARCHAR,而預設大小限制為 255。請參閱稽核記錄配置,以取得有關如何調整大小限制的資訊。
- interface VARCHAR(50) - 執行作業時透過的 Identity Manager 介面 (例如管理員、使用者、IVR 或 SOAP 介面)。
- acctAttrChanges VARCHAR(4000) - 儲存已在建立和更新期間變更的帳號屬性。永遠在資源帳號或 Identity Manager 帳號物件的建立或更新期間填寫屬性變更欄位。在動作期間變更的所有屬性均作為字串儲存在此欄位中。資料的格式為 NAME=VALUE NAME2=VALUE2。可透過對名稱或值執行 contains SQL 陳述式來查詢此欄位。
編碼樣例 10-8 說明了 acctAttrChanges 欄中的值:
編碼樣例 10-8 acctAttrChanges 欄中的值
COMPANY="COMPANY" DEPARTMENT="DEPT" DESCRIPTION="DSMITH
DESCRIPTION" FAX NUMBER="5122222222" HOME ADDRESS="12282
MOCKINGBIRD LANE" HOME CITY="AUSTIN" HOME PHONE="5122495555"
HOME STATE="TX" HOME ZIP="78729" JOB TITLE="DEVELOPER"
MOBILE PHONE="5125551212" WORK PHONE="5126855555"
EMAIL="someone@somecompany.COM" EXPIREPASSWORD="TRUE"
FIRSTNAME="DANIEL" FULLNAME="DANIEL SMITH" LASTNAME="SMITH"
- acctAttr01label-acctAttr05label VARCHAR(50) - 這五個額外的 NAME 槽是五個欄,最多可以升級五個要儲存在其各自欄中,而非儲存在大的二進位大型物件中的屬性名稱。您可以使用「稽核?」設定,從 [資源模式配置] 頁面升級屬性,這樣該屬性將適用於資料堪查。
- acctAttr01value-acctAttr05value VARCHAR(128) - 五個額外的 VALUE 槽,最多可以升級五個要儲存在不同欄中,而非儲存在二進位大型物件欄中的屬性值。
- parm01label-parm05label VARCHAR(50) - 五個用於儲存與事件相關聯之參數的槽。其範例為用戶端 IP 和階段作業 ID 名稱。
- parm01value-parm05value VARCHAR(128*) 或 CLOB - 五個用於儲存與事件相關聯之參數的槽。其範例為用戶端 IP 和階段作業 ID 值。您可以配置這些欄的欄長度限制。預設資料類型是 VARCHAR,而預設大小限制為 128。請參閱稽核記錄配置,以取得有關如何調整大小限制的資訊。
- id VARCHAR(50) - 透過 waveset.logattr 表格中所參照的儲存庫,指定給每個記錄的唯一 ID。
- name VARCHAR(128) - 指定給每個記錄的已產生名稱。
- xmlBLOB - 供 Identity Manager 內部使用。
waveset.logattr
waveset.logattr 表用於儲存每個事件的組織成員身份 ID,這可以依組織設定稽核記錄範圍。
稽核記錄截斷
當稽核記錄資料的一個或多個欄超出指定的欄長度限制時,會截斷欄資料以放入欄中。明確地說,資料會截斷為符合指定的限制 (欄長度減去三個字元)。省略符號 (...) 會附加至欄資料,表示發生截斷。
此外,該稽核記錄之 NAME 欄的前方會加上字串 #TRUNCATED# ,以利查詢截斷的記錄。
備註
Identity Manager 計算在何處截斷訊息時,採用的是 UTF8 編碼。若配置所使用的編碼不是 UTF8,則截斷的資料還是可能仍然會超出資料庫中實際的欄大小。若發生此情況,則截斷的訊息不會顯示在稽核記錄中,而是在系統記錄檔中寫入錯誤。
稽核記錄配置稽核記錄中的特定欄可以配置為儲存儲存庫中的大量資料。
調整欄長度限制
稽核記錄中的數個欄具有可配置的欄長度限制。這些欄如下:
- message 欄
- parmNNvalue 欄 (其中 NN = 01、02、03、04 或 05)
- xml 欄
備註
如需稽核記錄欄說明,請參閱資料庫模式。
您可以編輯 RepositoryConfiguration 物件,變更欄長度限制。如需有關編輯 RepositoryConfiguration 物件的說明,請參閱編輯 Identity Manager 配置物件。
需要重新啟動伺服器,新值才會生效。
RepositoryConfiguration 物件中的欄長度限制設定,可決定欄中可以儲存的最大資料量。若要儲存的資料超出這些設定,則 Identity Manager 會截斷資料。詳細資訊請參閱稽核記錄截斷。
若增加 RepositoryConfiguration 物件中的欄長度設定,則也請確認資料庫中的欄大小設定至少與 RepositoryConfiguration 物件中所配置的大小相同。
移除稽核記錄中的記錄稽核記錄應該定期進行截斷,以避免擴充得太大。使用 [稽核記錄維護作業] 可以移除稽核記錄中的舊記錄。
若要排程作業以移除稽核記錄中的舊記錄,請執行以下步驟:
防止稽核記錄竄改您可以配置 Identity Manager 以防止以下形式的稽核記錄竄改:
所有 Identity Manager 稽核記錄中的記錄均具有唯一的、視伺服器而定的序號以及記錄和序號的加密雜湊。當您建立竄改偵測報告時,它會對每個伺服器的稽核記錄掃描以下各項:
配置防竄改記錄
若要配置防竄改記錄,請執行以下步驟:
- 選取 [報告] > [新增] > [稽核記錄竄改報告],以建立竄改報告。
- 當顯示 [定義竄改報告] 頁面 (請參閱圖 10-1) 時,為報告輸入標題,然後 [儲存] 該報告。
圖 10-1 配置稽核記錄竄改報告
您也可以指定以下可選參數:
- 接下來選取 [配置] > [稽核],以開啟 [稽核配置] 頁面 (如圖 10-2 所示)。
圖 10-2 防竄改稽核記錄配置
- 選取 [使用自訂發佈程式],然後按一下 [儲存庫發佈程式] 連結。
- 選取 [啟用防篡改稽核記錄],然後按一下 [確定]。
- 按一下 [儲存] 儲存設定。
您可以再次關閉此選項,但是未簽署的項目本身將在稽核記錄竄改報告中進行標記,您必須重新配置報告才能忽略這些項目。
使用自訂稽核發佈程式Identity Manager 可以將稽核事件提交給自訂稽核發佈程式。下列是提供的自訂發佈程式:
若想要建立自己的發佈程式,請參閱開發自訂稽核發佈程式。
啟用自訂稽核發佈程式
自訂稽核發佈程式可由 [稽核配置] 頁面啟用。
若要啟用自訂稽核發佈程式,請執行以下步驟:
主控台、檔案、JDBC 和執行程序檔的發佈程式類型
若要啟用 [主控台]、[檔案]、[JDBC] 和 [已執行程序檔] 稽核發佈程式,請執行啟用自訂稽核發佈程式中的步驟。從 [新增發佈程式] 下拉式功能表中選取適當的發佈程式類型。
完成 [配置新的稽核發佈程式] 表單。若對表單有任何問題,請參閱 i-Helps 及線上說明。
JMS 發佈程式類型
JMS 稽核記錄自訂發佈程式可以將稽核事件記錄發佈至 JMS (Java Message Service) 佇列或主題。
為何要使用 JMS?
發佈至 JMS 可為具有多部 Identity Manager 伺服器的環境,提供更多相互關聯作業的彈性。此外,在限制使用 [檔案] 稽核記錄發佈程式的情況下,可以使用 JMS (例如,用戶端報告工具在伺服器執行時就無法存取記錄的 Windows 環境中)。
JMS 提供在多部伺服器環境下的多項優點:
點對點或發佈與訂閱?
Java 訊息系統提供兩種訊息傳送模型: 點對點或佇列模型,以及發佈及訂閱或主題模型。Identity Manager 支援這兩種模型。
在點對點模型中,生產者會將訊息發佈至特定佇列,而用戶會從該佇列讀取訊息。在此處,生產者知道訊息的目標,並會將訊息直接發佈至用戶的佇列。
點對點模型的特性如下:
反之,發佈與訂閱模型則支援將訊息發佈至特定訊息主題。零或多位訂閱者可能會希望收到與特定訊息主題相關的訊息。在此模型中,發佈者與訂閱者彼此並不認識。此模型的最佳比喻方式就是匿名佈告欄。
發佈與訂閱模型的特性如下:
- 多位用戶可接收訊息。
- 發佈者與訂閱者之間存在時間相依性。發佈者必須先建立訂閱,用戶端才可進行訂閱。訂閱之後,除非已建立長期訂閱,否則訂閱者必須持續保持在使用中狀態才會收到訊息。若是長期訂閱,則會在訂閱者重新連線時,重新發行在訂閱者未連線時所發佈的訊息。
備註
如需有關 JMS 的更多資訊,請參閱 http://www.sun.com/software/products/message_queue/index.xml
配置 JMS 發佈程式類型
JMS 發佈程式會將稽核事件格式化為 JMS TextMessage。這些 TextMessage 接著會視配置之不同,而傳送至佇列或主題。文字訊息可視配置之不同,而格式化為 XML 或 ULF (通用記錄格式)。
若要啟用 JMS 發佈程式類型,請執行啟用自訂稽核發佈程式中的步驟,然後從 [新增發佈程式] 下拉式功能表中選取 [JMS]。
若要配置 JMS 發佈程式類型,請完成 [配置新的稽核發佈程式] 表單。若對表單有任何問題,請參閱 i-Helps 及線上說明。
JMX 發佈程式類型
JMX 稽核記錄發佈程式會發佈稽核事件,讓 JMX (Java 管理延伸) 用戶端可以監視 Identity Manager 稽核記錄作業。
何謂 JMX?
Java 管理延伸 (JMX) 是一項 Java 技術,可讓您管理及 (或) 監視應用程式、系統物件、裝置及服務導向的網路。受管理/監視的實體以稱之為 MBean 的物件表示 (意即「管理式 Bean」)。
Identity Manager 的 JMX 發佈程式實作
Identity Manager 的 JMX 稽核記錄發佈程式會監視事件的稽核記錄。偵測到事件時,JMX 發佈程式會使用 MBean 包裝稽核事件記錄,而且會更新保留在記憶體中的臨時歷程記錄。每發生一次事件,都會傳送給 JMX 用戶端一則小型通知。若是感興趣的事件,則 JMX 用戶端可以查詢包裝稽核事件的 MBean,以取得額外資訊。
備註
請參閱 com.waveset.object.AuditEvent Javadoc,以取得有關稽核事件記錄的資訊。您可以在 REF 工具組中取得此 Javadoc,而此工具組會於開發自訂稽核發佈程式中討論。
若要從正確的 MBean 中擷取資訊,則需要歷程記錄序號。事件通知中會包含此號碼。
每則事件通知都會包含下列資訊:
配置 JMX 發佈程式類型
若要配置 JMX 發佈程式類型,請執行以下步驟:
- 若要啟用 JMX 發佈程式類型,請執行啟用自訂稽核發佈程式中的步驟,然後從 [新增發佈程式] 下拉式功能表中選取 [JMX]。
- 若要配置 JMX 發佈程式類型,請完成 [配置新的稽核發佈程式] 表單。若對表單有任何問題,請參閱 i-Helps 及線上說明。
發佈程式名稱 - 鍵入 JMX 稽核事件發佈程式的唯一名稱。
歷程記錄限制 - 此為發佈應保留在記憶體中的事件項目數。預設值為 100。若要變更此限制,請輸入另一個值。
- 按一下 [測試],驗證 [發佈程式名稱] 是否為可接受的名稱。
- 按一下 [確定]。[配置新的稽核發佈程式] 表單會隨即關閉。
- 重要事項!按一下 [儲存]。
使用 JMX 用戶端檢視稽核事件
使用 JMX 用戶端可檢視 JMX 發佈程式。JDK 1.5 隨附的 JConsole 可用以建立下列螢幕擷取。
若使用 JConsole,請選擇「附加以處理」來檢視 IDM:type=AuditLog MBean。如需有關配置 JConsole 以用為 JMX 用戶端的資訊,請參閱檢視 JMX 資料。
在 JConsole 中按一下 [通知] 標籤,即可檢視稽核事件。請記下通知中的序號。查詢 MBean 以取得額外資訊時,需要有序號。
圖 10-3 在 JConsole 中檢視 JMX 稽核事件通知
查詢 MBean 以取得額外資訊
請在 JConsole 中按一下 [作業] 標籤。使用通知中的序號,可查詢 MBean 以取得事件詳細資訊。每個作業前方都會加上「get」,而唯一的參數是「序列號」。
圖 10-4 在 JConsole 中查詢
MBean 以取得額外資訊
MBean 其實是一對一對映到 com.waveset.object.AuditEvent 類別。表 10-19 提供 MBean 所提供之每個屬性/作業的說明。
表 10-19 MBeanInfo 屬性/作業說明
屬性/作業
說明
AccountAttributesBlob
已變更屬性的清單
AccountId
與事件相關聯的帳號 ID
Action
在事件期間所採取的動作
AuditableAttributes
可稽核的屬性
ErrorString
任何錯誤字串
Interface
稽核介面
MemberObjectGroupRefs
成員物件群組參照
ObjectName
物件名稱
ObjectType
物件類型
OverflowAttributes
所有溢位屬性
Parameters
所有參數
Reason
事件的原因
ResourceName
與事件相關聯的資源
RoleName
與事件相關聯的角色
SubjectName
與事件相關聯的使用者或服務
Server
發生事件的伺服器名稱
Status
稽核事件的狀態
Timestamp
稽核事件的日期/時間
請在 JConsole 中按一下 [屬性] 標籤。屬性前方會加上 Current,表示該屬性包含傳送至系統的最新稽核事件。
圖 10-5 在 JConsole 中檢視
MBean 屬性
開發自訂稽核發佈程式本節記載如何使用 Java 建立新的自訂稽核發佈程式。
Identity Manager 提供的 [主控台]、[檔案] 和 [JDBC] 自訂發佈程式,會實作 AuditLogPublisher 介面。您可以在 REF 工具組中找到這些發佈程式的原始碼。REF 工具組還會提供 Javadoc 格式的介面文件 (請參閱 Javadoc,以取得有關介面的詳細資訊)。
開發者可以延伸 AbstractAuditLogPublisher 類別。此類別可剖析配置並確保已為發佈程式提供所有必要選項。(請參閱 REF 工具組中的發佈程式範例)。
發佈程式必須具有一個無引數建構子。
生命週期
以下步驟說明了發佈程式的生命週期:
Identity Manager 啟動以及無論何時更新稽核配置時,均執行步驟 1 到 3。如果在呼叫關閉之前未產生稽核事件,則不執行步驟 4。
在同一發佈程式物件上僅呼叫一次 configure(Map)。(發佈程式無需為作用中的配置變更做準備)。更新稽核配置後,首先會關閉目前的發佈程式,然後建立新的發佈程式。
步驟 3 中的 configure() 方法可能會丟出 WavesetException。在此情況下,將忽略發佈程式,且不會對此發佈程式進行任何其他呼叫。
配置
發佈程式可以沒有選項,也可以有多個選項。getConfigurationOptions() 方法可傳回發佈程式支援的選項清單。這些選項使用 PublisherOption 類別 (請參閱 Javadoc 以取得有關此類別的詳細資訊) 進行封裝。稽核配置檢視器在建立發佈程式的配置介面時會呼叫此方法。
Identity Manager 會在伺服器啟動時以及稽核配置變更之後,使用 configure(Map) 方法配置發佈程式。
開發格式化程式
REF 工具組包含下列格式化程式的原始碼:
格式化程式必須實作 AuditRecordFormatter 介面。此外,格式化程式必須具有一個無引數建構子。請參閱 REF 工具組中所含的 Javadoc,以取得詳細資訊。
註冊發佈程式/格式化程式
#ID#Configuration:SystemConfiguration 物件的稽核屬性列出所有已註冊的發佈程式和格式化程式。只有這些發佈程式和格式化程式可在稽核配置使用者介面中使用。