Sun Java System Access Manager 7 2005Q4 管理指南

第 13 章 記錄服務

Sun Java™ System Access Manager 7 2005Q4 提供記錄服務,以記錄如使用者作業、流量模式和授權違規等資訊。此外,除錯檔案可幫助管理員排解安裝的疑難。

記錄檔

記錄檔記錄其監視的每個服務的許多事件。管理員應定期查看這些檔案。記錄檔的預設目錄是 /var/opt/SUNWam/logs (SPARC 系統) 和 /var/opt/sun/identity (Linux 系統)。藉由使用 Access Manager 主控台,可在 [記錄服務] 中配置記錄檔目錄。

有關預設記錄檔類型、記錄何種資訊以及記錄檔格式之詳細清單的資訊,請參閱「Sun Java System Access Manager 7 2005Q4 Technical Overview」中的「How the Logging Feature Works」

有關 [記錄服務] 的屬性定義,請按一下 Access Manager 主控台中的 [說明] 按鈕以查閱線上說明。

Access Manager 服務記錄

服務記錄檔有兩種類型:存取和錯誤。「存取」記錄檔包含嘗試登入與成功登入的記錄。「錯誤」記錄檔記錄 Access Manager 服務中的錯誤。平面記錄檔附加的副檔名為 .error.access。資料庫欄位的名稱是以 _ERROR_ACCESS 結束 (Oracle 資料庫),或以 _error_access 結束 (MySQL 資料庫)。例如,平面檔案記錄主控台事件名為 amConsole.access,而記錄同一事件的資料庫欄位名為 AMCONSOLE_ACCESS。以下各節說明記錄服務所記錄的記錄檔。

階段作業記錄檔

[記錄服務] 記錄以下階段作業服務事件:

階段作業記錄檔的前綴是 amSSO

主控台記錄檔

Access Manager 主控台記錄檔記錄識別相關物件、策略和服務的建立、刪除與修改,其中包括組織、組織單位、使用者、角色、策略和群組。它也記錄使用者屬性的修改,包括密碼以及新增或移除角色和群組中的使用者。此外,主控台記錄檔也寫入委託和資料存放區作業。主控台記錄檔的前綴是 amConsole

認證記錄檔

認證元件記錄使用者的登入和登出。認證記錄檔的前綴是 amAuthentication

聯合記錄檔

「聯合」元件記錄聯合相關事件,例如 (但不限於) 建立「認證網域」和建立「寄存提供者」。聯合記錄檔的前綴是 amFederation

策略記錄檔

策略元件記錄策略相關事件,包括 (但不限於) 策略管理 (策略的建立、刪除和修改) 和策略評估。策略記錄檔的前綴是 amPolicy

代理程式記錄檔

策略代理程式記錄檔負責記錄有關允許或拒絕使用者存取之記錄資源的異常。代理程式記錄檔的前綴是 amAgentamAgent 記錄檔只存在於代理程式伺服器中。在 Access Manager 伺服器上於「認證記錄檔」中記錄代理程式事件。如需有關此功能的更多資訊,請參閱有疑問的策略代理程式的相關文件。

SAML 記錄檔

SAML 元件記錄 SAML 相關事件,包括 (但不限於) 指定和工件的建立或移除、回應和請求的詳細資訊以及 SOAP 錯誤。階段作業記錄檔的前綴是 amSAML

amAdmin 記錄檔

指令行記錄檔記錄使用指令行工具的作業中發生的事件錯誤。包括 (但不限於) 載入服務模式、建立策略和刪除使用者。指令行記錄檔的前綴是 amAdmin

記錄功能

[記錄服務] 有數個特定功能,可加以啟用以執行額外的功能。包括啟用「安全記錄」、「指令行記錄」和「遠端記錄」。

安全記錄

此選擇性的功能可將額外安全性加入記錄功能中。啟用「安全記錄」後,可以偵測對安全記錄進行的未授權變更或竄改。使用此功能不需用特殊編碼。「安全記錄」是藉由使用由系統管理員配置的預先註冊憑證來達成。會為每個記錄檔記錄產生和儲存此「清單分析和憑證 (MAC)」。會定期插入特定「簽名」記錄檔記錄,表示寫入該點之記錄內容的簽名。兩種記錄的組合可確保記錄沒有被竄改。

Procedure啟用安全記錄

步驟
  1. Logger 名稱建立憑證,然後將其安裝在執行 Access Manager 的部署容器中。詳細資訊請參閱部署容器的文件。

  2. 在 Access Manager 主控台中,開啟 [記錄服務] 配置中的 [安全記錄],並儲存此變更。管理員亦可修改 [記錄服務] 中其他屬性的預設值。

    若記錄目錄預設值 (/var/opt/SUMWam/logs) 有所變更,請確定將其權限設為 0700。若此目錄不存在,記錄服務會建立此目錄,但它會建立權限設為 0755 的目錄。

    此外,若您指定和預設不同的目錄,必須變更以下參數至新目錄中 Web 容器的 server.policy 檔:

    permission java.io.FilePermission “/var/opt/SUNWam/logs/*”,”delete,write”

  3. 在包含憑證資料庫密碼的 AccessManager-base/SUNWam/config 目錄中建立檔案,並將之命名為 .wtpass


    備註 –

    其檔名和路徑可在 AMConfig.properties 檔中配置。如需更多資訊,請參閱附錄 AAMConfig.properties 檔案中的「憑證資料庫」。

    請確定部署容器使用者為因安全性理由對此檔案有讀取權限的管理員。


  4. 重新啟動伺服器。

    應清除安全記錄目錄,因為當啟動安全記錄時,部份易引起誤解的驗證錯誤可能會被寫入 /var/opt/SUNWam/debug/amLog 檔案。

    若要偵測安全記錄中有無未認證的變更或竄改, 請查看驗證程序寫入 /var/opt/SUNWam/debug/amLog 的錯誤訊息。若要手動檢查竄改,請執行 VerifyArchive 公用程式。如需更多資訊,請參閱第 19 章, VerifyArchive 指令行工具

指令行記錄

amadmin 指令行工具可建立、修改和刪除 Directory Server 中的識別物件 (例如組織、使用者、角色)。此工具也可載入、建立和註冊服務範本。[記錄服務] 可啟用 -t 選項來記錄這些動作。若啟用 (ACTIVE) AMConfig.properties 中的 com.iplanet.am.logstatus 特性,則會建立記錄檔記錄。(依預設會啟用此特性。)指令行記錄檔的前綴是 amAdmin。如需更多資訊,請參閱第 14 章, amadmin 指令行工具

記錄特性

AMConfig.properties 檔中有一些特性會影響記錄的輸出:

com.iplanet.am.logstatus=ACTIVE

此特性可啟用或停用記錄。預設為 ACTIVE。

iplanet-am-logging.service.level= level

service 為服務的正常除錯檔檔名。leveljava.util.logging.Level 值的其中一個,表示記錄於記錄檔中之詳細資訊的等級。等級可為 SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。大多數服務所記錄的詳細資訊不會高於 INFO 記錄等級。

遠端記錄

Access Manager 支援遠端記錄。使用安裝 Access Manager SDK 之主機的用戶端應用程式可在部署於遠端機器上的 Access Manager 實例上建立記錄檔記錄。遠端記錄可在以下情況下被啟動:

  1. 當 Access Manager 實例的 [記錄服務] 中的記錄 URL 指向遠端實例,且二者之間配置為信任關係,記錄將寫入遠端 Access Manager 實例。

  2. 當 Access Manager SDK 是針對遠端 Access Manager 實例而安裝,且在 SDK 伺服器上執行的用戶端 (或簡單 Java 類別) 使用記錄 API,記錄將寫入遠端 Access Manager 機器。

  3. 當記錄 API 是由 Access Manager 代理程式所使用。

Procedure啟用遠端記錄

步驟
  1. 若使用 Sun Java System Web Server,server.xml 配置檔中需設定以下環境變數:

    • java.util.logging.manager=com.sun.identity.log.LogManager

    • java.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties

    • 若使用的 Java™ 2 Platform, Standard Edition 為 1.4 或更高版本,在指令行中執行以下指令將完成此步驟:

      java -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties <logTestClass>

    • 若使用的 Java 2 Platform, Standard Edition 版本低於 1.4,在指令行中執行以下指令將完成此步驟:

      java -Xbootclasspath/a:/AccessManager-base /SUNWam/lib/jdk_logging.jar -cp / AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties <logTestClass>

  2. 請確定位於 AccessManager-base/SUNWam/libLogConfig.properties 中有配置以下參數:

    • iplanet-am-logging-remote-handler=com.sun.identity

      log.handlers.RemoteHandler

    • iplanet-am-logging-remote-formatter=com.sun

      identity.log.handlers.RemoteFormatter

    • iplanet-am-logging-remote-buffer-size=1

      遠端記錄支援緩衝,以記錄檔記錄的數目為基準。此值定義了記錄緩衝區大小,以記錄的數目為單位。一旦緩衝區空間已滿,所有在緩衝區中的記錄都會被清空至伺服器。

    • iplanet-am-logging-buffer-time-in-seconds=3600

      此值定義要呼叫緩衝區清除器執行緒的逾時期間。

    • iplanet-am-logging-time-buffering-status=OFF

      此值定義是否要啟用記錄緩衝 (和緩衝區清除器執行緒)。依預設此功能為關閉。


    備註 –

    每當記錄檔是空白時,安全記錄可能會顯示「驗證失敗」。這是因為當已建立檔案的數目與歸檔檔案大小相等時,安全記錄會將其歸檔並重新開始。於大部分的實例中,您可忽略此錯誤。一旦記錄的數目與歸檔檔案大小相等時,將不會顯示錯誤。


錯誤和存取記錄檔

存在兩種 Access Manager 記錄檔類型:存取記錄檔和錯誤記錄檔。

存取記錄檔記錄有關 Access Manager 部署的一般稽核資訊。記錄檔可能包含一個事件的單一記錄,例如一次成功的認證。記錄檔可能包含相同事件的多個記錄。例如,當管理員使用主控台變更屬性值時,「記錄服務」在一個記錄中記錄變更嘗試。「記錄服務」同時也會在第二個記錄中記錄執行結果。

錯誤記錄檔記錄發生於應用程式中的錯誤。當錯誤記錄檔中記錄了作業錯誤時,作業嘗試會記錄於存取記錄檔中。

平面記錄檔會附加副檔名 .error .access。資料庫的欄名稱則以 _ERROR _ACCESS 結束。例如,記錄主控台事件的平面檔案命名為 amConsole.access,記錄相同事件的資料庫欄命名為 AMCONSOLE_ACCESS amConsole_access

下表提供每個 Access Manager 元件所產生之記錄檔的簡要描述。

表 13–1 Access Manager 元件記錄檔

元件 

記錄檔名稱前綴 

記錄的資訊 

階段作業 

amSSO

階段作業管理屬性值,如登入時間、登出時間、逾時限制。 

管理主控台 

amConsole

經由管理主控台執行的使用者動作,如識別相關之物件、範圍,及策略的建立、刪除與修改。 

認證 

amAuthentication

使用者登入和登出。 

識別聯合 

amFederation

聯合相關事件,如「認證網域」的建立和「寄存提供者」的建立。聯合記錄檔的前綴是 amFederation

授權 (策略) 

amPolicy

策略相關事件,如策略建立、刪除或修改以及策略評估。 

策略代理程式 

amAgent

有關為使用者存取或拒絕使用者存取之資源的異常。amAgent 記錄檔位於安裝策略代理程式的伺服器上。在 Access Manager 主機上於「認證記錄檔」中記錄代理程式事件。

SAML 

amSAML

SAML 相關事件,如指定和工件的建立或移除、回應和請求的詳細資訊以及 SOAP 錯誤。 

指令行 

amAdmin

使用指令行工具的作業中發生的事件錯誤。範例為:載入服務模式、建立策略和刪除使用者。 

如需 Access Manager 記錄檔清單與描述,請參閱附錄 C記錄檔參照

除錯檔

除錯檔並非 [記錄服務] 的功能。它們是使用獨立於記錄 API 的其他 API 寫入。除錯檔儲存在 /var/opt/SUNWam/debug。此位置 (以及除錯資訊的等級) 可在 AMConfig.properties 檔中配置,此檔位於 AccessManager-base/SUNWam/lib/ 目錄中。如需更多有關除錯特性的資訊,請參閱附錄 AAMConfig.properties 檔案

除錯等級

除錯檔可記錄的資訊分為幾個等級。除錯等級是以 AMConfig.propertiescom.iplanet.services.debug.level 特性設定。

  1. Off— 不記錄除錯資訊。

  2. Error— 此等級用於生產。生產時,除錯檔中應無錯誤。

  3. Warning— 目前並不建議使用此等級。

  4. Message— 此等級利用代碼追蹤對可能的問題發出警示。大多數 Access Manager 模組使用此等級傳送除錯訊息。


    備註 –

    [Warning] 與 [Message] 等級不可用於生產中。這樣會嚴重降低效能並產生大量的除錯訊息。


除錯輸出檔

除非模組寫入除錯檔,否則不會建立除錯檔。因此,在預設錯誤模式下不會產生除錯檔。登入時若除錯等級設為訊息,則建立的除錯檔包括:

最常使用的檔案是 amSDKamProfile 和所有適用於認證的檔案。所擷取的資訊包括日期、時間和訊息類型 ([錯誤]、[警告]、[訊息])。

使用除錯檔

依預設,除錯等級設為錯誤。當管理員要進行下列作業時,除錯檔十分有用:

應將我們以後可能會收到的疑難排解指南與除錯檔配合使用。例如,當 SSL 失敗時,某些人可能會開啟除錯訊息並尋找 amJSS 除錯檔中的任何特定憑證錯誤。

多重 Access Manager 實例和除錯檔

Access Manager 包含 ammultiserverinstall 程序檔,可用於配置數個伺服器實例。若多重伺服器實例配置為使用不同除錯目錄,則各個實例都必須有讀取和寫入除錯目錄的權限。