受支援的 SSO 方法

SSO 需要 Web 識別管理解決方案將已通過驗證之使用者的登入名稱傳遞給 Oracle Enterprise Performance Management System 產品。您可以使用下列的標準 EPM System 方法,將 EPM System 與商業和自訂的 Web 型 SSO 解決方案整合。

注意:

如果您的組織會以利用標頭傳送使用者識別的方式來進行識別傳播,Oracle 建議您,在 Web 伺服器與應用程式伺服器之間採用用戶端憑證驗證 (雙向 SSL) 來作為安全措施。

HTTP 標頭

如果您要把 Oracle 單一登入 (OSSO)、SiteMinder 或 Oracle Access Manager 作為 Web 識別管理解決方案,EPM System 安全性會自動選取自訂 HTTP 標頭,以便將已驗證使用者的登入名稱傳遞給 EPM System 元件。

EPM System 產品使用者的登入名稱,取決於您在 Oracle Hyperion Shared Services 中設定使用者目錄時所指定的 Login Attribute。如需 Login Attribute 的簡短說明,請參閱 Oracle Enterprise Performance Management System User Security 管理手冊中的「設定 OID、Active Directory 及其他 LDAP 型的使用者目錄」。

HTTP 標頭必須包含設為 Login Attribute 的屬性值。例如,若 uidLogin Attribute 值,則 HTTP 標頭必須包含 uid 屬性的值。

如需如何定義及發出自訂 HTTP 標頭的詳細資訊,請參閱您 Web 識別管理解決方案的文件。

EPM System 安全性會剖析 HTTP 標頭,並根據您在 Shared Services 中設定的使用者目錄,驗證該標頭隨附的登入名稱是否有效。

自訂登入類別

當使用者登入時,Web 識別管理解決方案會根據目錄伺服器驗證使用者,並採用 SSO 機制來封裝已驗證使用者的認證,以便啟用下游系統的 SSO。若 Web 識別管理解決方案使用了 EPM System 產品不支援的機制,或是 SSO 機制未提供 Login Attribute 的值,請使用自訂登入類別來衍生 Login Attribute 的值,並將該值傳遞至 EPM System 產品。

使用自訂登入類別,會讓 EPM System 與使用 X509 憑證式驗證的安全性代理程式整合。若要使用這個驗證機制時,您必須實作標準 Shared Services API 來定義 EPM System 產品與 Web 識別管理解決方案之間的 SSO 介面。自訂登入類別必須將 Login Attribute 的值傳遞至 EPM System 產品。如需 Login Attribute 的簡短說明,請參閱 Oracle Enterprise Performance Management System User Security 管理手冊中的「設定 OID、Active Directory 及其他 LDAP 型的使用者目錄」。如需範例程式碼和實作步驟,請參閱實作自訂登入類別

如要使用自訂登入類別 (預設名稱為 com.hyperion.css.sso.agent.X509CertificateSecurityAgentImpl),類別路徑中必須要有 com.hyperion.css.CSSSecurityAgentIF 介面的實作。CSSSecurityAgentIF 會定義擷取使用者名稱與密碼的 Getter 方法 (選用)。介面若傳回 null 密碼,安全性驗證會將提供者視為信任的提供者,並確認已設定之提供者中確實存在該使用者。若介面傳回非空值的密碼,EPM System 會嘗試使用此實作所傳回的使用者名稱與密碼來驗證要求。

CSSSecurityAgentIF 包含兩種方法:getUserNamegetPassword

getUserName 方法

此方法會傳回使用者名稱進行驗證。

java.lang.String getUserName(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

req 參數會指定內含可用於判斷使用者名稱之資訊的 HTTP 要求。不使用 res 參數 (回溯相容性的預設值)。

getPassword 方法

此方法會傳回純文字密碼進行驗證。密碼擷取為選用性。

java.lang.String getPassword(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

req 參數會指定內含可用於判斷密碼之資訊的 HTTP 要求。不使用 res 參數 (回溯相容性的預設值)。

HTTP 授權標頭

EPM System 安全性支援使用 HTTP 授權標頭,將 Login Attribute 的值從 Web 識別管理解決方案傳遞至 EPM System 產品。EPM System 產品會剖析授權標頭來擷取使用者的登入名稱。

從 HTTP 要求中取得遠端使用者

EPM System 安全性支援使用 HTTP 要求,將 Login Attribute 的值從 Web 識別管理解決方案傳遞至 EPM System 產品。如果 Web 識別管理解決方案會傳遞包含 Login Attribute 值的 HTTP 要求,且該要求使用 setRemoteUser 函數,請使用這個 SSO 方法。

搭配識別管理產品的標頭型驗證

EPM System 支援任何識別管理產品 (例如 Oracle Identity Cloud Services、Microsoft Azure AD、Okta),這些產品皆支援標頭型驗證。概念工作流程如下:

  • 閘道應用程式可作為反向代理主機,藉由限制未驗證的網路存取來保護 EPM System 元件。
  • 閘道應用程式會攔截對 EPM System 元件所發出的 HTTP 要求,並確保識別管理產品在將要求轉送至 EPM System 元件之前先驗證使用者。
  • 將要求轉送至 EPM System 元件時,閘道應用程式會透過 HTTP 標頭要求,將已驗證的使用者識別傳播至 EPM System 元件。

若要支援此驗證案例,EPM System 應設定為與透過 HTTP 標頭要求傳播的已驗證使用者識別搭配使用。