為 HTTPS 存取權設定 apigee-sso

私有雲的邊緣 4.17.09 版

安裝及設定 Edge SSO」一文說明如何安裝並設定 Edge SSO 模組,以便在通訊埠 9099 上使用 HTTP,如設定檔中下列屬性所指定:

SSO_TOMCAT_PROFILE=DEFAULT

或者,您也可以將 SSO_TOMCAT_PROFILE 設為下列其中一個值,藉此啟用 HTTPS 存取權:

  • SSL_PROXY - 在 Proxy 模式下設定 apigee-sso,這代表您已在 apigee-sso 安裝負載平衡器,並在負載平衡器上終止了傳輸層安全標準 (TLS)。然後針對來自負載平衡器的要求,指定 apigee-sso 使用的通訊埠。
  • SSL_TERMINATION - 啟用在所選通訊埠的 apigee-sso (邊緣單一登入 (SSO) 模組) 的 TLS 存取權。您必須為這個模式指定 KeyStore,當中包含由 CA 簽署的憑證。無法使用自行簽署的憑證。

您可以在初次安裝及設定 apigee-sso 時選擇啟用 HTTPS,也可以稍後再啟用。

透過任一模式啟用 apigee-sso 的 HTTPS 存取權後,系統會停用 HTTP 存取權。也就是說,您無法同時使用 HTTP 和 HTTPS 存取 apigee-sso

啟用 SSL_PROXY 模式

SSL_PROXY 模式下,您的系統會在 Edge SSO 模組前方使用負載平衡器,並在負載平衡器上終止 TLS。在下圖中,負載平衡器會在通訊埠 443 上終止 TLS,然後將要求轉送至通訊埠 9099 上的 Edge SSO 模組:

在這項設定中,您信任負載平衡器與邊緣單一登入 (SSO) 模組的連線,因此不必針對該連線使用 TLS。不過,SAML IDP 等外部實體現在必須透過通訊埠 443 存取 Edge SSO 模組,而不得在未受保護的通訊埠 9099 上存取。

SSL_PROXY 模式下設定 Edge SSO 模組的原因,在於 Edge SSO 模組會在驗證程序中自動產生外部使用的重新導向網址。因此,這些重新導向網址必須包含負載平衡器的外部通訊埠編號,在本例中為 443,而非 Edge SSO 模組中的內部通訊埠 9099。

注意:由於從負載平衡器到 Edge SSO 模組的連線是使用 HTTP,所以您不必為 SSL_PROXY 模式建立 TLS 憑證和金鑰。

如何為 SSL_PROXY 模式設定 Edge SSO 模組:

  1. 在您的設定檔中新增以下設定:
    # 啟用 SSL_PROXY 模式。
    SSO_TOMCAT_PROFILE=SSL_PROXY

    # 指定 apigee-sso 通訊埠,通常介於 1025 至 65535 之間。
    #通常通訊埠 1024 以下版本須取得 apigee-sso 的 Root 權限。
    # 預設值為 9099。
    SSO_TOMCAT_PORT=9099

    # 指定負載平衡器上的通訊埠編號,藉此終止 TLS。
    # 如要使用 apigee-sso 自動產生重新導向網址,必須提供這個通訊埠編號。
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443

    # 將 apigee-sso 設為 https 的公開存取配置。
    SSO_PUBLIC_URL_SCHEME=https
  2. 設定 Edge SSO 模組:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. 請更新 IDP 設定,透過負載平衡器的通訊埠 443 提出 HTTPS 要求,以便存取 Edge SSO。詳情請參閱「設定 SAML IDP」。
  4. 設定下列屬性,更新 HTTPS 的 Edge UI 設定:
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https


    詳情請參閱在 Edge UI 中啟用 SAML
  5. 如果您已安裝 Developer Services 入口網站或 API BaaS,請更新這些入口網站以使用 HTTPS 存取 Ede SSO。如需更多資訊,請參閱:

啟用 SSL_TERMINATION 模式

針對 SSL_TERMINATION 模式,您必須:

  • 產生 TLS 憑證和金鑰,並儲存在 KeyStore 檔案中。無法使用自行簽署的憑證。您必須從 CA 產生憑證。
  • 更新 apigee-sso. 的配置設定。

如要透過憑證和金鑰建立 KeyStore 檔案,請按照下列指示操作:

  1. 為 JKS 檔案建立目錄:
    > sudo mkdir -p /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  2. 變更為新目錄:
    > cd /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  3. 建立包含憑證和金鑰的 JKS 檔案。您必須為這個模式指定 KeyStore,當中包含由 CA 簽署的憑證。無法使用自行簽署的憑證。如需建立 JKS 檔案的範例,請參閱「為 Edge On Premise 設定 TLS/SSL」。
  4. 使「apigee」使用者擁有的 JKS 檔案:
    > sudo chown -R apigee:apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

如何設定 Edge SSO 模組:

  1. 在您的設定檔中新增以下設定:
    # 啟用 SSL_TERMINATION 模式。
    SSO_TOMCAT_PROFILE=SSL_TERMINATION

    # 指定 KeyStore 檔案的路徑。
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    SSO_TOMCAT_KEYSTORE_ALIAS=sso

    # 建立 KeyStore 時指定的密碼。
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword

    # 請指定介於 1025 至 65535 之間的 HTTPS 通訊埠編號。
    #通常通訊埠 1024 以下版本須取得 apigee-sso 的 Root 權限。
    # 預設值為 9099。
    SSO_TOMCAT_PORT=9443
    SSO_PUBLIC_URL_PORT=9443

    # 將 apigee-sso 設為 https 的公開存取配置。
    SSO_PUBLIC_URL_SCHEME=https
  2. 設定 Edge SSO 模組:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. 請更新 IDP 設定,透過負載平衡器的通訊埠 9443 提出 HTTPS 要求,以便存取 Edge SSO。詳情請參閱「設定 SAML IDP」。
  4. 設定下列屬性,更新 HTTPS 的 Edge UI 設定:
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https


    詳情請參閱在 Edge UI 中啟用 SAML
  5. 如果您已安裝 Developer Services 入口網站或 API BaaS,請更新這些入口網站以使用 HTTPS 存取 Ede SSO。如需更多資訊,請參閱:

使用 SSL_TERMINATION 模式時,設定 SSO_TOMCAT_PROXY_PORT

您可能在 Edge SSO 模組前方有一個負載平衡器,用來終止負載平衡器的 TLS,但同時在負載平衡器和 Edge SSO 之間啟用 TLS。在上圖的 SSL_PROXY 模式下,這表示負載平衡器至 Edge SSO 的連線使用的是 TLS。

在這種情況下,您必須按照上述的 SSL_TERMINATION 模式設定,在 Edge SSO 上設定 TLS。不過,如果負載平衡器使用的傳輸層安全標準 (TLS) 通訊埠編號與 Edge SSO 使用的傳輸層安全標準 (TLS) 不同,您還必須在設定檔中指定 SSO_TOMCAT_PROXY_PORT 屬性。例如:

  • 負載平衡器會終止通訊埠 443 的 TLS
  • Edge SSO 會在通訊埠 9443 上終止 TLS

請務必在設定檔中加入以下設定:

# 指定負載平衡器上的通訊埠編號,藉此終止 TLS。
# 這個通訊埠編號可設為由 apigee-sso 產生重新導向網址。
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

設定 IdP 和 Edge UI,透過通訊埠 443 發出 HTTPS 要求。