教學課程:設定 SSO 至 Oracle EBS 的 F5 BIG-IP 簡單按鈕

在本文中,您將了解如何透過 F5 的 BIG-IP 簡單按鈕引導式設定,使用 Azure Active Directory (Azure AD) 來保護 Oracle Enterprise Business Suite (EBS)。

將 BIG-IP 與 Azure AD 整合可提供許多優點,包括:

若要了解所有優點,請參閱有關F5 BIG-IP 與 Azure AD 整合的文章,以及什麼是搭配 Azure AD 的應用程式存取和單一登入?

案例描述

此案例會查看使用「HTTP 授權標頭」的傳統「Oracle EBS 應用程式」,以管理受保護內容的存取權。

在舊版中,應用程式缺乏新式通訊協定,無法支援與 Azure AD 的直接整合。 您可以現代化應用程式,但成本很高,需要進行仔細規劃,並且會導致可能的停機風險。 相反地,透過通訊協定轉換,使用 F5 BIG-IP 應用程式傳遞控制器 (ADC) 來橋接舊版應用程式與新式識別碼控制平面之間的差距。

在應用程式前面具有 BIG-IP,可讓我們使用 Azure AD 預先驗證和標頭型 SSO 來重疊服務,以大幅改善應用程式的整體安全性狀態。

案例架構

此案例的安全混合式存取解決方案是由數個元件所組成,包括多層式 Oracle 結構:

Oracle EBS 應用程式:由 Azure AD SHA 保護的 BIG-IP 已發佈服務。

Azure AD:安全性聲明標記語言 (SAML) 身分識別提供者 (IdP) 負責驗證使用者認證、條件式存取 (CA) 和 SAML 型 SSO 至 BIG-IP。 透過 SSO,Azure AD 可提供具有任何必要工作階段屬性的 BIG-IP。

Oracle Internet Directory (OID):裝載使用者資料庫。 透過 LDAP 針對授權屬性進行的 BIG-IP 檢查。

Oracle AccessGate:在發出 EBS 存取 Cookie 之前,使用 OID 服務透過反向通道來驗證授權屬性

BIG-IP:反向 Proxy 和 SAML 服務提供者 (SP) 至應用程式,並先將驗證委派給 SAML IdP,再執行標頭型 SSO 至 Oracle 應用程式。

此案例的 SHA 支援 SP 和 IdP 起始的流程。 下圖說明 SP 起始的流程。

Secure hybrid access - SP initiated flow

步驟 描述
1 使用者會連線到應用程式端點 (BIG-IP)
2 BIG-IP APM 存取原則會將使用者重新導向至 Azure AD (SAML IdP)
3 Azure AD 會預先驗證使用者,並套用任何強制執行的條件式存取原則
4 使用者會重新導向回到 BIG-IP (SAML SP),並使用已發行的 SAML 權杖來執行 SSO
5 BIG-IP 會針對使用者唯一識別碼 (UID) 屬性執行 LDAP 查詢
6 BIG-IP 會將傳回的 UID 屬性作為 EBS 工作階段 Cookie 要求中的 user_orclguid 標頭插入至 Oracle AccessGate
7 Oracle AccessGate 會根據 Oracle Internet Directory (OID) 服務驗證 UID,並發出 EBS 存取 Cookie
8 EBS 使用者標頭和 Cookie 已傳送至應用程式,並將承載傳回給使用者

必要條件

不需要事先具備 BIG-IP 經驗,但您需要:

  • Azure AD 免費訂用帳戶或更高版本

  • 現有的 BIG-IP 或在 Azure 中部署 BIG-IP 虛擬版本 (VE)

  • 下列任一個 F5 BIG-IP 授權 SKU

    • F5 BIG-IP® Best 搭售方案

    • F5 BIG-IP Access Policy Manager™ (APM) 獨立授權

    • 現有 BIG-IP F5 BIG-IP® Local Traffic Manager™ (LTM) 上的 F5 BIG-IP Access Policy Manager™ (APM) 附加元件授權

    • 90 天 BIG-IP 完整功能試用版授權

  • 使用者身分識別會從內部部署目錄同步至 Azure AD,或直接在 Azure AD 內建立,並流回您的內部部署目錄

  • 具有 Azure AD 應用程式管理員權限的帳戶

  • 用來透過 HTTPS 發佈服務的 SSL Web 憑證,或在測試時使用預設 BIG-IP 憑證

  • 現有的 Oracle EBS 套件,包括 Oracle AccessGate 和已啟用 LDAP 的 OID (Oracle Internet Database)

BIG-IP 設定方法

在此案例中,有許多方法可以設定 BIG-IP,包括兩個範本型選項和進階設定。 本教學課程涵蓋提供簡單按鈕範本的最新引導式設定 16.1。 使用「簡單按鈕」,管理員就不需要再於 Azure AD 與 BIG-IP 之間來回切換,以啟用適用於 SHA 的服務。 部署和原則管理會直接在 APM 的引導式設定精靈與 Microsoft Graph 之間處理。 BIG-IP APM 與 Azure AD 之間的這種豐富整合可確保應用程式可以快速且輕鬆地支援身分識別同盟、SSO 和 Azure AD 條件式存取,進而降低管理負擔。

注意

本指南中所參考的所有範例字串或值都應該取代為實際環境的字串或值。

註冊簡單按鈕

用戶端或服務必須受到 Microsoft 身分識別平台的信任,才能存取 Microsoft Graph。

第一個步驟會建立租用戶應用程式註冊,以用來授權對 Graph 的「簡單按鈕」存取。 透過這些權限,將允許 BIG-IP 推送設定,而這是建立已發行應用程式 SAML SP 執行個體與作為 SAML IdP 的 Azure AD 之間的信任所需的設定。

  1. 使用應用程式系統管理權限登入 Azure AD 入口網站

  2. 在左側瀏覽窗格中,選取 [Azure Active Directory] 服務

  3. 在 [管理] 下,選取 [應用程式註冊] > [新增註冊]

  4. 輸入應用程式的顯示名稱。 例如,F5 BIG-IP 簡單按鈕

  5. 指定誰可以使用應用程式 > [僅此組織目錄中的帳戶]

  6. 選取 [註冊] 以完成初始應用程式註冊

  7. 導覽至 [API 權限],然後授權下列 Microsoft Graph 應用程式權限

    • Application.Read.All
    • Application.ReadWrite.All
    • Application.ReadWrite.OwnedBy
    • Directory.Read.All
    • Group.Read.All
    • IdentityRiskyUser.Read.All
    • Policy.Read.All
    • Policy.ReadWrite.ApplicationConfiguration
    • Policy.ReadWrite.ConditionalAccess
    • User.Read.All
  8. 為貴組織授與管理員同意

  9. 移至 [憑證] & [祕密],並產生新的 [用戶端密碼],然後記下它

  10. 移至 [概觀],並記下 [用戶端識別碼] 和 [租用戶識別碼]

設定簡單按鈕

起始 APM 的「引導式設定」,以啟動「簡單按鈕範本」。

  1. 導覽至 [存取] > [引導式設定] > [Microsoft 整合],然後選取 [Azure AD 應用程式]。

    Screenshot for Configure Easy Button- Install the template

  2. 檢閱設定步驟的清單,然後選取 [下一步]

    Screenshot for Configure Easy Button - List configuration steps

  3. 遵循發佈應用程式所需的一連串步驟。

    Configuration steps flow

Configuration Properties

[設定屬性] 索引標籤會建立 BIG-IP 應用程式設定和 SSO 物件。 考慮 [Azure 服務帳戶詳細資料] 區段,以將您稍早在 Azure AD 租用戶中註冊的用戶端表示為應用程式。 這些設定允許 BIG-IP 的 OAuth 用戶端直接在您的租用戶中,與您一般會手動設定的 SSO 屬性個別註冊 SAML SP。 簡單按鈕會為每個針對 SHA 發佈和啟用的 BIG-IP 服務執行此作業。

其中有些是全域設定,因此可以重複使用於發佈更多應用程式,進而減少部署時間和精力。

  1. 提供唯一的 [設定名稱],讓管理員輕鬆地區分「簡單按鈕」設定

  2. 啟用 [單一登入 (SSO)] & [HTTP 標頭]

  3. 輸入您在租用戶中註冊簡單按鈕用戶端時所記錄的 [租用戶識別碼]、[用戶端識別碼] 和 [用戶端祕密]。

  4. 選取 [下一步] 之前,請確認 BIG-IP 可以成功連線至您的租用戶。

     Screenshot for Configuration General and Service Account properties

服務提供者

服務提供者設定定義透過受 SHA 保護的應用程式 SAML SP 執行個體屬性。

  1. 輸入 [主機]。 這是受保護應用程式的公用 FQDN

  2. 輸入 [實體識別碼]。 Azure AD 將使用此識別碼來識別要求權杖的 SAML SP

    Screenshot for Service Provider settings

    接下來,在選用的 [安全性設定] 底下,指定 Azure AD 是否應該加密已發出的 SAML 判斷提示。 加密 Azure AD 與 BIG-IP APM 之間的判斷提示,可確保無法攔截內容權杖,而且個人或公司資料也不會外洩。

  3. 從 [判斷提示解密私密金鑰] 清單中,選取 [建立新]

    Screenshot for Configure Easy Button- Create New import

  4. 選取 [確定]。 這會在新的索引標籤中開啟 [匯入 SSL 憑證和金鑰] 對話方塊

  5. 選取 [PKCS 12 (IIS)] 以入您的憑證和私密金鑰。 佈建之後,請關閉瀏覽器索引標籤以返回主要索引標籤。

    Screenshot for Configure Easy Button- Import new cert

  6. 核取 [啟用加密的判斷提示]

  7. 如果您已啟用加密,則請從 [判斷提示解密私密金鑰] 清單中選取您的憑證。 這是 BIG-IP APM 用來解密 Azure AD 判斷提示的憑證私密金鑰

  8. 如果您已啟用加密,則請從 [判斷提示解密憑證] 清單中選取您的憑證。 這是 BIG-IP 上傳至 Azure AD 以將已發行 SAML 判斷提示加密的憑證。

    Screenshot for Service Provider security settings

Azure Active Directory

此區段會定義您通常用來在 Azure AD 租用戶內手動設定新 BIG-IP SAML 應用程式的所有屬性。 簡單按鈕提供適用於 Oracle PeopleSoft、Oracle E-Business Suite、Oracle JD Edwards 和 SAP ERP 的一組預先定義應用程式範本,以及適用於任何其他應用程式的一般 SHA 範本。 在此案例中,選取 [Oracle E-Business Suite] > [新增]。

Screenshot for Azure configuration add BIG-IP application

Azure 設定

  1. 輸入 BIG-IP 在您 Azure AD 租用戶中所建立應用程式的 [顯示名稱],以及使用者在 MyApps 入口網站上看到的圖示

  2. 在 [登入 URL (選用)] 中,輸入所要保護 EBS 應用程式的公用 FQDN,以及 Oracle EBS 首頁的預設路徑

    Screenshot for Azure configuration add display info

  3. 選取 [簽署金鑰] 和 [簽署憑證] 旁邊的重新整理圖示,以找出您稍早匯入的憑證

  4. 在 [簽署金鑰複雜密碼] 中,輸入憑證的密碼

  5. 啟用 [簽署選項] (選用)。 這可確保 BIG-IP 只接受 Azure AD 所簽署的權杖和宣告

    Screenshot for Azure configuration - Add signing certificates info

  6. 系統會從您的 Azure AD 租用戶動態查詢使用者和使用者群組,並用來授與應用程式的存取權。 新增您稍後可用於測試的使用者或群組,否則將會拒絕所有存取

    Screenshot for Azure configuration - Add users and groups

使用者屬性與宣告

使用者成功通過驗證時,Azure AD 會使用可唯一識別使用者的一組預設宣告和屬性來發出 SAML 權杖。 [使用者屬性與宣告] 索引標籤會顯示要對新應用程式發出的預設宣告。 它也可讓您設定更多宣告。

Screenshot for user attributes and claims

如有必要,您可以包括其他 Azure AD 屬性,但 Oracle EBS 案例只需要預設屬性。

其他使用者屬性

[其他使用者屬性] 索引標籤可以支援各種分散式系統,而這些系統需要其他目錄中所儲存的屬性來進行工作階段增強。 然後,可以將從 LDAP 來源提取的屬性插入為其他 SSO 標頭,以根據角色、合作夥伴識別碼等進一步控制存取權。

  1. 啟用 [進階設定] 選項

  2. 核取 [LDAP 屬性] 核取方塊

  3. 選取 [選擇驗證伺服器] 中的 [建立新的]

  4. 根據您的設定,選取 [使用集區] 或 [直接] 伺服器連線模式。 這會提供目標 LDAP 服務的 [伺服器位址]。 如果使用單一 LDAP 伺服器,則請選取 [直接]。

  5. 將 [服務連接埠] 輸入為 3060 (預設值)、3161 (安全),或 Oracle LDAP 服務在其上運作的任何其他連接埠

  6. 輸入從中搜尋的 [基本搜尋 DN] (辨別名稱)。 此搜尋 DN 用來搜尋整個目錄中的群組。

  7. 將 [管理員 DN] 設定為帳戶的確切辨別名稱和其密碼,而 APM 將使用此帳戶來對 LDAP 查詢進行驗證

    Screenshot for additional user attributes

  8. 保留所有預設 [LDAP 結構描述屬性]

    Screenshot for LDAP schema attributes

  9. 在 [LDAP 查詢屬性] 底下,將 [搜尋 DN] 設定為 LDAP 伺服器的基礎節點,以從中搜尋使用者物件

  10. 新增必須從 LDAP 目錄傳回的使用者物件屬性名稱。 針對 EBS,預設值為 orclguid

    Screenshot for LDAP query properties.png

條件式存取原則

條件式存取原則會在 Azure AD 預先驗證之後強制執行,以根據裝置、應用程式、位置和風險訊號來控制存取權。

[可用的原則] 檢視預設會列出所有未含使用者動作的條件式存取原則。

[選取的原則] 檢視預設會顯示以所有雲端應用程式為目標的所有原則。 這些原則在租用戶層級強制執行時,無法取消選取或移至 [可用的原則] 清單。

選取要套用至所發佈應用程式的原則:

  1. 在 [可用的原則] 清單中,選取所需的原則

  2. 選取向右箭號,然後將它移至 [選取的原則] 清單

    選取的原則應該已核取 [包含] 或 [排除] 選項。 如果同時核取這兩個選項,則不會強制執行原則。

    Screenshot for CA policies

注意

只有在第一次切換至此索引標籤時,才會列舉原則清單一次。您可以使用 [重新整理] 按鈕來手動強制精靈查詢您的租用戶,但只有在已部署應用程式時,才會顯示此按鈕。

虛擬伺服器屬性

虛擬伺服器是一種 BIG-IP 資料平面物件,由接聽用戶端對應用程式要求的虛擬 IP 位址來表示。 任何收到的流量都會先針對與虛擬伺服器相關聯的 APM 設定檔進行處理和評估,才會根據原則結果和設定進行導向。

  1. 輸入 [目的地位址]。 這是 BIG-IP 可用來接收用戶端流量的任何可用 IPv4/IPv6 位址。 對應的記錄也應該存在於 DNS 中,讓用戶端能夠將 BIG-IP 已發佈應用程式的外部 URL 解析為此 IP,而非應用程式本身。 使用測試 PC 的 localhost DNS 適合進行測試。

  2. 針對 HTTPS,將 [服務連接埠] 輸入為 443

  3. 核取 [啟用重新導向連接埠],然後輸入 [重新導向連接埠]。 它會將傳入的 HTTP 用戶端流量重新導向至 HTTPS

  4. 用戶端 SSL 設定檔可以啟用適用 HTTPS 的虛擬伺服器,所以可以透過 TLS 加密用戶端連線。 選取您建立為在必要條件一部分的 [用戶端 SSL 設定檔],或者在測試時保留預設值

    Screenshot for Virtual server

集區屬性

[應用程式集區] 索引標籤會詳述受 BIG-IP 保護的服務,而這些服務以包含一或多個應用程式伺服器的集區表示。

  1. 從 [選取集區] 中選擇。 建立新的集區,或選取現有集區

  2. 將 [負載平衡方法] 選擇為 [循環配置資源]

  3. 針對 [集區伺服器],選取現有節點,或針對裝載 Oracle EBS 應用程式的伺服器指定 IP 和連接埠。

    Screenshot for Application pool

  4. [存取閘道集區] 會指定 Oracle EBS 用於將 SSO 已驗證使用者對應至 Oracle E-Business Suite 工作階段的伺服器。 使用裝載應用程式的 Oracle 應用程式伺服器 IP 和連接埠來更新 [集區伺服器]

    Screenshot for AccessGate pool

單一登入和 HTTP 標頭

[簡單按鈕精靈] 支援 Kerberos、OAuth 持有人和 HTTP 授權標頭,以對已發佈應用程式進行 SSO。 Oracle EBS 應用程式需要標頭時,請啟用 [HTTP 標頭],然後輸入下列屬性。

  • 標頭作業:取代

  • 標頭名稱:USER_NAME

  • 標頭值:%{session.sso.token.last.username}

  • 標頭作業:取代

  • 標頭名稱:USER_ORCLGUID

  • 標頭值:%{session.ldap.last.attr.orclguid}

     Screenshot for SSO and HTTP headers

注意

大括弧內所定義的 APM 工作階段變數區分大小寫。 例如,如果您在 Azure AD 屬性名稱定義為 orclguid 時輸入 OrclGUID,則會導致屬性對應失敗

工作階段管理

BIG-IP 的工作階段管理設定用來定義使用者工作階段終止或允許繼續的條件、使用者和 IP 位址的限制,以及對應的使用者資訊。 如需這些設定的詳細資料,請參閱 F5 文件

不過,這裏未涵蓋單一登出 (SLO) 功能,而此功能確保在使用者登出時,會終止 IdP、BIG-IP 與使用者代理程式之間的所有工作階段。 簡單按鈕在 Azure AD 租用戶中具現化 SAML 應用程式時,也會在 [登出 Url] 中填入 APM 的 SLO 端點。 如此一來,IdP 從 Azure AD MyApps 入口網站起始的登出也會終止 BIG-IP 與用戶端之間的工作階段。

也會與此項目一起從您的租用戶匯入已發佈應用程式的 SAML 同盟中繼資料,並將 Azure AD 的 SAML 登出端點提供給 APM。 這可確保由 SP 起始的登出終止用戶端與 Azure AD 之間的工作階段。 但為了達到真正的效用,必須要讓 APM 確切得知使用者登出應用程式的時間。

如果使用 BIG-IP webtop 入口網站來存取已發佈的應用程式,則 APM 將會處理從該處的登出,以同時呼叫 Azure AD 登出端點。 但考慮到未使用 BIG-IP webtop 入口網站的案例中,使用者無法指示 APM 登出。即使使用者登出應用程式本身,BIG-IP 在技術上還是會對此無視。 因此,基於此原因,需要謹慎考慮由 SP 起始的登出,以確保不再需要工作階段時,會安全地終止工作階段。 達成此目的的一種方法,是將 SLO 函數新增至您的應用程式登出按鈕,使其可以將您的用戶端重新導向至 Azure AD SAML 或 BIG-IP 登出端點。 您可以在 [應用程式註冊] > [端點] 中找到您租用戶的 SAML 登出端點 URL。

如果無法對應用程式進行變更,則請考慮讓 BIG-IP 接聽應用程式登出呼叫,並在偵測到要求時讓其觸發 SLO。 請參閱我們的 Oracle PeopleSoft SLO 指導,以使用 BIG-IP irule 來達成此目的。 如需有關使用 BIG-IP iRules 達成此目的的詳細資料,請參閱 F5 知識文章根據 URI 參考的檔案名稱設定自動工作階段終止 (登出)登出 URI 包含選項的概觀

總結

這最後一個步驟提供您的設定明細。 選取 [部署] 以認可所有設定,並確認應用程式現在存在於企業應用程式的租用戶清單中。

後續步驟

從瀏覽器中,連線至「Oracle EBS 應用程式的外部 URL」,或在 Microsoft MyApps 入口網站中選取應用程式的圖示。 向 Azure AD 驗證之後,系統會將您重新導向至應用程式的 BIG-IP 虛擬伺服器,並透過 SSO 自動登入。

為了提高安全性,使用此模式的組織也可以考慮封鎖所有對應用程式的直接存取,進而強制執行整個 BIG-IP 的嚴格路徑。

進階部署

在某些情況下,引導式設定範本可能缺乏彈性來達成更具體的需求。 針對這些案例,請參閱標頭型 SSO 的進階設定。 或者,BIG-IP 可讓您選擇停用「引導式設定的嚴格管理模式」。 這可讓您手動調整您的設定,即使大量的設定都是透過精靈型範本自動完成也是一樣。

您可以導覽至 [存取] > [引導式設定],然後在您應用程式設定的資料列最右側選取「小型掛鎖圖示」。

Screenshot for Configure Easy Button - Strict Management

屆時,您將無法再透過精靈 UI 進行變更,但會解除鎖定與應用程式已發佈執行個體相關聯的所有 BIG-IP 物件,以進行直接管理。

注意

重新啟用嚴格模式以及部署設定,將會覆寫在引導式設定 UI 外部執行的任何設定,因此建議使用適用於生產服務的進階設定方法。

疑難排解

無法存取 SHA 保護的應用程式可能是許多因素所造成。 BIG-IP 記錄能夠協助快速隔離各種連線能力、SSO、原則違規或變數對應設定錯誤的問題。 增加記錄詳細程度層級來開始疑難排解。

  1. 導覽至 [存取原則] > [概觀] > [事件記錄檔] > [設定]

  2. 選取已發佈應用程式的資料列,然後 [編輯] > [存取系統記錄檔]

  3. 從 SSO 清單中選取 [偵錯],然後選取 [確定]

請重現問題,然後檢查記錄,但記得在完成時將其切換回來,因為詳細資訊模式會產生大量資料。

如果您在 Azure AD 預先驗證成功之後,立即看到標有 BIG-IP 品牌的錯誤,則問題可能與從 Azure AD 到 BIG-IP 的 SSO 有關。

  1. 導覽至 [存取] > [概觀] > [存取報告]

  2. 執行過去一小時的報告,以查看記錄是否提供任何線索。 您工作階段的 [檢視工作階段變數] 連結也有助於了解 APM 是否收到來自 Azure AD 的預期宣告

如果您看不到 BIG-IP 錯誤頁面,則問題可能與後端要求有關,或與從 BIG-IP 到應用程式的 SSO 有關。

  1. 在這種情況下,前往 [存取原則] > [概觀] > [作用中工作階段],然後選取作用中工作階段的連結

  2. 此位置中的 [檢視變數] 連結也可能有助於根本原因 SSO 問題,特別是 BIG-IP APM 無法從 Azure AD 或另一個來源取得正確的屬性時

如需詳細資訊,請參閱 BIG-IP APM 變數指派範例F5 BIG-IP 工作階段變數參考

下列來自 Bash Shell 的命令會驗證用於 LDAP 查詢的 APM 服務帳戶,並且可以成功驗證和查詢使用者物件:

ldapsearch -xLLL -H 'ldap://192.168.0.58' -b "CN=oraclef5,dc=contoso,dc=lds" -s sub -D "CN=f5-apm,CN=partners,DC=contoso,DC=lds" -w 'P@55w0rd!' "(cn=testuser)"

如需詳細資訊,請造訪此 F5 知識文章:設定 Active Directory 的 LDAP 遠端驗證。 另外還有一份不錯的 BIG-I 參考表,有助於在 LDAP 查詢的這篇 F5 知識文章中診斷 LDAP 相關問題。