安装 Edge SSO 以实现高可用性

Edge for Private Cloud v4.19.01

在以下两种情况下,您需要安装多个 Edge SSO 实例以实现高可用性:

  • 在单个数据中心环境中,安装两个 Edge SSO 实例以创建高可用性环境,这意味着如果其中一个 Edge SSO 模块发生故障,系统将继续运行。
  • 在有两个数据中心的环境中,为两个数据中心安装边缘 SSO,以便系统在其中一个边缘 SSO 模块出现故障时,系统可以继续运行。

在同一数据中心安装两个 Edge SSO 模块

您可以在单个数据中心的不同节点上部署两个 Edge SSO 实例,以支持高可用性。在这种情况下:

  • 两个 Edge SSO 实例必须连接到同一 Postgres 服务器。Apigee 建议为 Edge SSO 使用专用的 Postgres 服务器,而不是为 Edge 安装的 Postgres 服务器。
  • 边缘 SSO 的两个实例必须使用配置文件中 SSO_JWT_SIGNING_KEY_FILEPATHSSO_JWT_VERIFICATION_KEY_FILEPATH 属性指定的同一 JWT 密钥对。如需详细了解如何设置这些属性,请参阅安装和配置 Edge SSO
  • 您需要一个在边缘 SSO 的两个实例前端部署的负载平衡器:
    • 负载平衡器必须支持应用生成的 Cookie 粘性,并且会话 Cookie 必须命名为 JSESSIONID
    • 将负载平衡器配置为对 Edge SSO 执行 TCP 或 HTTP 健康检查。对于 TCP,请使用边缘单点登录的网址:
      http_or_https://edge_sso_IP_DNS:9099

      将端口指定为 Edge SSO 设置的端口。默认端口为 9099。

      对于 HTTP,请添加 /healthz

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • 某些负载平衡器设置取决于您是否在 Edge SSO 上启用了 HTTPS。如需了解详情,请参阅以下部分。

对 Edge SSO 的 HTTP 访问权限

如果您通过 HTTP 访问 Edge SSO,请将负载平衡器配置为:

  • 使用 HTTP 模式连接到 Edge SSO。
  • 监听与 Edge SSO 相同的端口。

    默认情况下,Edge SSO 会在端口 9099 上监听 HTTP 请求。(可选)您可以使用 SSO_TOMCAT_PORT 设置边缘单点登录端口。如果您使用 SSO_TOMCAT_PORT 将 Edge SSO 端口从默认值更改为其他值,请确保负载平衡器监听该端口。

例如,在每个 Edge SSO 实例上,您可以通过将以下内容添加到配置文件中将端口设置为 9033:

SSO_TOMCAT_PORT=9033

然后,将负载平衡器配置为监听端口 9033,并将请求转发到端口 9033 上的 Edge SSO 实例。在这种情况下,Edge SSO 的公开网址是:

http://LB_DNS_NAME:9033

通过 HTTPS 访问 Edge SSO

您可以将 Edge SSO 实例配置为使用 HTTPS。在这种情况下,请按照为 HTTPS 访问配置 apigee-sso 中的步骤操作。在启用 HTTPS 的过程中,您可以在 Edge SSO 配置文件中设置 SSO_TOMCAT_PROFILE,如下所示:

SSO_TOMCAT_PROFILE=SSL_TERMINATION

您还可以选择设置 Edge SSO 用于 HTTPS 访问的端口:

SSO_TOMCAT_PORT=9443

然后,配置负载平衡器以执行以下操作:

  • 使用 TCP 模式(而非 HTTP 模式)连接到 Edge SSO。
  • 监听与 Edge SSO 相同的端口(由 SSO_TOMCAT_PORT 定义)。

然后,配置负载平衡器,将请求转发到端口 9433 上的 Edge SSO 实例。 在这种情况下,Edge SSO 的公开网址是:

https://LB_DNS_NAME:9443

在多个数据中心安装 Edge SSO

在多个数据中心环境中,您需要在每个数据中心安装 Edge SSO 实例。 然后,一个 Edge SSO 实例会处理所有流量。如果该 Edge SSO 实例出现故障,您可以切换到第二个 Edge SSO 实例。

在两个数据中心内安装 Edge SSO 之前,您需要做好以下准备:

  • Master Postgres 服务器的 IP 地址或域名。

    在多个数据中心环境中,您通常需要在每个数据中心安装一个 Postgres 服务器,并在主备用复制模式下对其进行配置。在本例中,数据中心 1 包含 Master Postgres 服务器,数据中心 2 包含 Standby。如需了解详情,请参阅为 Postgres 设置主备用复制

  • 指向一个 Edge SSO 实例的单个 DNS 条目。例如,您可以使用以下表单创建一个指向数据中心 1 中的边缘单点登录实例的 DNS 条目:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • 边缘 SSO 的两个实例必须使用配置文件中 SSO_JWT_SIGNING_KEY_FILEPATHSSO_JWT_VERIFICATION_KEY_FILEPATH 属性指定的同一 JWT 密钥对。如需详细了解如何设置这些属性,请参阅安装和配置 Edge SSO

在每个数据中心安装 Edge SSO 时,请将两个数据中心配置为在数据中心 1 中使用 Postgres Master:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

您还需要将两个数据中心都配置为使用 DNS 条目作为可公开访问的网址:

# Externally accessible URL of Edge SSO
SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com
# Default port is 9099.
SSO_PUBLIC_URL_PORT=9099

如果数据中心 1 的边缘单点登录出现故障,您可以改用数据中心 2 中的边缘单点登录实例:

  1. 按照处理 PostgreSQL 数据库故障切换中的说明,将数据中心 2 中的 Postgres 待机服务器转换为主服务器。
  2. 更新 DNS 记录,将 my-sso.domain.com 指向数据中心 2 中的边缘单点登录实例:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. 更新数据中心 2 中边缘单点登录的配置文件,以指向数据中心 2 中的新 Postgres Master 服务器:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. 在数据中心 2 中重启 Edge SSO 以更新其配置:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart