設計和編碼的考量

搜尋順序

您除了可以在 Oracle Hyperion Shared Services 中設定原生目錄之外,還可以設定多個使用者目錄。系統會把預設的搜尋順序位置指派給所有的已設定使用者目錄。您可以在 Oracle Hyperion Shared Services Console 修改搜尋順序。您可以移除搜尋順序中的已設定使用者目錄,但無法移除原生目錄Oracle Enterprise Performance Management System 並不會使用搜尋順序中沒有的使用者目錄。請參閱 Oracle Enterprise Performance Management System User Security 管理手冊

搜尋順序決定了 EPM System 在驗證使用者時,要用什麼樣的順序搜尋使用者目錄。如果使用者在某個使用者目錄中通過驗證,EPM System 就會停止搜尋,並傳回該使用者。如果 EPM System 無法根據搜尋順序中的使用者目錄成功驗證該使用者,就會拒絕驗證並傳回錯誤。

自訂驗證對於搜尋順序的影響

自訂驗證會影響 EPM System 安全性解譯搜尋順序的方式。

如果自訂驗證模組傳回使用者名稱,EPM System 只會在已針對自訂驗證啟用的某個使用者目錄中尋找該使用者。在這個階段,EPM System 會忽略沒有針對自訂驗證設定的使用者目錄。

瞭解自訂驗證的流程

我們將使用下列的使用案例來探討自訂驗證的流程:

使用案例 1

下列表格詳細說明,在本案例中使用的 EPM System 使用者目錄組態及搜尋順序。本案例假設,自訂驗證模組使用 RSA 基礎架構來驗證使用者。

表格 5-1 案例 1 的設定

使用者目錄的類型和名稱 搜尋順序 自訂驗證 使用者名稱範例 密碼頁尾 1
原生目錄 1 已停用

test_user_1

test_user_2

test_user_3

password

已啟用 LDAP

SunONE_West

2 已停用

test_ldap1

test_ldap_2

test_user_3

test_ldap_4

ldappassword

已啟用 LDAP

SunONE_East

3 已啟用

test_ldap1

test_ldap_2

test_user_3

在 SunONE 用的為 ldappassword,自訂模組中的為 RSA PIN

註腳 1 為簡單起見,我們假設所有使用者都使用相同的使用者目錄密碼。

如要啟動驗證程序,使用者要在某個 EPM System 產品的登入畫面中輸入使用者名稱和密碼。在這個案例中,自訂驗證模組會執行下列動作:

  • 接受使用者名稱和 RSA PIN,作為使用者認證
  • 將採用 username@providername 格式的使用者名稱 (例如 test_ldap_2@SunONE_East) 傳回 EPM System 安全性

表格 5-2 使用者互動和結果

使用者名稱和密碼 驗證結果 登入使用者目錄
test_user_1/password 成功 原生目錄
test_user_3/password 成功 原生目錄
test_user_3/ldappassword 成功 SunONE_West (搜尋順序 2)頁尾 2
test_user_3/RSA PIN 成功 SunONE_East (搜尋順序 3)頁尾 3
test_ldap_2/ldappassword 成功 SunONE_West (搜尋順序 2)
test_ldap_4/RSA PIN 失敗

EPM System 顯示驗證錯誤。頁尾 4

 

註腳 2

自訂驗證無法驗證該使用者,因為該使用者輸入了 EPM System 認證。EPM System 只能在一個沒有針對自訂驗證設定的使用者目錄中識別該使用者。該使用者不在原生目錄 (搜尋順序 1) 中,但在 SunONE West (搜尋順序 2) 中被識別出來。

註腳 3

EPM System 沒有在原生目錄 (搜尋順序 1) 或 SunONE West (搜尋順序 2) 中找到該使用者。自訂驗證模組會根據 RSA 伺服器來驗證使用者,並將 test_user_3@SunONE_EAST 傳回 EPM SystemEPM System 在 SunONE East (搜尋順序 3) 中找到該使用者,而這個目錄是已啟用自訂驗證的使用者目錄。

註腳 4

Oracle 建議您,讓自訂模組驗證成功的所有使用者出現在搜尋順序內某個已啟用自訂驗證的使用者目錄中。如果自訂驗證模組傳回的使用者名稱沒有出現在搜尋順序內某個已啟用自訂驗證的使用者目錄中,登入就會失敗。

使用案例 2

下列表格詳細說明,在本案例中使用的 EPM System 使用者目錄組態及搜尋順序。本案例假設,自訂驗證模組使用 RSA 基礎架構來驗證使用者。

在這個案例中,自訂驗證模組會執行下列動作:

  • 接受使用者名稱和 RSA PIN,作為使用者認證
  • 將使用者名稱 (例如 test_ldap_2) 傳回 EPM System 安全性

表格 5-3 搜尋順序範例

使用者目錄 搜尋順序 自訂驗證 使用者名稱範例 密碼頁尾 5
原生目錄 1 已停用

test_user_1

test_user_2

test_user_3

password
已啟用 LDAP,例如 SunONE 2 已啟用

test_ldap1

test_ldap2

test_user_3

在 SunONE 用的為 ldappassword,自訂模組中的為 RSA PIN

註腳 5 為簡單起見,我們假設所有使用者都使用相同的使用者目錄密碼。

如要啟動驗證程序,使用者要在某個 EPM System 產品的登入畫面中輸入使用者名稱和密碼。

表格 5-4 使用者互動和結果

使用者名稱和密碼 登入結果 登入使用者目錄
test_user_1/password 成功 原生目錄
test_user_3/password 成功 原生目錄
test_user_3/ldappassword 失敗 SunONE頁尾 6
test_user_3/RSA PIN 成功 SunONE頁尾 7

註腳 6

根據原生目錄進行的使用者驗證失敗,原因是密碼不相符。利用自訂驗證模組進行的使用者驗證失敗,原因是所用的密碼並不是有效的 RSA PIN 碼。EPM System 不會嘗試在 SunONE (搜尋順序 2) 中驗證該使用者,原因是自訂驗證設定會覆寫這個目錄中的 EPM System 驗證。

註腳 7

根據原生目錄進行的使用者驗證失敗,原因是密碼不相符。自訂驗證模組會驗證使用者,並將使用者名稱 test_user_3 傳回 EPM System

使用案例 3

下列表格詳細說明,在本案例中使用的 EPM System 使用者目錄組態及搜尋順序。本案例假設,自訂驗證模組使用 RSA 基礎架構來驗證使用者。

為了清楚起見,Oracle 建議您在這些案例中,讓自訂驗證模組傳回採用 username@providername 格式的使用者名稱,例如 test_ldap_4@SunONE

表格 5-5 搜尋順序範例

使用者目錄 搜尋順序 自訂驗證 使用者名稱範例 密碼頁尾 8
原生目錄 1 已啟用

test_user_1

test_user_2

test_user_3

RSA_PIN
已啟用 LDAP,例如 MSAD 2 已停用

test_ldap1

test_ldap4

test_user_3

ldappassword
已啟用 LDAP,例如 SunONE 3 已啟用

test_ldap1

test_ldap4

test_user_3

在 SunONE 用的為 ldappassword,自訂模組中的為 RSA PIN

註腳 8 為簡單起見,我們假設所有使用者都使用相同的使用者目錄密碼。

如要啟動驗證程序,使用者要在某個 EPM System 產品的登入畫面中輸入使用者名稱和密碼。

表格 5-6 使用者互動和結果

使用者名稱和密碼 驗證結果 登入使用者目錄
test_user_1/password 成功 原生目錄
test_user_3/RSA_PIN 成功 原生目錄
test_user_3/ldappassword 成功 MSAD (搜尋順序 2)
test_ldap_4/ldappassword 成功 MSAD (搜尋順序 2)
test_ldap_4/RSA PIN 成功 SunONE (搜尋順序 3)

使用者目錄及自訂驗證模組

如要使用自訂驗證模組,您可以分別把包含 EPM System 使用者和群組資訊的每個使用者目錄,設定成會將驗證作業委派給自訂模組。

使用自訂模組來驗證的EPM System 使用者,都必須出現在搜尋順序內某個使用者目錄中 (請參閱搜尋順序)。此外,您必須將該使用者目錄設定成會將驗證作業委派給自訂模組。

自訂提供者中的使用者識別 (例如 RSA SecurID 基礎架構中的 1357642),可能會與在 Shared Services 設定之使用者目錄中的使用者名稱 (例如某個 Oracle Internet Directory 中的 jDoe) 不相同。自訂驗證模組在驗證使用者之後,必須將使用者名稱 jDoe 傳回 EPM System

註:

Oracle 建議您的最佳作法是,讓在 EPM System 設定之使用者目錄中的使用者名稱,與自訂驗證模組所用的使用者目錄中的使用者名稱完全相同。

CSSCustomAuthenticationIF Java 介面

自訂驗證模組必須使用 CSSCustomAuthenticationIF Java 介面,才能夠與 EPM System 安全性架構整合。該模組會在自訂驗證成功時傳回使用者名稱字串,並在驗證失敗時傳回錯誤訊息。若要完成驗證程序,自訂驗證模組傳回的使用者名稱必須出現在 Shared Services 搜尋順序內的某個使用者目錄中。EPM System 安全性架構支援 username@providerName 格式。

註:

請確保自訂驗證模組傳回的使用者名稱中沒有 * (星號),因為 EPM System 安全性在搜尋使用者時,會把星號解譯成萬用字元。

如需 CSSCustomAuthenticationIF 介面簽章,請參閱程式碼範例 1

您的自訂驗證模組 (可以是類別檔案) 必須包含在 CustomAuth.jar 中,而該套件的結構並不重要。

如需 CSSCustomAuthenticationIF 介面的詳細資訊,請參閱安全性 API 文件。

CSSCustomAuthenticationIFauthenticate 方法支援自訂驗證。authenticate 方法接受使用者在嘗試存取 EPM System 時所輸入的認證 (使用者名稱和密碼) 以作為輸入參數。如果自訂驗證成功,該方法就會傳回字串 (使用者名稱)。如果驗證失敗,就會擲回 java.lang.Exception。該方法傳回的使用者名稱,必須唯一識別 Shared Services 搜尋順序內某個使用者目錄中的使用者。EPM System 安全性架構支援 username@providerName 格式。

註:

如要啟動資源 (例如 JDBC 連線集區),請使用類別建構函式。這可讓系統不會在每次驗證時都載入資源,進而提高效能。