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

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

第 10 章
安全性

本章提供有關 Identity Manager 安全性功能的資訊,並詳細說明您可以採取以進一步降低安全性風險的步驟。

檢視以下主題以瞭解有關使用 Identity Manager 管理系統安全性的更多資訊。


安全性功能

Identity Manager 可透過提供以下功能來協助降低安全性風險:

此外,系統架構也會儘可能地尋求降低安全性風險的機會。例如,登出後即無法透過瀏覽器的 [Back] 功能存取先前造訪過的頁面。


限制同步運作的登入階段作業

依預設,Identity Manager 使用者可以具有同步運作的登入階段作業。但是,您可以透過變更系統配置物件中 security.authn.singleLoginSessionPerApp 配置屬性的值,來將同步運作階段作業限制為每個登入應用程式一個。該屬性是包含每個登入應用程式名稱 (例如,管理員介面、使用者介面或 Identity Manager IDE) 的一個屬性的物件。將該屬性的值變更為 true 會強制每個使用者具有單一登入階段作業。

如果已強制,則使用者可以登入多個階段作業;但是,僅最後登入的階段作業保持使用中狀態並且有效。如果使用者對無效的階段作業執行動作,則會自動強制其退出階段作業,並且階段作業會終止。


密碼管理

Identity Manager 在多個層級提供密碼管理:


通過式認證

使用通過式認證授予使用者和管理員透過一個或多個不同密碼進行存取的權限。Identity Manager 透過實作以下內容來管理認證:

關於登入應用程式

登入應用程式定義登入模組群組的集合,登入模組群組進一步定義使用者登入 Identity Manager 時所使用之登入模組的集合和順序。每個登入應用程式均包括一或多個登入模組群組。

登入時,登入應用程式會檢查登入模組群組集。如果只設定一個登入模組群組,則會使用該群組,且它所包含的登入模組會以群組定義的順序處理。如果登入應用程式中包含多個已定義的登入模組群組,則 Identity Manager 會檢查套用至每個登入模組群組的登入限制規則,以確定要處理哪個群組。

登入限制規則

登入限制規則會套用至在登入應用程式中定義的登入模組群組。對於每一個在登入應用程式中登入的模組群組,只有一個群組是無法讓登入限制套用的。

Identity Manager 會評估第一個登入模組群組的限制規則,以決定要處理一個集合中的哪一個登入模組群組。如果成功,則會處理該登入模組群組。如果失敗,則它會依次評估每個登入模組群組,直到某個限制規則成功,或是評估沒有限制規則的登入模組群組 (隨即使用該模組)。


備註  

如果登入應用程式包含多個登入模組群組,則沒有登入限制規則的登入模組群組應放在模組集的最後一個位置。


登入限制規則範例

在下列基於位置的登入限制規則範例中,規則會從標頭中取得請求程式的 IP 位址,然後檢查它是否位於 192.168 網路上。如果在 IP 位址中找到 192.168.,則規則將傳回 true 值,並且會選取此登入模組群組。

代碼範例 10-1  基於位置的登入限制規則

 

<Rule authType='LoginConstraintRule' name='Sample On Local Network'>

  <match>

    <ref>remoteAddr</ref>

    <s>192.168.</s>

  </match>

  <MemberObjectGroups>

    <ObjectRef type='ObjectGroup' name='All'/>

  </MemberObjectGroups>

</Rule>

 

編輯登入應用程式

從功能表列中選取 [Configure],然後選取 [Login] 以存取 [Login] 頁面。

登入應用程式清單顯示:

從 [Login] 頁面中,您可以:

若要編輯某登入應用程式,請從清單中選取該應用程式。

設定 Identity Manager 階段作業限制

在 [Modify Login Application] 頁面中,您可以為每個 Identity Manager 登入階段作業設定逾時值 (限制)。選取時、分和秒數後,再按一下 [Save]。您建立的限制會顯示在登入應用程式清單中。

停用對應用程式的存取

在 [Create Login Application] 和 [Modify Login Application] 頁面中,您可以選取 [Disable] 選項以停用登入應用程式,從而阻止使用者登入。如果使用者嘗試登入已停用的應用程式,則該介面會將其重新導向至替代頁面,以指示該應用程式目前已停用。您可以透過編輯自訂目錄來編輯顯示在此頁面上的訊息。

在您取消選取該選項之前,登入應用程式將保持停用狀態。為安全起見,您不能停用管理員登入。

編輯登入模組群組

登入模組群組清單顯示:

在 [Login Module Groups] 頁面中,您可以建立、編輯和刪除登入模組群組。從清單中選取其中一個登入模組群組以進行編輯。

編輯登入模組

如下輸入登入模組的詳細資訊或進行選取。(不是所有選項都可用於每個登入模組。)

按一下 [Save] 以儲存登入模組。一旦儲存之後,您可以將模組放置在登入模組群組中其他所有模組所在的位置。


注意  

如果將 Identity Manager 登入配置為可透過認證登入多個系統,則為 Identity Manager 認證目標的所有系統上,帳號的使用者 ID 和密碼皆需相同。


如果使用者 ID 和密碼的組合不同,則如果登入系統時的使用者 ID 和密碼與 Identity Manager [User Login] 表單中所輸入者不相符,登入將會失敗。這些系統中有一些可能有鎖定策略,當失敗的登入嘗試超過指定次數後,便會強制鎖定帳號;對這些系統而言,即使使用者仍可透過 Identity Manager 成功登入,使用者帳號最後還是會被鎖定。


配置共用資源的認證

如果您有多個在實體或邏輯上相同的資源 (例如針對相同實體主機定義的兩個資源,或代表 NT 或 AD 網域環境中信任的網域伺服器的數個資源),則您可以在系統配置物件中將該組資源設為共用資源

將資源設為共用之後,您可讓使用者認證進入其中一個共用資源,但使用另一個共用資源將使用者對映至其關聯的 Identity Manager 使用者。例如,使用者可以將其資源帳號連結至他的資源 AD-1 的 Identity Manager 使用者。豋入模組可能會定義使用者必須認證進入資源 AD-2。如果 AD-1 及 AD-2 皆定義為共用資源 (在此情況下,它們是在相同的受信任網域中),則當使用者順利認證進入 AD-2 後,Identity Manager 可以對映到相關聯的 Identity Manager 使用者,方法是在資源 AD-1 上尋找具有相同 accountId 的使用者。

用來指定此系統配置物件屬性的格式如以下範例中所示:

代碼範例 10-2  配置共用資源的認證

 

<Attribute name=common resources>

    <Attribute name=Common Resource Group Name>

        <List>

            <String>Common Resource Name</String>

            <String>Common Resource Name</String>

        </List

    </Attribute>

</Attribute>

 


配置 X509 憑證認證

使用下列資訊和程序配置 Identity Manager 的 X509 憑證認證。

先決條件

若要在 Identity Manager 中支援基於 X509 憑證的認證,請確定已正確配置雙向 (用戶端與伺服器) SSL 認證。從用戶端的角度,這表示符合 X509 規範的使用者憑證應已匯入到瀏覽器中 (或可透過智慧卡讀取器使用),而用於登入使用者憑證的可信任憑證應匯入到 Web 應用程式伺服器的可信任憑證金鑰存放區中。

此外,必須選取所使用的用戶端憑證來進行用戶端認證。若要確認這個動作:

  1. 使用 Internet Explorer,選取 [工具],然後選取 [網際網路選項]
  2. 選取 [內容] 標籤。
  3. 在 [憑證] 區域中,按一下 [憑證]
  4. 選取用戶端憑證,然後按一下 [進階]
  5. 在 [憑證目的] 區域中,確認選取 [用戶端認證] 選項。

配置 Identity Manager 中 X509 憑證認證

為 X509 憑證認證配置 Identity Manager:

  1. 以 [Configurator] 的身份 (或具同等權限的身份) 登入 [Administrator Interface]。
  2. 選取 [Configure],然後選取 [Login],以顯示 [Login] 頁面。
  3. 按一下 [Manage Login Module Groups],以顯示 [Login Module Groups] 頁面。
  4. 在清單中選取登入模組群組。
  5. 在 [Assign Login Module...] 清單中,選取 [Identity Manager X509 Certificate Login Module]。Identity Manager 會顯示 [Modify Login Module] 頁面。
  6. 設定登入成功需求。可接受的值如下:
    • [Required] — 此登入模組為成功認證的必要模組。無論認證是成功或失敗,認證程序都會進行清單中的下一個登入模組。如果僅有一個登入模組,則管理員可成功登入。
    • [Requisite] — 此登入模組為成功認證的必要模組。如果認證成功,則認證程序會進行清單中的下一個登入模組。如果失敗,則認證將不會繼續進行。
    • [Sufficient] — 此登入模組不是成功認證的必要模組。如果認證成功,則認證程序並不會繼續進行下一個登入模組,但管理員可成功登入。如果認證失敗,則認證會繼續進行清單上的下一個登入模組。
    • [Optional] — 此登入模組不是成功認證的必要模組。無論認證是成功或失敗,認證程序都會繼續清單中的下一個登入模組。
  7. 選取登入相互關聯規則。此規則可以是內建的規則或自訂相互關聯規則。(請參閱下節獲得有關建立自訂相互關聯規則的資訊)。
  8. 按一下 [Save] 返回 [Modify Login Module Group] 頁面。
  9. 或者,重新安排登入模組的順序 (如果登入模組群組中已指定多個登入模組),然後按一下 [Save]
  10. 如果尚未指定,則將登入模組群組指定給登入應用程式。在 [Login Module Groups] 頁面上,按一下 [Return to Login Applications],再選取登入應用程式。將登入模組群組指定給應用程式後,按一下 [Save]

  11. 備註  

    如果將 waveset.properties 檔案中的 allowLoginWithNoPreexistingUser 選項設定為 true 值,則當配置 Identity Manager X509 憑證登入模組時,系統會提示您選取 [New User Name Rule]。此規則用於確定如何命名相關的登入相互關聯規則找不到使用者時建立的新使用者。

    [New User Name Rule] 可用的輸入引數與 [Login Correlation Rule] 相同。它會傳回單一字串,此字串會成為用於建立新 Identity Manager 使用者帳號的使用者名稱

    在 idm/sample/rules 中有新使用者名稱規則的範例,名為 NewUserNameRules.xml。


建立並匯入登入配置規則

Identity Manager X509 憑證登入模組會使用登入相互關聯規則來確定如何將憑證資料對映至適當的 Identity Manager 使用者。Identity Manager 包括一個內建相互關聯規則,名為 Correlate via X509 Certificate subjectDN。

您也可以增加您自己的關聯規則。每一個相互關聯規則必須遵守這些指導原則:

傳遞至登入配置規則的引數有:

傳遞至登入相互關聯規則的憑證引數的命名慣例:

cert.field name.subfield name

以下為規則可以使用的引數名稱範例:

登入配置規則 (使用傳入引數) 會傳回一或多個 AttributeConditions 的清單。[Identity Manager X509 Certificate Login Module] 會使用這些清單找到相關的 Identity Manager 使用者。

idm/sample/rules 中包含登入相互關聯規則的範例,名為 LoginCorrelationRules.xml

建立自訂相互關聯規則後,您必須將它匯入 Identity Manager。從 [Administrator Interface] 中選取 [Configure],然後選取 [Import Exchange File],以使用檔案匯入功能。

測試 SSL 連線

若要測試 SSL 連線,請透過 SSL 連線到配置應用程式介面的 URL (例如 https//idm007:7002/idm/user/login.jsp) 。您會被告知您將進入安全的網站,並提示您指定要傳送給 Web 伺服器的個人憑證。

診斷問題

透過 X509 憑證而發生的認證問題會在登入表單上以錯誤訊息的形式報告。如需完整的診斷,請在 Identity Manager 伺服器上對於以下類別和層級進行追蹤:

如果用戶端憑證屬性在 http 請求中的名稱不是 javaxservlet.request.X509Certificate ,您會收到一個訊息表示在 http 請求中找不到此屬性。若要更正這個問題:

  1. 啟用 SessionFactory 追蹤,以查看 http 屬性的完整清單,並確定 X509 憑證的名稱。
  2. 使用 Identity Manager 除錯設備來編輯 LoginConfig 物件。
  3. 將 Identity Manager X509 憑證登入模組之 <LoginConfigEntry> 中的 <AuthnProperty> 的名稱變更為正確名稱。
  4. 儲存,然後重試。

您可能還需要先移除,然後再重新增加登入應用程式中的 Identity Manager X509 憑證登入模組。


加密使用和管理

加密用於確保記憶體和儲存庫中伺服器資料以及在伺服器和閘道之間傳輸的所有資料的機密性和完整性。

以下各節提供了有關如何在 Identity Manager 伺服器和閘道中使用和管理加密的更多資訊,並闡述了有關伺服器和閘道加密金鑰的問題。

受加密保護的資料

下表顯示了在 Identity Manager 產品中受加密保護的資料類型,包括用於保護每種類型資料的密碼。

表 10-1  受加密保護的資料類型  

資料類型

RSA
MD5

NIST
Triple DES
168 位元金鑰
(DESede/ECB/NoPadding)

PKCS#5
基於密碼的加密
56 位元金鑰
(PBEwithMD5andDES)

伺服器加密金鑰

 

預設

配置選項1

閘道加密金鑰

 

預設

配置選項 1

策略字典字詞

 

 

使用者密碼

 

 

使用者密碼歷程記錄

 

 

使用者回覆

 

 

資源密碼

 

 

資源密碼歷程記錄

 

 

伺服器和閘道之間的所有有效負載

 

 

1透過系統配置物件的 pbeEncrypt 屬性或
[Manage Server Encryption] 作業進行配置。

伺服器加密金鑰問題與回覆

請閱讀以下各節,以取得有關伺服器加密金鑰來源、位置、維護和使用的常見問題的回覆。

伺服器加密金鑰來自何處?

伺服器加密金鑰是對稱的 triple-DES 168 位元金鑰。伺服器支援兩種類型的金鑰:

在何處維護伺服器加密金鑰?

伺服器加密金鑰是在儲存庫中維護的物件。在任何給定儲存庫中都會有許多資料加密金鑰。

伺服器如何知道使用哪個金鑰對已加密資料進行解密和重新加密?

儲存在儲存庫中的每一份加密資料都以伺服器加密金鑰 (用於加密該資料) 的 ID 前。將包含加密資料的物件讀入記憶體後,Identity Manager 會使用與加密資料的 ID 前綴關聯的伺服器加密金鑰進行解密,然後使用相同的金鑰重新加密 (如果資料已變更)。

如何更新伺服器加密金鑰?

Identity Manager 提供了名為「管理伺服器加密」的作業。此作業允許經授權的安全管理員執行多項金鑰管理作業,包括:

請參閱本章中的「管理伺服器加密」,以取得有關如何使用此作業的更多資訊。

如果變更「目前」伺服器金鑰,會對現有加密資料造成什麼影響?

沒有影響。仍將使用加密資料的 ID 前綴參照的金鑰對現有加密資料進行解密或重新加密。如果產生新的伺服器加密金鑰並設定為「目前」金鑰,則任何要加密的新資料都將使用該伺服器金鑰。


備註  

請勿從儲存庫中移除由某些物件的加密資料參照的任何伺服器加密金鑰,這一點非常重要,如果移除,則伺服器將無法對資料進行解密。如果從其他儲存庫匯入包含加密資料的物件,則必須首先匯入相關的伺服器加密金鑰,以確保可以成功匯入該物件。

為避免這些多金鑰問題以及維護更高層級的資料完整性,請使用 [Manage Server Encryption] 作業對所有具有「目前」伺服器加密金鑰的現有加密資料重新加密。


如何保護伺服器金鑰?

如果伺服器未配置為使用密碼加密 (PBE) — PKCS#5 加密 (透過 pbeEncrypt 屬性或 [Manage Server Encryption] 作業在系統配置物件中設定),則使用預設金鑰加密伺服器金鑰。對於安裝的所有 Identity Manager,預設金鑰都是相同的。

如果伺服器配置為使用 PBE 加密,則每次啟動伺服器時都會產生一個 PBE 金鑰。透過提供一個密碼 (從伺服器特定的秘密產生) 做為 PBEwithMD5andDES 密碼來產生 PBE 金鑰。PBE 金鑰僅在記憶體中維護,並且從不具有永久性。另外,PBE 金鑰對於共用一個共同儲存庫的所有伺服器都是相同的。

若要啟用伺服器金鑰的 PBE 加密,密碼 PBEwithMD5andDES 必須可用。依預設,Identity Manager 不包含此密碼,但此密碼採用 PKCS#5 標準,許多 JCE 提供者實作 (例如 Sun 和 IBM 提供的實作) 中都提供了該標準。

我可以匯出伺服器金鑰以安全地儲存在外部嗎?

可以。如果伺服器金鑰是 PBE 加密的,則在匯出之前,將使用預設金鑰對其進行解密和重新加密。這使得它們可以獨立於本機伺服器 PBE 金鑰而被稍後匯入相同或其他伺服器中。如果使用預設金鑰加密伺服器金鑰,則在匯出之前不需要任何預先處理。

將金鑰匯入伺服器後,如果該伺服器配置為使用 PBE 金鑰,則將解密這些金鑰。然後,如果該伺服器配置為使用 PBE 金鑰加密,則將使用本機伺服器的 PBE 金鑰重新加密這些金鑰。

哪些資料會在伺服器和閘道之間進行加密?

在伺服器和閘道之間傳輸的所有資料 (有效負載) 都由針對伺服器-閘道階段作業隨機產生的對稱 168 位元金鑰進行 triple-DES 加密。

閘道金鑰問題與回覆

請閱讀以下各節,以取得有關閘道來源、儲存、分發和保護的常見問題的回覆。

加密或解密資料的閘道金鑰來自何處?

每次 Identity Manager 伺服器連線至閘道時,初始訊號交換都將產生新的隨機 168 位元 triple-DES 階段作業金鑰。此金鑰將用於加密或解密所有在該伺服器和該閘道之間傳輸的後續資料。對於每個伺服器/閘道對,產生的階段作業金鑰都是唯一的。

如何將閘道金鑰分發至閘道?

階段作業金鑰由伺服器隨機產生,然後在伺服器和閘道之間安全地進行交換,方法是使用做為初始伺服器至閘道握手的一部分的共用秘密主金鑰對階段作業金鑰進行加密。

在初始握手時,伺服器會查詢閘道以確定閘道支援的模式。閘道可以在兩種模式中作業

我可以更新用於加密或解密伺服器至閘道有效負載的閘道金鑰嗎?

Identity Manager 提供了名為「管理伺服器加密」的作業,其允許經授權的安全管理員執行多項金鑰管理作業,包括產生新的「目前」閘道金鑰和使用該「目前」閘道金鑰更新所有閘道。這是用於加密每個階段作業金鑰 (用於保護在伺服器和閘道之間傳輸的所有有效負載) 的金鑰。根據系統配置中 pbeEncrypt 屬性的值,將使用預設金鑰或 PBE 金鑰加密新產生的閘道金鑰。

閘道金鑰儲存在伺服器、閘道的什麼地方?

在伺服器上,閘道金鑰就像伺服器金鑰一樣儲存在儲存庫中。在閘道上,閘道金鑰儲存在本機登錄機碼中。

如何保護閘道金鑰?

保護閘道金鑰的方式與保護伺服器金鑰的方式相同。如果伺服器配置為使用 PBE 加密,則將使用 PBE 產生的金鑰加密閘道金鑰。如果該選項為 False,則將使用預設金鑰對其進行加密。請參閱前述標題為「如何保護伺服器金鑰?」的章節,以取得更多資訊。

我可以匯出閘道金鑰以安全地儲存在外部嗎?

可以透過「管理伺服器加密」作業匯出閘道金鑰,就像匯出伺服器金鑰一樣。請參閱前述標題為「我可以匯出伺服器金鑰以安全地儲存在外部嗎?」的章節,以取得更多資訊。

如何銷毀伺服器和閘道金鑰?

透過從伺服器儲存庫中刪除伺服器和閘道金鑰即可將其銷毀。請註意,只要仍在使用某金鑰加密伺服器資料或仍有閘道依賴於該金鑰,就不應該刪除該金鑰。使用「管理伺服器加密」作業重新加密所有具有目前伺服器金鑰的伺服器資料,並同步化目前的閘道金鑰與所有閘道,以確保在刪除任何舊的金鑰之前未在使用該舊金鑰。


管理伺服器加密

Identity Manager 伺服器加密功能可讓您建立新的 3DES 伺服器加密金鑰,然後使用 3DES 或 PKCS#5 加密對這些金鑰進行加密,如下圖所示。只有具有「安全管理員」權能的使用者才可以執行 [Manage Server Encryption] 作業,可以從 [Tasks] 標籤存取該作業。

圖 10-1  [Manage Server Encryption] 作業

選取 [Run Tasks],然後從清單中選取 [Manage Server Encryption],以為此作業配置以下資訊:


安全性使用方案

身為 Identity Manager 管理員,您只要在設定時或以後執行以下建議步驟,即可進一步減少受保護帳號和數據的安全性風險。

設定時

您應該:

在使用期間

您應該:

如果您的應用程式伺服器與 Servlet 2.2 相容,Identity Manager 安裝程序會將 http 階段作業逾時設定為預設值 30 分鐘。您可以編輯屬性來變更此值;但您應該將該值設定為一個較低的值以增加安全性。不要將該值設定為高於 30 分鐘。

若要變更階段作業逾時值:

  1. 編輯 web.xml 檔案,其位於您應用程式伺服器目錄樹中的
    idm/WEB-INF 目錄。
  2. 變更下列行中的數值:
  3. <session-config>
    <session-timeout>30</session-timeout>
    </session-config>



上一頁      目錄      索引      下一頁     


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