Kerberos 單一登入

簡介

Oracle Enterprise Performance Management System 產品支援 Kerberos SSO 機制,但前提是裝載 EPM System 產品的應用程式伺服器已設定成可使用 Kerberos 驗證機制。

Kerberos 是受信任的驗證服務,其中的每個 Kerberos 用戶端都會信任另一個 Kerberos (使用者、網路服務等) 的識別。

當使用者存取 EPM System 產品時,會發生下列情況:

  1. 在 Windows 電腦上,使用者會登入某個 Windows 網域,而這也是個 Kerberos 領域。
  2. 使用者會使用已設定要使用整合式 Windows 驗證的瀏覽器,嘗試登入在應用程式伺服器上執行的 EMP System 產品。
  3. 應用程式伺服器 (協商識別宣告器) 會攔截要求,並利用瀏覽器之授權標頭中的 Kerberos 票證,取得 Simple and Protected Generic Security Services API (GSSAPI) Negotiation Mechanism (SPNEGO) 憑證。
  4. 宣告器會根據自己的識別儲存庫,驗證包含在憑證中的使用者識別,以便將該使用者的資訊傳遞到 EPM System 產品。EPM System 產品會根據 Active Directory 驗證使用者名稱。EPM System 產品會發出 SSO 憑證,而該憑證會支援所有 EPM System 產品的 SSO 機制。

支援限制

除下列例外之外,所有 EPM System 產品皆支援 Kerberos SSO:

  • 豐富型用戶端並不支援 Kerberos SSO,但 Oracle Smart View for Office 除外。
  • Smart View 只支援針對 Oracle EssbaseOracle Hyperion PlanningOracle Hyperion Financial Management 提供者的 Kerberos 整合。

假設

本文件 (包含應用程式層級的 Kerberos 設定步驟) 假設,您熟悉系統層級的 Kerberos 組態。在您開始執行這些程序之前,請先確認您已滿足這些工作的先決條件。

本文件假設,您已啟用 Kerberos 的網路環境功能齊全,且其中的 Windows 用戶端機器已針對 Kerberos 驗證機制來設定。

搭配 WebLogic ServerKerberos SSO

Oracle WebLogic Server Kerberos SSO 會使用「協商識別宣告器」來協商,並將 SPNEGO 憑證解碼以啟用 Microsoft 用戶端的 SSO。WebLogic Server 會將 SPNEGO 憑證解碼以取得 Kerberos 票證,然後驗證該票證,並將它對映至 WebLogic Server 使用者。您可以搭配「協商識別宣告器」來使用 WebLogic ServerActive Directory 認證者,將 Active Directory 設定成 WebLogic Server 使用者的使用者目錄。

當瀏覽器要求存取 EMP System 產品時,KDC 會發出 Kerberos 票證給瀏覽器,以建立包含受支援 GSS 憑證類型的 SPNEGO 憑證。「協商識別宣告器」會將 SPNEGO 憑證解碼,並使用 GSSAPI 來接受安全相關資訊環境。發起請求的使用者識別會先對映至使用者名稱,然後再傳回 WebLogic Server。此外,WebLogic Server 會決定使用者所屬的群組。在此階段,要求的 EMP System 產品即可供使用者使用。

註:

使用者必須使用支援 SPNEGO 的瀏覽器 (例如 Internet Explorer 或 Firefox),存取在 WebLogic Server 上執行的 EMP System 產品。

EMP System 產品授權程序會使用衍生自驗證程序的使用者 ID,檢查提供資料。EPM System 產品存取權的限制取決於提供資料。

支援 Kerberos 驗證的 WebLogic Server 程序

管理員必須完成下列工作來支援 Kerberos 驗證:

建立 EPM System 的 WebLogic 網域

一般來說,EPM System 元件已部署到 EPMSystem WebLogic 網域中 (預設位置為 MIDDLEWARE_HOME/user_projects/domains/EPMSystem)。

如何針對 Kerberos 驗證機制來設定 EPM System WebLogic 網域:

  1. 安裝 EPM System 元件。
  2. 只部署 Oracle Hyperion Foundation Services

    Foundation Services 部署會建立預設的 EPM System WebLogic 網域。

  3. 登入 Oracle Hyperion Shared Services Console 來確認 Foundation Services 是否已部署成功。請參閱啟動 Shared Services Console

WebLogic Server 中建立 LDAP 驗證提供者

WebLogic Server 管理員將會建立 LDAP 驗證提供者,而該提供者會在外部 LDAP 伺服器中儲存使用者和群組資訊。與 LDAP v2 或 v3 相容的 LDAP 伺服器能與 WebLogic Server 搭配使用。請參閱下列參考資料。

建立協商識別宣告器

「協商識別宣告」提供者會搭配 Microsoft 用戶端啟用 SSO。這會將 SPNEGO 解碼以取得 Kerberos 憑證、驗證 Kerberos 憑證,並將憑證對映到 WebLogic 使用者。「協商識別宣告」提供者是安全服務提供者介面 (SSPI) 的實作 (如 WebLogic 安全性架構所定義),它會提供必要的邏輯,以便根據用戶端的 SPNEGO 憑證來驗證使用者。

當您建立「協商識別宣告」提供者時,請將所有認證者的「JAAS 控制旗標」選項設定成 SUFFICIENT。請參閱 Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help中的「設定 JAAS 控制旗標」。

建立 WebLogic ServerKerberos 識別

請在 Active Directory 網域控制站機器上,建立代表 WebLogic ServerEPM System Web 伺服器的使用者物件,並將該物件對映到代表您的 WebLogic ServerKerberos 領域中之 Web 伺服器的服務主體名稱 (SPN)。用戶端無法找到沒有 SPN 的服務。您將 SPN 儲存在已複製到 WebLogic Server 網域的 keytab 檔案,以便在登入程序中使用。

如需詳細程序,請參閱 Oracle Fusion Middleware Securing Oracle WebLogic Server 手冊中的建立 WebLogic Server 的識別

如何建立 WebLogic ServerKerberos 識別:

  1. Active Directory 網域控制站機器上,為裝載 WebLogic Server 網域的電腦建立使用者帳戶 (例如 epmHost)。

    註:

    請將識別建立成使用者物件,而非機器。

    請使用電腦的簡單名稱;例如,如果主機名稱為 epmHost.example.com,請使用 epmHost

    請記錄您在建立使用者物件的過程中使用的密碼。您將會在建立 SPN 時使用這個密碼。

    請勿選取任何密碼選項,尤其是 User must change password at next logon 選項。

  2. 修改使用者物件來遵守 Kerberos 通訊協定。帳戶必須要求 Kerberos 預先驗證。
    • 帳戶頁籤上,選取您要使用的加密方式。
    • 確保您沒有選取其他的帳戶選項 (尤其是 Do not require Kerberos pre-authentication)。
    • 由於設定加密類型可能會損毀物件的密碼,請將密碼重設成您在建立物件時所設定的密碼。
  3. 在裝載 Active Directory 網域控制站的電腦上,開啟命令提示字元視窗,然後瀏覽至安裝 Active Directory 支援工具的目錄。
  4. 建立並設定必要的 SPN。
    1. 使用類似下列內容的指令,來確認 SPN 是否已與您在本程序的步驟 1 中建立的使用者物件 (epmHost) 建立關聯。
      setspn -L epmHost
    2. 使用類似下列內容的命令,來設定 Active Directory Domain Services (AD DS) 中 WebLogic Server 的 SPN,然後產生包含共用祕密金鑰的 keytab 檔案。
      ktpass -princ HTTP/epmHost.example.com@EXAMPLE.COM -pass password -mapuser epmHost -out c:\epmHost.keytab
  5. 在裝載 WebLogic Server 的電腦上建立 keytab 檔案。
    1. 開啟命令提示字元。
    2. 瀏覽至 MIDDLEWARE_HOME/jdk/bin
    3. 執行類似以下的命令:
      ktab -k keytab_filename -a epmHost@example.com
    4. 當系統提示您輸入密碼時,請輸入您在本程序的步驟 1 中建立使用者時所設定的密碼。
  6. 請將 keytab 檔案複製到 WebLogic 網域內部的啟動目錄中,例如複製到 C:\Oracle\Middleware\user_projects\domains\EPMSystem
  7. 確認 Kerberos 驗證機制的運作正常。
    kinit -k -t keytab-file account-name

    在上述命令中,account-name 會指定 Kerberos 原則,例如 HTTP/epmHost.example.com@EXAMPLE.COM。這個命令的輸出內容應該與下列內容類似:

    New ticket is stored in cache file C:\Documents and Settings\Username\krb5cc_MachineB

更新 Kerberos 的 JVM 選項

請參閱 Oracle Fusion Middleware Securing Oracle WebLogic Server 11g Release 1 (10.3.1) 中的搭配 WebLogic Server 來使用 Kerberos 驗證機制的啟動引數建立 JAAS 登入檔案

如果您把 EPM System 受管理伺服器當作 Windows 服務來執行,請更新 Windows 登錄來設定 JVM 啟動選項。

如何更新 Windows 登錄中的 JVM 啟動選項:

  1. 開啟 Windows 登錄編輯程式。
  2. 依序選取我的電腦HKEY_LOCAL_MACHINESoftwareHyperion SolutionsFoundationservices0,以及 HyS9EPMServer_epmsystem1
  3. 建立下列字串值:

    註:

    下表中所列的名稱是範例。

    表格 3-3 Kerberos 驗證機制的 JVM 啟動選項

    名稱 類型 資料
    JVMOption44 REG_SZ -Djava.security.krb5.realm=Active Directory 領域名稱
    JVMOption45 REG_SZ -Djava.security.krb5.kdc=Active Directory 主機名稱或 IP 位址
    JVMOption46 REG_SZ -Djava.security.auth.login.config=Kerberos 登入組態檔的位置
    JVMOption47 REG_SZ -Djavax.security.auth.useSubjectCredsOnly=false
  4. 更新 JVMOptionCount DWord,以反映新增的 JVMOptions (請將目前的十進位值加 4)。

設定授權原則

如需如何針對會存取 EPM SystemActive Directory 使用者設定授權原則的相關資訊,請參閱 Oracle Fusion Middleware Securing Resources Using Roles and Policies for Oracle WebLogic Server 手冊中的 Options for Securing Web Application and EJB Resources

如需原則設定步驟的範例,請參閱建立 SSODiag 適用的原則

使用 SSODiag 來測試 Kerberos 環境

SSODiag 是診斷用的 Web 應用程式,可用來測試您 Kerberos 環境中的 WebLogic Server 是否已準備好支援 EPM System

部署 SSODiag

請使用您在部署 Foundation Services 時指定的 WebLogic Server 管理員認證 (預設的使用者名稱是 epm_admin) 來部署 SSODiag。

如何部署及設定 SSOdiag:

  1. 登入 EPM System 網域的 WebLogic Server 管理主控台。
  2. 在「變更中心」中,選取鎖定和編輯

  3. 網域結構EPMSystem 中,按一下部署
  4. 部署摘要中,按一下安裝
  5. 路徑中,選取 EPM_ORACLE_HOME/products/Foundation/AppServer/InstallableApps/common/SSODiag.war
  6. 按一下下一步
  7. 選擇目標樣式中,確定將此部署安裝為應用程式已勾選,然後按一下下一步
    SSODiag 部署:選取目標樣式
  8. 選取部署目標中,選取下列項目,然後按一下下一步
    • EPMServer
    • 叢集中的所有伺服器
      SSODiag 部署:選取目標
  9. 選擇性設定中,選取自訂角色和原則: 僅使用在管理主控台中定義的角色和原則來作為安全性模型。
    SSODiag 部署:選取安全性
  10. 按一下下一步
  11. 在複查畫面中,選取否,在稍後複查組態
  12. 按一下完成
  13. 在「變更中心」中,選取啟動變更

針對 SSODiag 設定 Oracle HTTP Server

請更新 mod_wl_ohs.conf 來設定 Oracle HTTP Server,以便將 SSODiag URL 要求轉送到 WebLogic Server

如何設定 Oracle HTTP Server 中的 URL 轉送功能:

  1. 使用文字編輯器開啟 EPM_ORACLE_INSTANCE/httpConfig/ohs/config/fmwconfig/components/OHS/ohs_component/mod_wl_ohs.conf
  2. 新增 SSODiag 適用的 LocationMatch 定義:
    <LocationMatch /SSODiag/>
        SetHandler weblogic-handler
        WeblogicCluster myServer:28080
    </LocationMatch>

    在以上範例中,myServer 代表 Foundation Services 主機,28080 則代表 Oracle Hyperion Shared Services 用來監聽要求的連接埠。

  3. 儲存並關閉 mod_wl_ohs.conf
  4. 重新啟動 Oracle HTTP Server

建立 SSODiag 適用的原則

請在 WebLogic Server 管理主控台建立原則來保護以下 SSODiag URL。

http://OHS_HOST_NAME:PORT/SSODiag/krbssodiag

在以上範例中,OHS_HOST_NAME 代表裝載 Oracle HTTP Server 之伺服器的名稱,PORT 則代表 Oracle HTTP Server 用來監聽要求的連接埠。

如何建立原則來保護 SSODiag:

  1. 在「變更中心」中,於 EPM System 網域的 WebLogic Server 管理主控台上,選取 鎖定和編輯
  2. 依序選取部署SSODiag安全性,然後 URLPatterns原則
  3. 建立下列 URL 樣式:
    • /
    • /index.jsp
  4. 修改您建立的每個 URL 樣式:
    1. 獨立 Web 應用程式 URL 樣式的 URL 樣式清單中,按一下您建立的樣式 (/) 來開啟它。
    2. 選取新增條件
    3. 選取述詞清單中的使用者
    4. 選取下一步
    5. 使用者引數名稱中,輸入您用來存取已設定為 Kerberos 驗證用的用戶端桌上型電腦之帳戶所屬的 Active Directory 使用者 (例如 krbuser1),然後選取新增krbuser1Active Directory 或 Windows 桌面使用者。
    6. 選取完成
  5. 選取儲存

使用 SSODiag 來測試 Kerberos 驗證適用的 WebLogic Server 組態

如果 Kerberos 驗證適用的 WebLogic Server 組態能正常運作,Oracle Hyperion Kerberos SSO 診斷公用程式 V 1.0 頁面就會顯示下列訊息:

Retrieving Kerberos User principal name... Success.
Kerberos principal name retrieved... SOME_USER_NAME

注意:

如果 SSODiag 無法擷取 Kerberos 原則名稱,請勿針對 Kerberos 驗證機制來設定 EPM System 元件。

如何測試 Kerberos 驗證適用的 WebLogic Server 組態:

  1. 啟動 Foundation ServicesOracle HTTP Server
  2. 使用 WebLogic Server 管理主控台來啟動 SSODiag Web 應用程式,以處理所有要求。
  3. 使用有效的 Active Directory 認證,登入已針對 Kerberos 驗證設定的用戶端機器。
  4. 使用瀏覽器連線到下列 SSODiag URL:
    http://OHS_HOST_NAME:PORT/SSODiag/krbssodiag

    在以上範例中,OHS_HOST_NAME 代表裝載 Oracle HTTP Server 之伺服器的名稱,PORT 則代表 Oracle HTTP Server 用來監聽要求的連接埠。

    如果 Kerberos 驗證機制的運作正常,SSODiag 會顯示下列資訊:

    Retrieving Kerberos User principal name... Success.
    Kerberos principal name retrieved... SOME_USER_NAME

    如果 Kerberos 驗證機制沒有正常運作,SSODiag 會顯示下列資訊:

    Retrieving Kerberos User principal name... failed.
    

變更安全性模型

受安全性領域保護之 Web 應用程式的預設安全性模型為 DDonly。您必須將安全性模型變更成 CustomRolesAndPolicies

如何變更安全性模型:

  1. 使用文字編輯器開啟 MIDDLEWARE_HOME/user_projects/domains/EPMSystem/config/config.xml
  2. 在每個 Foundation Services 元件的應用程式部署描述元中尋找下列元素:
    <security-dd-model>DDOnly</security-dd-model>
  3. 將每個元件的安全性模性變更成以下內容:
    <security-dd-model>CustomRolesAndPolicies</security-dd-model>
  4. 儲存並關閉 config.xml

更新 EPM System 安全性組態

請變更 EPM System 安全性組態以啟用 Kerberos SSO。

如何針對 Kerberos 驗證機制來設定 EPM System

  1. 以管理員的身分登入 Shared Services Console
  2. Shared Services 中,將您針對 Kerberos 驗證機制設定的 Active Directory 網域新增為外部使用者目錄。請參閱 Oracle Enterprise Performance Management System User Security 管理手冊中的「設定 OID、Active Directory 及其他 LDAP 型的使用者目錄」。
  3. 啟用 SSO。請參閱設定 OID、Active Directory 及其他 LDAP 型的使用者目錄

    安全性選項,選取下表中的設定值以啟用 Kerberos SSO。

    表格 3-4 啟用 Kerberos SSO 的設定

    欄位 必要設定
    啟用 SSO 已選取
    SSO 提供者或代理程式 其他
    SSO 機制 從 HTTP 要求中取得遠端使用者
  4. 重新啟動 Foundation Services

測試 Kerberos SSO

登入 Foundation Services 來確認 Kerberos SSO 是否運作正常。

如何測試 Kerberos SSO:

  1. 確認 Foundation ServicesOracle HTTP Server 是否在執行中。
  2. 使用有效的 Active Directory 認證,登入已針對 Kerberos 驗證設定的用戶端機器。
  3. 使用瀏覽器連線到 Foundation Services URL:

設定 EPM System 元件

請使用 EPM System Configurator 設定其他 EPM System 元件,並將這些元件部署到 Foundation Services 部署之處的 WebLogic 網域中。

針對 Kerberos 驗證機制來設定 EPM System 受管理伺服器。

在 Microsoft Windows 環境中,EPM System 受管理伺服器會被當作 Windows 服務來執行。您必須修改每個 WebLogic 受管理伺服器的啟動 JVM 選項。以下是採非精簡部署模式之受管理伺服器的完整清單:

  • AnalyticProviderServices0
  • CalcMgr0
  • ErpIntegrator0
  • EssbaseAdminServer0
  • FinancialReporting0
  • HFMWeb0
  • FoundationServices0
  • HpsAlerter0
  • HpsWebReports0
  • Planning0
  • Profitability0

如果 EPM System Web 應用程式是採用精簡模式來部署的,您就只需要更新 EPMSystem0 受管理伺服器的啟動 JVM 選項。如果您有多個精簡受管理伺服器,就必須更新所有受管理伺服器的啟動 JVM 選項。

請參閱 Oracle Fusion Middleware Securing Oracle WebLogic Server 手冊中的搭配 WebLogic Server 來使用 Kerberos 驗證機制的啟動引數

註:

以下程序說明,如何設定 Foundation Services 受管理伺服器的啟動 JVM 選項。您必須針對部署中的每個 WebLogic 受管理伺服器執行該工作。

如需在 WebLogic Server 啟動命令檔中設定 JVM 選項的詳細程序,請參閱更新 Kerberos 的 JVM 選項

如何在 WebLogic Server 啟動命令檔中設定 JVM 選項

設定授權原則

請針對將會存取 Foundation Services 以外之 EPM System 元件的 Active Directory 使用者設定授權原則。如需如何在 WebLogic 管理主控台中設定安全性原則的相關資訊,請參閱 設定授權原則

變更 EPM System 元件的預設安全性模型

您將編輯 EPM System 組態檔,以變更預設的安全性模型。針對非精簡的 EPM System 部署,您必須變更記錄在 config.xml 中的每個 EPM System Web 應用程式的預設安全性模型。以下是 EPM System Web 應用程式的清單:

  • AIF
  • APS
  • CALC
  • EAS
  • FINANCIALREPORTING
  • PLANNING
  • PROFITABILITY
  • SHAREDSERVICES
  • WORKSPACE

如何變更安全性模型:

  1. 使用文字編輯器開啟 MIDDLEWARE_HOME/user_projects/domains/EPMSystem/config/config.xml
  2. 在每個 EPM System 元件的 app-deployment 定義中,將 <security-dd-model> 的值設定成 CustomRolesAndPolicies,如以下範例所示:
    <app-deployment>
       <name>SHAREDSERVICES#11.1.2.0</name>
       <target>EPMServer</target>
       <module-type>ear</module-type>
       <source-path>C:\Oracle\Middleware\EPMSystem11R1/products/Foundation/AppServer/InstallableApps/common/interop.ear</source-path>
       <security-dd-model>CustomRolesAndPolicies</security-dd-model>
       <staging-mode>nostage</staging-mode>
    </app-deployment>
  3. 儲存並關閉 config.xml
  4. 重新啟動 WebLogic Server

建立 EPM System 元件的 URL 保護原則

請在 WebLogic Server 管理主控台中建立 URL 保護原則,以保護每個 EPM System 元件 URL。如需詳細資訊,請參閱 Oracle Fusion Middleware Securing Oracle WebLogic Server 手冊中的 Options for Securing Web Applications and EJB Resources

如何建立 URL 保護原則:

  1. 在「變更中心」中,於 EPM System 網域的 WebLogic Server 管理主控台上,按一下 鎖定和編輯
  2. 按一下部署
  3. 展開部署中的某個 EPM System 企業應用程式 (例如 PLANNING),然後按一下其 Web 應用程式 (例如 HyperionPlanning)。如需 EPM System 元件的清單,請參閱變更 EPM System 元件的預設安全性模型

    註:

    某些企業應用程式 (例如 Oracle Essbase Administration Services) 包含多個 Web 應用程式,您必須分別定義它們的 URL 樣式。
  4. 建立 Web 應用程式的 URL 樣式作用領域的原則。
    • AIF
    • APS
    • CALC
    • EAS
    • FINANCIALREPORTING
    • PLANNING
    • PROFITABILITY
    • SHAREDSERVICES
    • WORKSPACE
    1. 依序按一下安全性原則新建
    2. URL 樣式中,輸入受保護與未受保護的 EPM 系統產品 URL。請參閱受保護與未受保護的 EPM 系統資源以取得更多詳細資料。
    3. 按一下確定
    4. 按一下您建立的 URL 樣式。
    5. 按一下新增條件
    6. 選取述詞清單中的某個原則條件,然後按一下下一步

      Oracle 建議您使用 Group 條件,因為它會將這個安全性原則授予給特定群組的所有成員。

    7. 指定與您選擇的述詞相關的引數。例如,如果您在前一個步驟選擇 Group,就必須完成接下來的步驟:
    8. 群組引數名稱中,輸入應該可存取該 Web 應用程式之使用者所屬的群組名稱。而您輸入的名稱,必須與某個 Active Directory 群組名稱完全相符。
      • 按一下新增
      • 重複上述步驟來新增其他群組。
    9. 按一下完成

      如果 WebLogic Server 無法在 Active Directory 中找到該群組,就會顯示錯誤訊息。您必須修正該錯誤,才能繼續進行。

    10. 選取儲存
  5. 請針對部署中的其他 EPM System 元件重複本程序的步驟 3 和步驟 4。
  6. 在「變更中心」中,按一下釋放組態
  7. 重新啟動 WebLogic Server

啟用 Web 應用程式中的用戶端憑證式驗證機制

在下列位於 EPM_ORACLE_HOME/products/ 內部之應用程式封存的組態檔中,插入 login-config 定義。

  • Essbase/eas/server/AppServer/InstallableApps/Common/eas.ear
  • FinancialDataQuality/AppServer/InstallableApps/aif.ear
  • financialreporting/InstallableApps/HReports.ear
  • Profitability/AppServer/InstallableApps/common/profitability.ear

如何啟用用戶端憑證式的驗證機制

  1. 停止 EPM System 元件和程序的執行。
  2. 使用 7 Zip 來解壓縮包含在企業存檔中的Web 封存檔,例如 EPM_ORACLE_HOME/products/Essbase/eas/server/AppServer/InstallableApps/Common/eas.ear/eas.war
  3. 瀏覽至 WEB-INF
  4. 修改 web.xml,方法是將下列 login_config 定義新增到 </webapp> 元素的正前方:
    <login-config>
         <auth-method>CLIENT-CERT</auth-method>
    </login-config>
  5. 儲存 web.xml
  6. 當 7 Zip 詢問您是否要更新封存時,按一下

更新 EPM System 安全性組態

請設定 EPM System 安全性來支援 SSO。請參閱設定 EPM System 進行 SSO