Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java™ System Identity Manager 7.0 管理指南 

第 12 章
稽核記錄

本章說明 Sun Java™ System Identity Manager 稽核系統如何記錄事件。資訊組織如下:


概況

Identity Manager 稽核的目的是記錄誰在什麼時間對哪些 Identity Manager 物件執行了什麼作業。

稽核事件由一個或多個發佈程式處理。依預設,Identity Manager 使用儲存庫發佈程式將稽核事件記錄在儲存庫中。借助稽核群組,篩選可以允許管理員選取稽核事件子集進行記錄。您可為每個發佈程式指定一個或多個最初已啟用的稽核群組。


備註  

如需有關監視和管理使用者違規的資訊,請參閱「稽核檢閱與規範遵循管理」。



Identity Manager 稽核什麼內容?

大多數預設稽核都由內部 Identity Manager 元件執行。但是,有些介面允許從工作流程或從 Java 程式碼產生事件。

預設 Identity Manager 稽核方法主要由四個主要區域執行:


建立事件

雖然 Identity Manager 可處理內部稽核,但是在某些情況下,您可能希望從自訂工作流程記錄稽核事件。

從工作流程稽核

使用 com.waveset.session.WorkflowServices 應用程式可從任何工作流程程序中產生稽核事件。表 12-1 說明了適用於此應用程式的引數。

表 12-1  適用於 com.waveset.session.WorkflowServices 的引數

引數

類型

說明

op

字串

WorkflowServices 的作業。必須設定為稽核。

type

字串

要稽核的物件類型名稱。

action

字串

已執行的動作名稱。

status

字串

指定動作的狀態名稱。

name

字串

受指定動作影響的物件名稱。

resource

字串

(可選擇) 要變更之物件所在的資源名稱。

accountId

字串

(可選擇) 要修改的帳號 ID。
其應為本機資源帳號名稱。

error

字串

(可選擇) 與任何故障同時顯示的已本土化錯誤字串。

reason

字串

(可選擇) ReasonDenied 物件的名稱,該物件對映至說明一般故障原因的國際化訊息。

attributes

對映

(可選擇) 已增加或修改之屬性名稱和值的對映。

parameters

對映

(可選擇) 最多對映五個與某事件相關的附加名稱或值。

organizations

清單

將放置此事件的組織名稱或 ID 清單。其用於設定稽核記錄的組織範圍。如果不存在,則處理程式將嘗試根據類型和名稱解析組織。如果無法解析組織,則會將事件放置在頂層 (組織階層的最高層級)。

originalAttributes

對映

(可選擇) 舊屬性值的對映。名稱應與屬性引數中列出的名稱相符。值將為您希望儲存在稽核記錄中之任何先前的值。

請參閱表 12-18,以取得預設物件、動作和狀態名稱的清單。

範例

代碼範例 12-1 說明了一個簡單工作流程作業。它顯示了事件產生過程,該事件將記錄由 ResourceAdministrator 執行之名為 ADSIResource1 的資源刪除作業:

代碼範例 12-1  簡單工作流程作業

 

<Activity name='createEvent'>

   <Action class='com.waveset.session.WorkflowServices'>

   <Argument name='op' value='audit'/>

   <Argument name='type' value='Resource'/>

   <Argument name='action' value='Delete'/>

   <Argument name='status' value='Success'/>

   <Argument name='subject' value='ResourceAdministrator'/>

   <Argument name='name' value='ADSIResource1'/>

   </Action>

   <Transition to='end'/>

</Activity>

 

代碼範例 12-2 顯示了如何將特定屬性增加至某個工作流程,該工作流程可追蹤核准程序中每個使用者套用至顆粒性層級的變更。通常,此增加按照請求使用者輸入的 ManualAction 進行。

根據實際執行核准的人員,在表單和工作流程 (如果從核准表核准) 中設定 ACTUAL_APPROVERAPPROVER 可識別將其指定給的人員。

代碼範例 12-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>


稽核配置

稽核配置由一個或多個發佈程式以及數個預先定義的群組組成。

稽核群組可根據物件類型、動作和動作結果定義所有稽核事件的子集。每個發佈程式都具有一個或多個指定的稽核群組。依預設,將儲存庫發佈程式指定給所有稽核群組。

稽核發佈程式可將稽核事件傳送至特定的稽核目標。預設的儲存庫發佈程式可將稽核記錄寫入儲存庫。每個稽核發佈程式均可具有實作特定選項。可以為稽核發佈程式指定文字格式化程式:文字格式化程式可提供稽核事件的文字說明。

稽核配置 (#ID#Configuration:AuditConfiguration) 物件在 sample/auditconfig.xml 檔案中定義。此配置物件具有一個延伸,該延伸是一個通用物件。其位於頂層,具有以下屬性:

filterConfiguration

filterConfiguration 屬性可列出事件群組,這些事件群組用於使一個或多個事件通過事件篩選器。filterConfiguration 屬性中列出的每個群組均包含表 12-2 中列出的屬性。

表 12-2  filterConfiguration 屬性

屬性

類型

說明

groupName

字串

事件群組名稱

displayName

字串

表示群組名稱的訊息目錄關鍵字

enabled

字串

指示已啟用還是已停用整個群組的布林旗標。此屬性是篩選物件的最佳屬性。

enabledEvents

清單

說明群組啟用哪些事件的通用物件清單。必須列出事件以啟用其記錄。列出的每個物件均必須具有以下屬性:

  • objectType (字串) — 命名物件類型。
  • actions (清單) — 一個或多個動作的清單。
  • results (清單) — 一個或多個結果的清單。

代碼範例 12-3 說明了預設資源管理群組。

代碼範例 12-3  預設資源管理群組

<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 管理介面的 [Audit Events] 頁面配置每個群組 (configure/auditeventconfig.jsp)。此頁面可讓您配置每個群組的成功或失敗事件。此介面不支援增加或修改群組的 enabledEvent,但是您可以使用 Identity Manager 除錯頁面執行這些作業。

預設事件群組及其啟用的事件在以下各節中說明。

帳號管理

依預設啟用此群組。

表 12-3  預設帳號管理事件群組

類型

動作

資源帳號

建立、更新、刪除、啟用、停用、拒絕、核准、重新命名

Identity Manager 帳號

建立、更新、刪除、啟用、停用、重新命名

規範遵循管理

依預設啟用此群組。

表 12-4  預設規範遵循管理群組事件

類型

動作

AuditPolicy

所有動作

ComplianceViolation

所有動作

補救工作流程

所有動作

配置管理

依預設啟用此群組。

表 12-5  預設配置管理事件群組

類型

動作

配置

所有動作

UserForm

所有動作

規則

所有動作

EmailTemplate

所有動作

LoginConfig

所有動作

策略

所有動作

XMLData

匯入

記錄

所有動作

Identity Manager 登入/登出

依預設啟用此群組。

表 12-6  預設 Identity Manager 登入/登出事件群組

類型

動作

使用者

登入、登出、憑證過期

管理員

登入、登出、憑證過期

密碼管理

依預設啟用此群組。

表 12-7  預設密碼管理事件群組和事件

類型

動作

資源帳號

變更/重設密碼

資源管理

依預設啟用此群組。

表 12-8  預設資源管理事件群組和事件

類型

動作

資源

所有動作

資源物件

所有動作

ResourceForm

所有動作

ResourceAction

所有動作

AttrParse

所有動作

角色管理

依預設停用此群組。

表 12-9  預設角色管理事件群組和事件

類型

動作

角色

所有動作

安全管理

依預設啟用此群組。

表 12-10  預設安全性管理事件群組和事件

類型

動作

ObjectGroup

所有動作

AdminGroup

所有動作

管理員

所有動作

加密金鑰

所有動作

作業管理

依預設停用此群組。

表 12-11  作業管理事件群組和事件

類型

動作

TaskInstance

所有動作

TaskDefinition

所有動作

TaskSchedule

所有動作

TaskResult

所有動作

ProvisioningTask

所有動作

Identity Manager 之外的變更

依預設停用此群組。

表 12-12  Identity Manager 之外的變更事件群組和事件

類型

動作

ResourceAccount

NativeChange

Service Provider Edition

依預設啟用此群組。

表 12-13  Service Provider Edition 事件群組和事件

類型

動作

IDMXUser

建立、修改、刪除、使用者名稱回復、詢問回應、更新認證答案、作業前和作業後圖說文字、

extendedTypes

您增加至 com.waveset.object.Type 類別的每種新類型均可稽核。必須為新類型指定唯一的雙字元資料庫關鍵字,其將儲存在資料庫中。所有新類型均將增加至不同的稽核報告介面。必須將每個不經篩選就記錄至資料庫的新類型增加至稽核事件群組 enabledEvents 屬性中 (如 enabledEvents 屬性的說明)。

在某些情況下,您可能希望稽核沒有相關 com.waveset.objectType 的物件,或者希望更詳細地表示現有類型。

例如,WSUser 物件會將使用者的所有帳號資訊儲存在儲存庫中。稽核程序將 WSUser 物件分割為兩個不同的稽核類型 (資源帳號和 Identity Manager 帳號),而不是將每個事件標記為 USER 類型。以此方法分割物件可讓您更輕鬆地在稽核記錄中尋找特定帳號資訊。

透過增加至 extendedObjects 屬性來增加延伸式稽核類型。每個延伸式物件均必須具有下表中列出的屬性:

表 12-14  延伸式物件屬性

引數

類型

說明

name

字串

類型名稱,在建構 AuditEvents 時和篩選事件期間使用。

displayName

字串

表示類型名稱的訊息目錄關鍵字。

logDbKey

字串

在記錄表中儲存此物件時要使用的雙字元資料庫關鍵字。請參閱「記錄資料庫關鍵字」以取得保留值。

supportedActions

清單

物件類型支援的動作。從使用者介面建立稽核查詢時將使用此屬性。如果該值為空值,則所有動作均會顯示為要針對此物件類型查詢的可能值。

mapsToType

字串

(可選擇) 對映至此類型的 com.waveset.object.Type 名稱 (如果有)。嘗試解析物件組織成員身份 (如果尚未在事件上指定) 時會使用此屬性。

organizationalMembership

清單

(可選擇) 應放置此類型事件 (如果它們尚未具有指定的組織成員身份) 之組織 ID 的預設清單。

所有用戶特定關鍵字均應以 # 符號開頭,以防止增加新的內部關鍵字後出現重複的關鍵字。

代碼範例 12-4 說明了延伸式類型 Identity Manager 帳號。

代碼範例 12-4  延伸式類型 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 物件均必須包含表 12-15 中列出的屬性。

表 12-15  extendedAction 屬性

屬性

類型

說明

name

字串

動作名稱,在建構稽核事件時和篩選事件期間使用。

displayName

字串

表示動作名稱的訊息目錄關鍵字。

logDbKey

字串

在記錄表中儲存此動作時要使用的雙字元資料庫關鍵字。

請參閱「記錄資料庫關鍵字」以取得保留值。

所有用戶特定關鍵字均應以 # 符號開頭,以防止增加新的內部關鍵字後出現重複的關鍵字。

代碼範例 12-5 說明了如何增加登出動作。

代碼範例 12-5  增加登出動作

<Object name='Logout'>

  <Attribute name='displayName' value='LG_LOGOUT'/>

  <Attribute name='logDbKey' value='LO'/>

</Object>

extendedResults

除了延伸稽核類型和動作之外,您還可以增加結果。依預設,有兩種結果:成功失敗。您可以透過將結果增加到 extendedResults 屬性中的物件清單中來延伸結果。

每個 extendedResults 物件均必須包含表 12-16 中說明的屬性。

表 12-16  extendedResults 屬性

屬性

類型

說明

name

字串

結果名稱,在設定稽核事件的狀態時和篩選事件期間使用。

displayName

字串

表示結果名稱的訊息目錄關鍵字。

logDbKey

字串

在記錄表中儲存此結果時要使用的單字元資料庫關鍵字。請參閱標題為資料庫關鍵字的小節,以取得保留值。

所有用戶特定關鍵字均應使用 0 到 9 之間的數字,以防止增加新的內部關鍵字後出現重複的關鍵字。

發佈程式

發佈程式清單中的每個項目均為通用物件。每個發佈程式均具有以下屬性:

表 12-17  發佈程式屬性

屬性

類型

說明

class

字串

發佈程式類別的名稱。

displayName

字串

表示發佈程式名稱的訊息目錄關鍵字。

description

字串

對發佈程式的說明。

filters

清單

指定給此發佈程式的稽核群組清單。

formatter

字串

文字格式化程式的名稱 (如果有)。

options

清單

發佈程式選項清單。這些選項是發佈程式特定的;清單中的每個項目均是 PublisherOption 的對映表示。請參閱 sample/auditconfig.xml 以取得範例。


資料庫模式

Identity Manager 資料庫中有兩個用於儲存稽核資料的表格:

waveset.log

本小節列出了 waveset.log 表中的各欄名稱和資料類型。資料類型是根據 Oracle 資料庫定義取得的,並會因資料庫的不同而稍有不同。如需所有受支援資料庫的資料模式值清單,請參閱附錄 C「稽核記錄資料庫模式」

為節省空間,一些欄值在資料庫中儲存為關鍵字。如需關鍵字定義,請參閱標題為「記錄資料庫關鍵字」的小節。

waveset.logattr

waveset.logattr 表用於儲存每個事件的組織成員身份 ID,這可以依組織設定稽核記錄範圍。


記錄資料庫關鍵字

objectType、動作、actionStatus和原因欄在資料庫中儲存為關鍵字,以節省空間。

物件類型、動作和結果

表 12-18 說明了在資料庫中儲存為關鍵字的物件類型、動作和結果:

表 12-18  儲存為關鍵字的物件類型、動作和結果

物件類型名稱

資料庫關聯字

動作名稱

資料庫關聯字

結果名稱

資料庫關聯字

帳號

AN

核准

AP

成功

S

管理員

AD

略過驗證

BV

失敗

F

AdminGroup

AG

取消調解

CR

 

 

屬性定義

AF

詢問回應

CD

 

 

應用程式

AP

變更密碼

CP

 

 

權能

US

建立

CT

 

 

配置

CN

連線

CO

 

 

探索

DS

刪除

DL

 

 

電子郵件範本

ET

取消佈建

DP

 

 

ER

停用

DS

 

 

ExtractTask

EX

結束連線

DC

 

 

Identity Manager 帳號

LA

啟用

EN

 

 

IDMX 使用者

UX

執行

LN

 

 

載入配置

LD

匯出

EP

 

 

LoadTask

LT

匯入

IM

 

 

登入配置

LC

清單

LI

 

 

策略

PO

載入

LD

 

 

佈建作業

PT

登入

LG

 

 

資源

RS

更新

MO

 

 

資源帳號

RA

登出

LO

 

 

資源表單

RF

本機變更

NC

 

 

資源物件

RE

作業後

PT

 

 

風險報告作業

RR

作業前

PE

 

 

角色

RL

佈建

PV

 

 

規則

RU

重設密碼

RP

 

 

使用者

US

重新佈建

RV

 

 

作業定義

TD

拒絕

RJ

 

 

作業實例

TI

終止

TR

 

 

作業排程

TS

使用者名稱回復

UR

 

 

TaskTemplate

TT

 

 

 

 

作業結果

TR

 

 

 

 

使用者表單

UF

 

 

 

 

WorkItem

WI

 

 

 

 

XML 資料

XD

 

 

 

 

原因

表 12-19 說明了在資料庫中儲存為關鍵字的原因:

表 12-19 儲存為關鍵字的原因

原因名稱

英文

資料庫關聯字

策略違規

Violation of policy {0}: {1}

PV

憑證無效

Invalid credentials

CR

權限不足

Insufficient privileges

IP

資料庫存取失敗

Database access failed

DA

帳號已停用

Account disabled

DI


防止稽核記錄竄改

您可以配置 Identity Manager 以防止以下形式的稽核記錄竄改:

所有 Identity Manager 稽核記錄中的記錄均具有唯一的、視伺服器而定的序列號以及記錄和序列號的加密雜湊。當您建立竄改偵測報告時,它會對每個伺服器的稽核記錄掃描以下各項:

配置防竄改記錄

若要配置防竄改記錄,請執行以下步驟:

  1. 選取 [Reports] > [New] > [Audit Log Tampering Report],以建立竄改報告。
  2. 當顯示 [Define a Tampering Report] 頁面 (請參閱圖 12-1) 時,為報告輸入標題,然後 [Save] 該報告。
  3. 圖 12-1  配置稽核記錄竄改報告
    配置稽核記錄竄改報告

    您也可以指定以下可選參數:

    • Report Summary — 輸入報告的說明性摘要。
    • Starting sequence for server '<server_name>' — 輸入伺服器的起始序列號。
    • 此選項可讓您刪除舊的記錄項目而無需將其標記為竄改,以及出於效能原因限制報告範圍。
    • Email Report — 可將報告結果以電子郵件的形式傳送至指定的電子郵件地址。
    • 選取此選項時,頁面會更新並提示您輸入電子郵件地址。但是,請記住,使用電子郵件傳送文字內容是不安全的 機密資訊 (例如帳號 ID 或帳號歷程記錄) 可能會洩漏。
    • Override default PDF options — 選取改選項可以置換此報告的預設 PDF 選項。
    • Organizations — 選取應具有此報告之存取權的組織。
  4. 接下來選取 [Configure] > [Audit],以開啟 [Audit Configuration] 頁面 (如圖 12-2 所示)。
  5. 圖 12-2  防竄改稽核記錄配置
    使用 [Audit Configuration] 頁面配置稽核事件。

  6. 選取 [Use Custom Publisher],然後按一下 [Repository publisher] 連結。
  7. 選取 [Enable tamper-resistant audit logs],然後按一下 [OK]
  8. 按一下 [Save] 儲存設定。
  9. 您可以再次關閉此選項,但是未簽署的項目本身將在稽核記錄竄改報告中進行標記,您必須重新配置報告才能忽略這些項目。


使用自訂發佈程式

Identity Manager 可以將稽核事件提交給自訂稽核發佈程式。提供了以下自訂發佈程式:

您可在參照工具組中找到這些發佈程式的原始碼。參照工具組中還提供了 Javadoc 格式的介面文件。

開發發佈程式

所有發佈程式均可實作 AuditLogPublisher 介面。(請參閱 Javadoc,以取得有關介面的詳細資訊)。開發者可以延伸 AbstractAuditLogPublisher 類別。此類別可剖析配置並確保已為發佈程式提供所有必要選項。(請參閱參照工具組中的發佈程式範例)。

發佈程式必須具有一個無引數建構子。

生命週期

以下步驟說明了發佈程式的生命週期:

  1. 實例化物件。
  2. 使用 setFormatter() 方法設定格式化程式 (如果有)。
  3. 使用 configure(Map) 方法提供選項。
  4. 使用 publish(Map, LoggingErrorHandler) 方法發佈事件。
  5. 使用 shutdown() 方法終止發佈程式。

Identity Manager 啟動以及無論何時更新稽核配置時,均執行步驟 1 到 3。如果在呼叫關閉之前未產生稽核事件,則不執行步驟 4。

在同一發佈程式物件上僅呼叫一次 configure(Map)。(發佈程式無需為作用中的配置變更做準備)。更新稽核配置後,首先會關閉目前的發佈程式,然後建立新的發佈程式。

步驟 3 中的 configure() 方法可能會丟出 WavesetException。在此情況下,將忽略發佈程式,且不會對此發佈程式進行任何其他呼叫。

配置

發佈程式可以沒有選項,也可以有多個選項。getConfigurationOptions() 方法可傳回發佈程式支援的選項清單。這些選項使用 PublisherOption 類別 (請參閱 Javadoc 以取得有關此類別的詳細資訊) 進行封裝。稽核配置檢視器在建置發佈程式的配置介面時會呼叫此方法。

Identity Manager 可在伺服器啟動時和稽核配置變更之後使用 configure(Map) 方法配置發佈程式。

開發格式化程式

參照工具組包含以下格式化程式的原始碼:

格式化程式必須實作 AuditRecordFormatter 介面。此外,格式化程式必須具有一個無引數建構子。請參閱參照工具組中的 Javadoc,以取得詳細資訊。

註冊發佈程式/格式化程式

#ID#Configuration:SystemConfiguration 物件的稽核屬性列出所有已註冊的發佈程式和格式化程式。只有這些發佈程式和格式化程式可在稽核配置使用者介面中使用。



上一頁      目錄      索引      下一頁     


文件號碼: 820-0141。   Copyright 2006 Sun Microsystems, Inc. 版權所有。