Sun Java System Access Manager 7.1 管理指南

記錄功能

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

安全記錄

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

Procedure透過 JSS 提供者啟用「安全記錄」

  1. Logger 名稱建立憑證,然後將其安裝在執行 Access Manager 的部署容器中。

    如需 Application Server 的說明,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Administration Guide」中的「Working with Certificates and SSL」

    如需 Web Server 的說明,請參閱「Sun Java System Web Server 7.0 Administrator’s Guide」中的「Managing Certificates」

  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 檔中配置。如需更多資訊,請參閱「Access Manager Administration Reference」中 AMConfig.properties 檔案參照一章裡的「Certificate Database」。

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


  4. 重新啟動伺服器。

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

    若要偵測安全記錄檔中有無未授權的變更或竄改,請查看驗證程序寫入 /var/opt/SUNWam/debug/amLog 的錯誤訊息。若要手動檢查竄改,請執行 VerifyArchive 公用程式。如需更多資訊,請參閱「Access Manager Administration Reference」中的 VerifyArchive 指令行一章。

Procedure透過 JCE 提供者啟用安全記錄

  1. 使用 Java keytool 指令建立稱為 Logger 的憑證,並將它安裝在 JKS 金鑰庫中。例如:

    JAVA-HOME/jre/lib/security/Logger.jks

    如需 Application Server 的說明,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Administration Guide」中的「Working with Certificates and SSL」

    如需 Web Server 的說明,請參閱「Sun Java System Web Server 7.0 Administrator’s Guide」中的「Managing Certificates」

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

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

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

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

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


    備註 –

    其檔名和路徑可在 AMConfig.properties 檔中配置。如需更多資訊,請參閱「Access Manager Administration Reference」中 AMConfig.properties 檔案參照一章裡的「Certificate Database」。

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


  4. 在位於 AccessManager-base/config/xml 目錄的 amLogging.xml 中,編輯下列項目:


    sun-am-logging-secure-log-helper
    
                    <AttributeSchema name="iplanet-am-logging-secure-log-helper"
                        type="single"
                        syntax="string"
                        i18nKey="">
                        <DefaultValues>
                            <Value>com.sun.identity.log.secure.impl.SecureLogHelperJCEImpl</Value>
                        </DefaultValues>
                    </AttributeSchema>
    
     sun-am-logging-secure-certificate-store
    
                    <AttributeSchema name="iplanet-am-logging-secure-certificate-store"
                        type="single"
                        syntax="string"
                        i18nKey="">
                        <DefaultValues>
                            <Value>/dir-to-signing-cert-store/Logger.jks</Value>
                        </DefaultValues>
                    </AttributeSchema>
  5. 刪除現有的服務模式 iPlanetAMLoggingService。例如:

    ./amadmin -u amadmin -w netscape -r iPlanetAMLoggingService

  6. 使用 amadmin 指令行工具將編輯好的 amLogging.xml 載入到 Access Manager。例如:

    ./amadmin -u amadmin -w netscape -s /etc/opt/SUNWam/config/xml/amLogging.xml

  7. 重新啟動伺服器。

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

指令行記錄

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

記錄特性

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

com.iplanet.am.logstatus=ACTIVE

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

iplanet-am-logging.service.level= level

service 為服務的正常記錄檔檔名。例如,若要指定 amSAML.access 的記錄等級,請使用特性 iplanet-am-logging.amSAML.access.levelleveljava.util.logging.Level 值的其中一個,表示記錄於記錄檔中之詳細資訊的等級。等級可為 OFF、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST 及 ALL。大多數服務所記錄的詳細資訊不會高於 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使用 Web 容器啟用遠端記錄

  1. 登入 Application Server 或 Web Server 的管理主控台,並增加下列 JVM 選項:

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

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

      如需有關 Application Server 管理主控台的更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Administration Guide」

      如需 Web Server 管理主控台的更多資訊,請參閱「Sun Java System Web Server 7.0 Administrator’s Guide」

    • 若使用的 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

    • 若使用的 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

  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

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

      如果啟用基於計時器的緩衝 (iplanet-am-logging-time-buffering-status=ON),則當記錄檔的記錄數量達到 iplanet-am-logging-remote-buffer-size 中所指定的值,或當計時器逾時 (逾時在 iplanet-am-logging-buffer-time-in-seconds 中指定) 時,就會沖寫記錄檔的緩衝區 (轉移到提供記錄服務的 AM 伺服器)。如果計時器在達到緩衝區大小之前逾時,則會傳送位於緩衝區內的記錄。如果停用遠端記錄的基於計時器緩衝,則緩衝區大小會決定沖寫緩衝區的時機。例如,如果緩衝區大小為 10,而應用程式只傳送 7 條記錄,則不會沖寫緩衝區,也不會向記錄檔寫入記錄。如果應用程式終止,則會沖寫緩衝區中的記錄。


    備註 –

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


  3. 如果搭配用戶端 SDK 使用程式,則需要適當地設定 AMConfig.properties 檔案中的下列特性:

    • com.iplanet.am.naming.url

    • com.sun.identityagents.app.username

    • com.iplanet.am.service.password

    • com.iplanet.am.server.protocol

    • com.iplanet.am.server.host

    • com.iplanet.am.server.port

    請參閱 /opt/SUNWam/war 目錄中的用戶端 SDK 範例 README.clientsdk。它詳述 AMConfig.properties 及 make 檔案是如何針對 /opt/SUNWam/war/clientsdk-samples 目錄產生的。範例的 makefile 的編譯及執行項目會依序使用這些檔案。