在 Edge 上支援私有雲的 SAML

私有雲 v4.18.01 的邊緣

Edge UI 和 Edge Management API 會向 Edge Management Server 發出要求來進行運作,其中 Management Server 支援下列類型的驗證方式:

  • 基本驗證:透過傳送使用者名稱和密碼登入 Edge UI 或向 Edge Management API 提出要求。
  • OAuth2 為 OAuth2 存取權杖交換 Edge 基本驗證憑證並更新權杖。如要呼叫 Edge Management API,請在 API 呼叫的不記頭標頭中傳遞 OAuth2 存取權杖。

Edge 也支援安全宣告標記語言 (SAML) 2.0 做為驗證機制。啟用 SAML 後,Edge UI 和 Edge Management API 的存取權仍會使用 OAuth2 存取權杖。不過,您現在可以透過 SAML 識別資訊提供者傳回的 SAML 宣告產生這些權杖。

注意:SAML 僅支援驗證機制。但不提供授權。因此,您依然使用 Edge OpenLDAP 資料庫維護授權資訊。詳情請參閱「指派角色」一節。

SAML 支援單一登入 (SSO) 環境。將 SAML 與 Edge 搭配使用,除了您提供的任何其他服務以外,您還能透過 Edge 支援 Edge UI 和 API 的單一登入 (SSO) 服務。

已新增 OAuth2 的私有雲支援

如上所述,SAML 的 Edge 實作必須使用 OAuth2 存取權杖。因此,Edge for Private Cloud 已支援 OAuth2。詳情請參閱 OAuth 2.0 簡介

SAML 的優點

SAML 驗證提供許多優點,使用 SAML 時,您可以:

  • 完全掌控使用者。如果使用者離開貴機構並集中取消佈建,系統會自動拒絕他們存取 Edge。
  • 控管使用者驗證 Edge 存取權的方式。您可以為不同的 Edge 機構選擇不同的驗證類型。
  • 控管驗證政策。您的 SAML 供應商可能支援更符合企業標準的驗證政策。
  • 您可以監控 Edge 部署作業的登入、登出、失敗的登入嘗試和高風險活動。

搭配 Edge 使用 SAML

如要支援 Edge on Edge,請安裝 Edge SSO 模組 apigee-sso。下圖顯示了 Edge for Private Cloud 安裝中的 Edge SSO:

您可以將 Edge SSO 模組安裝在 Edge UI 和管理伺服器所在的節點上,也可以安裝在本身的節點上。請確認 Edge SSO 可以透過通訊埠 8080 存取管理伺服器。

您必須在 Edge SSO 節點上開啟通訊埠 9099,才能支援透過瀏覽器、外部 SAML IDP 以及 Management Server 和 Edge UI 存取 Edge SSO。在設定 Edge SSO 時,您可以指定外部連線使用 HTTP 或加密的 HTTPS 通訊協定。

Edge SSO 會使用 Postgres 節點上通訊埠 5432 存取的 Postgres 資料庫。一般而言,您可以使用與 Edge 安裝的 Postgres 伺服器相同,無論是獨立的 Postgres 伺服器,還是在主要/待命模式下設定的兩個 Postgres 伺服器。如果 Postgres 伺服器的負載量偏高,您也可以選擇為 Edge SSO 建立獨立的 Postgres 節點。

啟用 SAML 後,邊緣 UI 和 Edge Management API 的存取權就會使用 OAuth2 存取權杖。 這些權杖是由 Edge SSO 模組產生,該模組會接受 IdP 傳回的 SAML 宣告。

透過 SAML 宣告產生後,OAuth 權杖的有效期限為 30 分鐘,更新權杖的有效期限為 24 小時。您的開發環境可能支援自動化處理工作,例如要求較長權杖的常見開發工作,例如測試自動化或持續整合/持續部署 (CI/CD)。如要瞭解如何為自動化工作建立特殊符記,請參閱使用 SAML 搭配自動化工作

Edge UI 和 API 網址

您用來存取 Edge UI 和 Edge Management API 的網址,與您啟用 SAML 前使用的網址相同。針對 Edge UI:

http://edge_ui_IP_DNS:9000
https://edge_ui_IP_DNS:9000

其中 edge_ui_IP_DNS 是託管 Edge UI 機器的 IP 位址或 DNS 名稱。在設定 Edge UI 的過程中,您可以指定連線使用 HTTP 或加密的 HTTPS 通訊協定。

針對 Edge Management API:

http://ms_IP_DNS:8080/v1  
https://ms_IP_DNS:8080/v1  

其中 ms_IP_DNS 是管理伺服器的 IP 位址或 DNS 名稱。在設定 API 時,您可以指定連線使用 HTTP 或加密的 HTTPS 通訊協定。

設定 Edge 的 TLS 服務

根據預設,邊緣單一登入 (SSO) 連線會在代管節點 apigee-sso (Edge SSO 模組) 上的通訊埠 9099 使用 HTTP。內建於 apigee-sso 中的 Tomcat 執行個體,可處理 HTTP 和 HTTPS 要求。

Edge SSO 和 Tomcat 支援三種連線模式:

  • 預設 - 預設設定支援通訊埠 9099 的 HTTP 要求。
  • SSL_TERMINATION - 啟用所選通訊埠的邊緣單一登入 (SSO) 存取權。您必須為這個模式指定 TLS 金鑰和憑證。
  • SSL_PROXY - 設定 Proxy 模式的 Edge SSO,意味著您在負載平衡器的 apigee-sso 安裝負載平衡器,並已終止 TLS。您可以針對來自負載平衡器的要求,指定 apigee-sso 使用的通訊埠。

為開發人員服務入口網站和 API BaaS 啟用 SAML 支援

啟用 Edge 的 SAML 支援後,您可以選擇為下列項目啟用 SAML:

在設定開發人員服務入口網站和 API BaaS 的過程中,您必須指定透過 Edge 安裝的 Edge SSO 模組網址:

Edge 和 API BaaS 共用相同的 Edge SSO 模組,因此支援單一登入。也就是說,登入 Edge 或 API BaaS 都會登入兩者。這也表示所有使用者憑證只需要維護一個位置。

您也可以選擇設定單一登入。請參閱「透過 Edge UI 設定單一登入」。