在 Edge 上支援私有雲的 SAML

Private Cloud 適用的 Edge 4.17.09 版

Edge UI 和 Edge 管理 API 會向 Edge 管理伺服器提出要求,而管理伺服器支援下列類型的驗證:

  • 基本驗證:透過傳遞使用者名稱和密碼,登入 Edge UI 或向 Edge 管理 API 提出要求。
  • OAuth2 將 Edge 基本驗證憑證換成 OAuth2 存取權杖和更新權杖。在 API 呼叫的 Bearer 標頭中傳遞 OAuth2 存取權憑證,呼叫 Edge 管理 API。

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

注意:系統僅支援 SAML 做為驗證機制。不支援授權。因此,您還是使用 Edge OpenLDAP 資料庫來維護授權資訊。詳情請參閱「指派角色」。

SAML 支援單一登入 (SSO) 環境。搭配 Edge 使用 SAML,您就能為 Edge UI 和 API 支援 SSO,以及您提供的任何支援 SAML 的其他服務。

對 Private Cloud 的 OAuth2 新增支援

如上所述,SAML 的 Edge 實作需要 OAuth2 存取權杖。因此,Edge for Private Cloud 的 OAuth2 支援功能已新增至 Edge。詳情請參閱 OAuth 2.0 簡介

SAML 的優勢

SAML 驗證有幾項優點。使用 SAML 可以:

  • 完全掌控使用者。當使用者離開貴機構並由您集中解除設定後,系統會自動拒絕他們存取 Edge 的權限。
  • 控管使用者通過 Edge 的驗證方式。您可以為不同的 Edge 機構選擇不同的驗證類型。
  • 控制驗證政策。SAML 供應商可能支援與貴企業標準更為相符的驗證政策。
  • 您可以監控 Edge 部署作業中的登入次數、登出次數、登入失敗次數和高風險活動。

透過 Edge 使用 SAML

如要在 Edge 上支援 SAML,請安裝 Edge 單一登入 (SSO) 模組 apigee-sso。下圖顯示 Edge for Private Cloud 安裝作業中的 Edge 單一登入 (SSO) 功能:

您可以將 Edge SSO 模組安裝在與 Edge UI 和管理伺服器相同的節點,也可以安裝在專屬節點。確認 Edge SSO 可透過通訊埠 8080 存取管理伺服器。

您必須在 Edge SSO 節點上開啟連接埠 9099,才能透過瀏覽器、外部 SAML IdP 和管理伺服器和 Edge UI 存取 Edge SSO。設定邊緣單一登入 (SSO) 時,您可以指定外部連線使用 HTTP 或已加密的 HTTPS 通訊協定。

Edge SSO 使用 Postgres 節點上的通訊埠 5432 可存取的 Postgres 資料庫。通常,您可以使用與 Edge 安裝的 Postgres 伺服器相同的伺服器,無論是獨立的 Postgres 伺服器,還是以主/備用模式設定的兩個 Postgres 伺服器皆可。如果 Postgres 伺服器的負載過高,您也可以選擇建立專門用於 Edge 單一登入的 Postgres 節點。

啟用 SAML 後,Edge UI 和 Edge Management API 的存取權就會使用 OAuth2 存取權杖。這些權杖是由 Edge 單一登入 (SSO) 模組所產生,模組會接受 IdP 傳回的 SAML 宣告。

從 SAML 宣告產生後,OAuth 權杖的有效期限為 30 分鐘,更新憑證的有效期限為 24 小時。您的開發環境可能會支援自動化作業,用於執行需要較長權杖時間的一般開發工作,例如測試自動化或持續整合/持續部署 (CI/CD)。如要瞭解如何為自動化工作建立特殊權杖,請參閱「使用 SAML 搭配自動化工作」一文。

Edge UI 和 API 網址

用於存取 Edge UI 和 Edge 管理 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 SSO 上設定 TLS

根據預設,Edge SSO 連線會透過 HTTP 連線至代管 apigee-sso 的節點 (Edge SSO 模組),通訊埠為 9099。在 apigee-sso 中建構的是 Tomcat 執行個體,可處理 HTTP 和 HTTPS 要求。

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

  • 預設:預設設定會支援通訊埠 9099 上的 HTTP 要求。
  • SSL_TERMINATION:在您選擇的通訊埠上啟用 TLS 存取 Edge 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 單一登入模組,因此兩者都支援單一登入功能。也就是說,登入 Edge 或 API BaaS 時,系統會同時登入這兩個服務。這也表示您只需為所有使用者憑證維護一個位置。

您也可以視需要設定單一登出功能。請參閱「透過 Edge UI 設定單一登出功能」。