Oracle OpenSSO Update 2 版本說明

第 5 章 整合 OpenSSO 8.0 Update 2 與 Oracle Access Manager

本章介紹如何使用 OpenSSO 8.0 Update 2 和 Oracle Access Manager 10g 或 11g 實作單次登入。該資訊是「Sun OpenSSO Enterprise 8.0 Integration Guide」中的第 3 章「Integrating Oracle Access Manager」 中包含的概念資訊的補充。該使用案例透過採用 Oracle Access Manager 階段作業提供受 OpenSSO 保護的應用程式的單次登入體驗。配置的 OpenSSO 認證模組會根據該 Oracle Access Manager 階段作業產生 OpenSSO 階段作業。

整合步驟概述

  1. 開始之前

  2. Unpacking the Integration Bits

  3. Building source files for Oracle Access Manager in OpenSSO

  4. (可選) 在 Oracle Access Manager 中為 OpenSSO 建立認證方案

  5. 使用 Oracle Access Manager 和 Oracle OpenSSO STS 配置單次登入

  6. 測試單次登入的步驟:

  7. (可選) 將 Oblix 認證方案安裝到 Oracle Access Manager 中

開始之前

在您嘗試安裝 OpenSSO 8.0 Update 2 以與 Oracle Access Manager 整合之前,請確保您具有以下元件的存取權限:

opensso.zip

該 zip 檔案包含安裝和配置 OpenSSO 8.0 Update 2 所需的 opensso.war 檔案、整合原始碼、配置檔案及其他工具。

OpenSSO 代理程式

當受 OpenSSO 保護的應用程式確實可以使用 Oracle Access Manager 建立的認證階段作業時,將使用 OpenSSO 代理程式。

Oracle Access Manager 10g 或 11g

從 Oracle 網站下載 Oracle Access Manager。請參見 Oracle Fusion Middleware 11gR1 Software Downloads 頁面。

Oracle WebGate 10g 或 11g

為 OpenSSO 和 Oracle Webgate 都支援的容器下載 Oracle Webgate。現在,Sun Web Server 7.x 是唯一一個這兩種產品都支援的容器。請參見 Oracle Fusion Middleware 11gR1 Software Downloads 頁面。

Oracle Access Manager SDK 10g 或 11g

下載 Oracle Access Manager。編譯和建立用於 Oracle Access Manager 整合的 OpenSSO 認證模組時,需要使用 SDK。

請參見 Oracle Fusion Middleware 11gR1 Software Downloads 頁面。

OpenSSO C-SDK 2.2

(可選) 在 Oracle Access Manager 自身中建立認證模組以產生 OAM 階段作業時,需要使用 OpenSSO C-SDK。從 OpenSSO 角度來說,這可能不是一個常見的使用案例。請參閱「Sun OpenSSO Enterprise 8.0 C API Reference for Application and Web Policy Agent Developers」中的「Where is the C SDK?」

整合資料各部分解說

opensso/integrations/oracle 目錄中包含用於編譯和建立自訂認證模組及其他外掛程式的來源和配置。請參閱「Sun OpenSSO Enterprise 8.0 Integration Guide」中的第 3 章「Integrating Oracle Access Manager」,以獲得使用案例選項及相關資訊。下表彙總了 opensso/integrations/oracle 目錄下的檔案及各檔案的描述。

README.html

這是您現在正在閱讀的檔案。

build.xml

用於在 OpenSSO 中為 Oracle Access Manager 建立自訂認證模組的 ant 建立檔案。

config

在 OpenSSO 中為 Oracle Access Manager 建立認證模組時需要使用的配置檔案。

  • OblixAuthService.xml

    Oracle Access Manager 認證模組的認證服務檔案

  • OblixAuthModule.xml

    Oracle Access Manager 的認證模組回呼。

    依預設,該檔案是一個空檔案,但為執行配置必須提供該檔案。

  • OblixAuth.properties

    儲存用於認證的國際化金鑰的特性檔案

lib

依預設此目錄為空。此 lib 目錄中必須包含以下程式庫才能編譯來源程式庫。

  • jobaccess.jar

    從 Oracle Access Manager SDK 中複製該檔案。

  • openfedlib.jaramserver.jaropensso-sharedlib.jar

    從 opensso.war 中複製這些檔案

  • servlet.jar 或 javaee.jar

    複製 GlassFish lib 目錄。理想情況下,任何包含標準 Java EE 類別 (例如 javax.servlet.http.Cookie) 的 JAR 檔案均可。

source

包含以下來源檔案的目錄:

  • com/sun/identity/authentication/oblix/OblixAuthModule.java

  • com/sun/identity/authentication/oblix/OblixAuthModule.java

  • com/sun/identity/authentication/oblix/OblixPrincipal.java

  • com/sun/identity/saml2/plugins/OAMAdapter.java

    此類別是 SAML 服務提供者的 SAML2 外掛程式介面。此類別使用 OpenSSO 階段作業服務對 Oracle Access Manager 進行遠端認證。

oamauth (可選)

此目錄包含用於 OpenSSO 的 Oblix 認證方案的來源檔案。這是一個 C 型認證模組,其利用 OpenSSO C-SDK 進行驗證。

  • oam/solaris/authn_api.c

    此檔案為 OpenSSO 實作 Oblix 自訂認證方案。

  • oam/solaris/include/*.h

    編譯認證方案時需要使用的所有標頭檔案。

  • oam/solaris/AMAgent.properties

    範例 OpenSSO 代理程式配置檔案。認證方案驗證 OpenSSO 階段作業時需要使用該檔案。

在 OpenSSO 中為 Oracle Access Manager 建立來源檔案

使用 ant 程序檔可建立來源檔案。必須在 PATH 中安裝和配置相容的 ant 程序檔。

Procedure為 Oracle Access Manager 建立來源檔案的步驟:

  1. 執行以下指令:

    cd $openssozipdir/integrations/oracle; ant -f build.xml

    該指令將在 $openssozipdir/integrations/oracle/dist 目錄中建立來源檔案並產生 fam_oam_integration.jar

  2. 將認證模組放入 OpenSSO WAR 檔案中。

    1. 建立一個暫存目錄並解壓縮 opensso.war。範例:

      # mkdir /export/tmp
      # cd /export/tmp
      # jar -xvf opensso.war

      從現在開始,/export/tmp 將作為 WAR 臨時區域使用,並由巨集 $WAR_DIR 表示。

    2. $openssozipdir/integrations/oracle/dist/fam_oam_integration.jar 複製到 $WAR_DIR/WEB-INF/lib 中。

    3. $openssozipdir/integrations/oracle/config/OblixAuth.properties 複製到 $WAR_DIR/WEB-INF/classes 中。

    4. $openssozipdir/integrations/oracle/config/OblixAuthModule.xml 複製到 $WAR_DIR/config/auth/default 以及 $WAR_DIR/config/auth/default_en 目錄中。

    5. 使用 $WAR_DIR 中的 jar cvf opensso.war 重新壓縮 opensso.war

    範例待編寫

(可選) 在 Oracle Access Manager 中為 OpenSSO 建立認證方案

備註:這不是一個常見的使用案例。除非有必要 (例如在 SAML2 服務提供者使用案例中),否則您不必建立此認證方案。

若要建立 Oblix 認證方案,您必須自訂 makefile。此外,由於這是一個 C 型認證模組,其具有作業系統依賴性。

Procedure在 Oracle Access Manager 中為 OpenSSO 建立認證方案的步驟:

開始之前

認證方案檔案位於 $openssozipdir/integrations/oracle/oamauth/solaris 目錄下。

  1. 下載並配置 OpenSSO C-SDK 2.2 版。

    authn_api.c 檔案包含對 AMAgent.propeties 檔案的參照。相應地修改該檔案。

  2. 針對您的環境自訂 makefile

    例如,指定 gcc 編譯位置。此外,還請編輯 LDFLAGS 以指向您的 OpenSSO C-SDK lib 目錄。

  3. 執行 make 指令。

    執行 make 指令應產生一個 authn_api.so 檔案。

使用 Oracle Access Manager 和 Oracle OpenSSO STS 配置單次登入

Procedure使用 Oracle Access Manager 和 Oracle OpenSSO 8.0 Update 2 配置單次登入的步驟:

開始之前:必須已經安裝和配置 Sun Java System Web Server 7.x。請參見 Sun Java System Web Server Documentation Wiki 以獲得 Web 伺服器安裝說明。

  1. 在 Sun Java System Web Server 7.x 上安裝 OpenSSO。

  2. 在受支援的容器上安裝 OpenSSO 策略代理程式並配置該代理程式以與 OpenSSO 配合使用。

    請參閱「Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for J2EE Agents」「Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for Web Agents」「Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for Web Agents」以獲得安裝說明。

  3. 安裝和配置 Oracle Access Manager。

    請參閱《Oracle Access Manager 安裝指南 10g (10.1.4.3)

  4. 透過 Oracle Access Manager 安裝和配置 Oracle Access Manager SDK。

    請參閱《Oracle Access Manager 安裝指南 10g (10.1.4.3)

  5. 在安裝 OpenSSO 伺服器的相同 Web 容器中安裝 Oracle Webgate。(Sun Web Server 7.x)

    配置 OpenSSO,使其僅保護 OpenSSO Web 應用程式的 deployURI/UI/*。範例:/opensso/UI/.../*

    如需 Oracle Access Manager 策略、資源及其他配置詳細資訊,請參閱 Oracle Access Manager 管理指南。 取消保護 OpenSSO Enteprise 中的任何其他 URL。這適用於簡單的單次登入整合分析藍本,但策略評估是以完整整合及其他部署依賴關係為基礎的。

  6. 在 OpenSSO 中配置認證模組。

    1. 存取 OpenSSO 主控台。

      瀏覽器會重新導向至 Oracle Access Manager 進行認證。認證成功後,OpenSSO 會顯示一個登入頁面。使用 OpenSSO 管理員使用者名稱和密碼登入。

    2. 將 Oracle 認證模組服務 XML 檔案匯入 OpenSSO 配置。

      該認證模組服務可以透過指令行 ssoadm 公用程式以及以瀏覽器為基礎的 ssoadm.jsp 載入。

    3. 存取 http://host:port/opensso/ssoadm.jsp

    4. 選擇 create-service 選項。

    5. $openssozipdir/integrations/oracle/config/OblixAuthService.xml 複製並貼上 XML 檔案,然後按一下 [提交]。

      此作業會將認證模組服務載入到 OpenSSO 配置中。

    6. 將認證模組註冊到認證核心服務中。

      核心服務中包含了一系列認證程式。在 http://host:port/opensso/ssoadm.jsp 中選擇 register-auth-module 選項。輸入 com.sun.identity.authentication.oblix.OblixAuthModule 作為認證模組類別名稱。

    7. 確定認證模組已註冊到預設範圍中。

      使用 URL http://host:port/opensso 存取 OpenSSO。在 OpenSSO 主控台中,按一下預設範圍,然後按一下 [認證] 標籤。按一下 [新增] 以建立一個名為 OblixAuth 的新認證模組。

    8. 在 [認證] 標籤上,選取該 OblixAuth 認證模組。

      配置 Oblix SDK 目錄。啟用 [僅檢查遠端使用者標頭],並將遠端標頭名稱指定為 OAM_REMOTE_USER。根據部署該參數可配置。

  7. (可選) 在 OpenSSO 核心認證服務中啟用 [忽略設定檔] 選項。

    在 OpenSSO 主控台中,前往 [配置] > [核心] > [範圍屬性] > [使用者設定檔]。選擇 [忽略],然後按一下 [儲存]。

    此配置會阻止 OpenSSO 在成功驗證後搜尋現有使用者設定檔。但是,如果 OpenSSO 和 Oracle Access Manager 所使用的使用者儲存庫完全相同,則無需執行此步驟。前往 [管理主控台] -> [配置] -> [核心] -> [範圍屬性] -> [使用者設定檔]。選擇 [忽略],然後按一下 [儲存]。

  8. 編輯 Web 伺服器啟動程序檔,以包含 Oracle Access Manager SDK 共用程式庫。

    更新 startserv 程序檔中的 LD_LIBRARY_PATH,以包含 $ACCESSDKDIR/oblix/lib 中的共用程式庫。

  9. 重新啟動包含 OpenSSO 和 Oracle Webgate 的 Sun Web 伺服器。

  10. 將 [Web 代理程式的登入 URL] 的值更新為 http://openssohost:openssoport/deployURI/UI/Login?module=OblixAuth

測試單次登入的步驟:

存取受 OpenSSO 保護的應用程式中的受保護資源。如果您尚未通過認證,瀏覽器會將您重新導向至 Oracle Access Manager 登入頁面。成功登入後,該應用程式會建立一個 OpenSSO 階段作業,並最終重新導向回受策略代理程式保護的應用程式 URL。您對受保護的應用程式的存取將被允許或拒絕,具體視該策略而定。

(可選) 將 Oblix 認證方案安裝到 Oracle Access Manager 中

如果在驗證 OpenSSO 階段作業時必須產生 Oracle Access Manager 階段作業,此作業將非常有用。請參閱「Sun OpenSSO Enterprise 8.0 Integration Guide」中的第 3 章「Integrating Oracle Access Manager」,以獲得有關相關使用案例的資訊。

Oblix 認證方案顯示為 C 認證模組,此認證方案使用 OpenSSO C-SDK 2.2 版來驗證 OpenSSO 階段作業。Oblix 中的 OpenSSO 認證方案使用 AMAgent.properties 中的 OpenSSO 用戶端一端的配置。在配置認證模組之前, 必須先自訂該檔案。版本說明 指定了該檔案的位置。在配置認證方案之前,必須先將編譯後的 authn_api.so 及其他 C-SDK 程式庫複製到 $OAM_INSTALL_DIR/access/oblix/lib 目錄中。《「Sun OpenSSO 8.0 整合指南」》中提供了一個範例螢幕截圖,以說明 Oracle 認證方案的配置方式,但這只應作為參考。如需更多詳細資訊,請參閱最新的 Oracle Access Manager 文件。

整合 OpenSSO 8.0 Update 2 與 Oracle Access Manager

本節介紹如何使用 OpenSSO 8.0 Update 2 和 Oracle Access Manager 10.1.4.0.1 和 11g 版來實作單次登入。該資訊是「Sun OpenSSO Enterprise 8.0 Integration Guide」中的第 3 章「Integrating Oracle Access Manager」 中包含的概念資訊的補充。該使用案例透過採用 Oracle Access Manager 階段作業提供受 OpenSSO 保護的應用程式的單次登入體驗。配置的 OpenSSO 認證模組會根據該 Oracle Access Manager 階段作業產生 OpenSSO 階段作業。