使用 Oracle Access Management Identity Federation Services 的單一登入

您可以讓 Essbase 內部部署使用來自 Oracle Access Management Identity Federation Services (FS) 的單一登入 (SSO)。這描述如何將 Oracle Access Management Identity Federation 設定為要與 WebLogic 作為「服務提供者」(SP) 搭配使用的「身分識別提供者」(IDP)。

  • 您必須要有一個已啟用聯合服務的 Oracle Access Manager (OAM) 環境。OAM 已與 LDAP 目錄整合,例如 OUD、OID 或 AD。此處的 OID 已與 OAM 整合。
  • 您必須安裝 Essbase
  • 若要讓 Essbase 使用使用 Oracle Access Management Identity Federation Services 的 Single Sign-On,必須依照顯示的順序執行。

PART A - 取得 SP 組態的 IDP 描述資料

  1. 登入 OAM 主控台,然後瀏覽至「組態」>「可用的服務」。
  2. 確認已啟用 Identity Federation,或啟用它。
  3. 前往 [ 組態 ] > [ 設定值 ] > [ 檢視 ] > [ 聯合 ]。
  4. 按一下匯出 SAML 2.0 描述資料以下載 IDP 描述資料。
  5. 將中繼資料檔案儲存為 oam_fed_idp_metadata.xml,以使用此檔案在 WebLogic 中將 OAM 註冊為 IDP。
  6. 編輯 oam_fed_idp_metadata.xml、移除 <md:RoleDescriptor ... </md:RoleDescriptor 標記,然後儲存檔案。WebLogic 不支援此標記。

PART B - 設定 WebLogic 服務提供者 (SP)

  1. 啟用 SSL。
    1. WebLogic 主控台的網域結構下,移至「環境」>「伺服器」> essbase_server1 >「組態」>「一般」。選取啟用監聽連接埠核取方塊,並提供「受管理伺服器」的連接埠號碼。
    2. 在受管理伺服器上啟用通訊協定 HTTP 的 SSL。在網域結構下,移至「環境 > 伺服器 > essbase_server1 通訊協定 > HTTP」。選取啟用 SSL 監聽連接埠核取方塊,並提供連接埠號碼。
    3. 前往「安全範圍 > myrealm > 組態 > 一般頁籤」。將安全性模型設為進階
  2. 使用 WebLogic 管理主控台建立識別宣告器。
    1. 登入 WebLogic 主控台。
    2. 前往首頁 > 安全範圍總結 > myrealm > 提供者。
    3. 按一下建立新認證提供者
    4. 按一下確定
    5. 輸入提供者名稱作為 SAML-IA ,然後選取類型 SAML2IdentityAsserter
    6. 按一下確定
  3. 建立新的 SAMLAuthenticator 提供者。
    1. 前往:首頁 > 安全範圍總結 > myrealm > 提供者。
    2. 按一下建立新認證提供者
    3. 按一下確定
    4. 輸入提供者名稱作為 SAML-auth ,然後選取類型 SAMLAuthenticator
    5. 按一下確定
  4. 針對以上步驟中建立的認證程式,將控制旗標值變更為 SUFFICIENT
    1. 前往:首頁 > 安全領域總結 > myrealm > 提供者 > SAML-auth。
    2. 在「組態 > 通用」下,將控制標誌設為 SUFFICIENT
    3. 按一下儲存
  5. 建立新的 OID 認證提供者。
    1. 前往:首頁 > 安全範圍總結 > myrealm > 提供者。
    2. 按一下建立新認證提供者
    3. 按一下確定
    4. 輸入提供者名稱作為 oid-auth,然後選取類型 OracleInternetDirectoryAuthenticator
    5. 按一下確定
    6. 針對新增的 OID 認證提供者,將控制旗標變更為 SUFFICIENT ,然後按一下儲存
  6. 選取「提供者特定」頁籤,然後輸入您的 OID 伺服器詳細資訊。從 OAM 主控台 > 使用者識別存放區區段取得 OID 伺服器詳細資訊。
    1. 從「OAM 主控台」組態 >「使用者識別存放區」,按一下 OID 存放區
    2. 在 OID-auth 提供者的「提供者特定」區段中,將下列區段更新為適當的值。
      • 連線段落:
        • 輸入主機:OID 伺服器的主機名稱
        • 主體:cn=orcladmin,cn=users,dc=us,dc=oracle,dc=com
        • 證明資料確認證明資料:提供證明資料
      • 使用者基準 DN:cn=users,dc=us,dc=oracle,dc=com
      • 群組基準 DN:cn=groups,dc=us,dc=oracle,dc=com
      • 使用擷取的使用者名稱作為主要項目:check
    3. 接受其他欄位的預設值,並儲存所有變更。
  7. 啟用受管理伺服器的聯合項目。
    1. 前往首頁 > 環境伺服器 > essbase_server1 > 組態 > Federation Services。
    2. 在「SAML 2.0 服務提供者」頁籤中,選取已啟用選項並提供預設 URL 作為
      https://Essbase-Host:Essbase-Managed Server-SSL-Port/essbase/jet
      接受其餘欄位作為預設值並儲存。
    3. 取得 IDP 組態的 SP 描述資料:在「SAML 2.0 一般」頁籤中,提供適當的值並儲存。
    4. 儲存變更之後,將 SP 中繼資料匯出至 XML 檔案,例如:sp_metadata.xml
    5. 按一下發佈中繼資料
  8. 使用從 OAM 方塊複製的 oam_fed_idp_metadata.xml 檔案,在 WebLogic 上建立 IDP 夥伴。
    1. 前往安全範圍 > myrealm > 提供者 > 認證 > saml_IA > 管理 > 新建 > 新的 Web 單一登入身分識別提供者夥伴,例如:WebSSO-IdP-Partner-oam。
    2. 選取 oam_fed_idp_metadata.xml file,然後按一下確定
    3. 若要啟用 IDP 夥伴,請按一下 WebSSO-IDP-Partner-oam 。選取已啟用核取方塊,然後提供重新導向 URL。
  9. 在 OAM 主控台上設定 IDP。
    1. 前往聯合 > 身分識別提供者管理。
    2. 按一下建立服務提供者夥伴
    3. 輸入名稱。
    4. 確定已選取啟用夥伴
    5. 接受 SAML 2.0 作為協定 (預設)。
    6. 選取從 WebLogic (SP) 下載的中繼資料檔案。
    7. 指定 NameID 格式設定值
    8. 選取未指定作為 NameID 格式。
    9. 選取使用者 ID 存放區屬性作為 NameID 值。
    10. 在包含使用者識別碼的 LDAP 使用者記錄中輸入使用者屬性。Oracle Internet Directory 是「使用者資料存放區」,屬性為 uid
  10. 編輯 $ORACLE_HOME/user_projects/domains/Essbase-Domain/bin/setDomainEnv.sh 並新增 -DLOGOUT_URL to the JVM arg EXTRA_JAVA_PROPERTIES,如下所示:
    變更之前:
    EXTRA_JAVA_PROPERTIES="-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder ${EXTRA_JAVA_PROPERTIES}"
    變更之後:
    EXTRA_JAVA_PROPERTIES="-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -DLOGOUT_URL=http://OAM-Host:OAM-Port/oam/server/logout ${EXTRA_JAVA_PROPERTIES}"

PART C - 指定角色

OID 整合之後,內嵌的 LDAP 使用者 (例如 WebLogic) 無法登入 Essbase 介面。只允許 REST/MaxL 作業。使用內嵌的 LDAP 管理員使用者,使用 REST 將 Essbase 角色指派給 OID 使用者。OID 使用者只能在角色指派後登入 Essbase。

將角色指派給至少一個 OID 使用者 (管理員) 後,OID 使用者便可登入 Essbase 並直接透過介面將角色指派給其他使用者。

以 REST 為基礎的指派範例,如下所示:curl --insecure -X PUT -u weblogic:samplepass "http://host:9000/essbase/rest/v1/permissions/user1" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"links\": [ { \"rel\": \"string\", \"href\": \"string\", \"method\": \"string\", \"type\": \"string\" } ], \"id\": \"user1\", \"name\": \"user1\", \"role\": \"service_administrator\", \"group\": false}"

D 部分:測試 OAM FS 單一登入

開啟 Essbase 並執行
https://<essbase_vm>:<sslportno>/essbase/jet
要求會重新導向至「OAM 同盟」登入頁面。

附註:

如果發生登出問題,若要完成登出動作,請關閉瀏覽器。