为 HTTPS 访问配置 Apigee SSO

安装和配置 Apigee 单点登录介绍了如何安装和配置 安装 Apigee SSO 模块并将其配置为在端口 9099 上使用 HTTP,如 在 Edge 配置文件中设置以下属性:

SSO_TOMCAT_PROFILE=DEFAULT

或者,您可以将 SSO_TOMCAT_PROFILE 设置为以下其中一项 值以启用 HTTPS 访问:

  • SSL_PROXY::配置 Apigee SSO 模块 apigee-sso 处于代理模式,这意味着您已在 apigee-sso 前面安装了负载平衡器 以及已终止的 TLS然后指定用于 apigee-sso(适用于来自负载平衡器的请求)。
  • SSL_TERMINATION::已对 apigee-sso 上的 TLS 启用 TLS 访问 您选择的端口您必须为此模式指定包含证书的密钥库 由CA 签名。您不能使用自签名证书。

您可以在最初安装和配置 HTTPS 时选择启用 HTTPS。 apigee-sso,也可以稍后启用。

如果使用任一模式启用对 apigee-sso 的 HTTPS 访问权限,都会停用 HTTP 访问权限。也就是说,您无法同时使用 HTTP 和 HTTPS 访问 apigee-sso 同时进行。

启用 SSL_PROXY 模式

SSL_PROXY 模式下,您的系统 在 Apigee SSO 模块前面使用负载平衡器,并终止负载平衡器上的 TLS。在 如下图所示,负载平衡器会在端口 443 上终止 TLS,然后将请求转发到 端口 9099 上的 Apigee SSO 模块:

在此配置中,您信任从负载平衡器到 Apigee SSO 模块的连接, 因此无需针对该连接使用 TLS然而,IDP 等外部实体 现在必须在端口 443(而不是不受保护的端口 9099)上访问 Apigee SSO 模块。

SSL_PROXY 模式下配置 Apigee SSO 模块的原因是 Apigee SSO 模块在身份验证过程中自动生成 IdP 在外部使用的重定向网址 过程。因此,这些重定向网址在加载时必须包含外部端口号 而不是 Apigee SSO 模块上的内部端口 9099。

如需为 SSL_PROXY 模式配置 Apigee SSO 模块,请执行以下操作:

  1. 将以下设置添加到您的配置文件中:
    # Enable SSL_PROXY mode.
    SSO_TOMCAT_PROFILE=SSL_PROXY
    
    # Specify the apigee-sso port, typically between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9099
    
    # Specify the port number on the load balancer for terminating TLS.
    # This port number is necessary for apigee-sso to auto-generate redirect URLs.
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. 配置 Apigee SSO 模块:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. 更新您的 IDP 配置,立即在加载作业的端口 443 上发出 HTTPS 请求 访问 Apigee SSO。如需了解详情,请参阅以下内容之一: <ph type="x-smartling-placeholder">
  4. 通过在配置文件中设置以下属性来针对 HTTPS 更新 Edge 界面配置:
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https

    然后更新 Edge 界面:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile

    对于经典版界面,请使用 edge-ui 组件。

  5. 如果您安装了 Apigee Developer Services 门户(或者简称为门户),请更新以使用 HTTPS 来访问 Apigee SSO。对于 请参阅 将门户配置为使用外部 IDP

如需了解相关信息,请参阅在 Edge 界面上启用外部 IDP。 。

启用 SSL_TERMINATION 模式

对于 SSL_TERMINATION 模式,您必须:

  • 生成 TLS 证书和密钥,并将其存储在密钥库文件中。您不能使用 自签名证书您必须通过 CA 生成证书。
  • 更新“apigee-sso.”的配置设置

如需基于证书和密钥创建密钥库文件,请执行以下操作

  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 文件。您必须为此模式指定密钥库 (包含由 CA 签署的证书)。您无法使用自签名证书。有关 请参阅为 JKS 文件配置 TLS/SSL Edge On Premises
  4. 创建“apigee”所拥有的 JKS 文件用户:
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

如需配置 Apigee SSO 模块,请执行以下操作

  1. 将以下设置添加到您的配置文件中:
    # Enable SSL_TERMINATION mode.
    SSO_TOMCAT_PROFILE=SSL_TERMINATION
    
    # Specify the path to the keystore file.
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    
    SSO_TOMCAT_KEYSTORE_ALIAS=sso
    
    # The password specified when you created the keystore.
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword
    
    # Specify the HTTPS port number between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9443
    SSO_PUBLIC_URL_PORT=9443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. 配置 Apigee SSO 模块:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. 更新您的 IDP 配置,立即在加载作业的端口 9443 上发出 HTTPS 请求 访问 Apigee SSO。确保没有其他服务正在使用此端口。

    详情请参阅以下内容:

  4. 通过设置以下属性,针对 HTTPS 更新 Edge 界面配置:
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https
  5. 如果您已安装 Developer Services 门户,请更新该门户以使用 HTTPS, 访问 Apigee SSO。有关详情,请参阅 将门户配置为使用外部 IDP

使用 SSL_TERMINATION 模式时设置 SSO_TOMCAT_PROXY_PORT

Apigee SSO 模块前面可能存在一个负载平衡器,用于终止负载上的 TLS 同时还要在负载平衡器和 Apigee SSO 之间启用 TLS。在上图中 对于 SSL_PROXY 模式,这表示从负载平衡器到 Apigee SSO 的连接使用 TLS。

在此场景中,您需要在 Apigee SSO 上配置 TLS,就像上面为 SSL_TERMINATION 模式。但是,如果负载 负载平衡器使用的 TLS 端口号与 Apigee SSO 用于 TLS 的端口号不同,则您还必须指定 配置文件中的 SSO_TOMCAT_PROXY_PORT 属性。例如:

  • 负载平衡器在端口 443 上终止 TLS
  • Apigee SSO 终止端口 9443 上的 TLS

请确保在配置文件中包含以下设置:

# Specify the port number on the load balancer for terminating TLS.
# This port number is necessary for apigee-sso to generate redirect URLs.
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

配置 IDP 和 Edge 界面,以在端口 443 上发出 HTTPS 请求。