Instala varias instancias de Apigee SSO para lograr una alta disponibilidad en dos casos:
- En un entorno de un solo centro de datos, instala dos instancias de Apigee SSO para crear un entorno de alta disponibilidad, lo que significa que el sistema continúa funcionando si uno de los módulos de SSO deja de funcionar.
- En un entorno con dos centros de datos, instala Apigee SSO en ambos centros de datos para que el sistema continúe funcionando si el Apigee SSO de un centro de datos deja de funcionar.
Instala dos módulos de Apigee SSO en el mismo centro de datos
Implementa dos instancias de Apigee SSO en diferentes nodos apigee-openldap en un solo centro de datos para admitir
alta disponibilidad. En este caso, ocurre lo siguiente:
- Ambas instancias de Apigee SSO deben estar conectadas al mismo servidor de Postgres. Apigee recomienda
usar un servidor de Postgres dedicado para Apigee SSO y no el mismo servidor de Postgres que
instalaste con Edge. Ambas instancias deben compartir la base de datos
apigee_dexpara la persistencia de estado. - No se requiere la distribución manual de claves JWT: A diferencia del componente UAA heredado, el Apigee SSO modernizado almacena y sincroniza sus conjuntos de claves web JSON (JWKS) y el estado de OAuth2 de forma nativa en la base de datos PostgreSQL compartida. No es necesario que copies manualmente las claves de firma en los nodos.
- Sincronización de credenciales para OpenLDAP interno: Si usas el OpenLDAP interno predeterminado, Apigee SSO usa una cuenta de servicio dedicada de solo lectura (
cn=sso-reader). Para HA (nodo 2), el administrador debe establecer el mismoSSO_READER_PWen/opt/silent.confen ambos nodos o copiar/opt/apigee/data/apigee-openldap/sso-reader.keydel nodo 1 al nodo 2 antes de ejecutarsetup-ssoen el nodo 2.Para copiar manualmente el archivo de claves, ejecuta los siguientes comandos en el nodo 2:
scp node1_ip:/opt/apigee/data/apigee-openldap/sso-reader.key /opt/apigee/data/apigee-openldap/sso-reader.key chown apigee:apigee /opt/apigee/data/apigee-openldap/sso-reader.key chmod 600 /opt/apigee/data/apigee-openldap/sso-reader.key
- Necesitas un balanceador de cargas frente a las dos instancias de Apigee SSO:
- Configura el balanceador de cargas para realizar una verificación de estado de TCP o HTTP en el SSO. Para HTTP, incluye
/healthz:http_or_https://edge_sso_IP_DNS:9099/healthz
Especifica el puerto según lo establecido por Apigee SSO. El puerto 9099 es el predeterminado.
- Algunos parámetros de configuración del balanceador de cargas dependen de si habilitaste HTTPS en Apigee SSO. Consulta las siguientes secciones para obtener más información.
- Configura el balanceador de cargas para realizar una verificación de estado de TCP o HTTP en el SSO. Para HTTP, incluye
Acceso HTTP a Apigee SSO
Si usas el acceso HTTP a Apigee SSO, configura el balanceador de cargas de la siguiente manera:
- Usa el modo HTTP para conectarte a Apigee SSO.
- Escucha en el mismo puerto que Apigee SSO.
De forma predeterminada, Apigee SSO escucha las solicitudes HTTP en el puerto 9099. De manera opcional, puedes usar
SSO_PUBLIC_URL_PORT en tu /opt/silent.conf archivo para establecer el puerto. Si usaste SSO_PUBLIC_URL_PORT
para cambiar el puerto predeterminado, asegúrate de que el balanceador de cargas escuche en ese
puerto.
Por ejemplo, en cada instancia de SSO, configura el puerto en 9033 agregando lo siguiente al archivo de configuración:
SSO_PUBLIC_URL_PORT=9033
Luego, configura el balanceador de cargas para que escuche en el puerto 9033 y reenvíe las solicitudes a las instancias de SSO en el puerto 9033. La URL pública del emisor de Apigee SSO en este caso es la siguiente:
http://LB_DNS_NAME:9033
Acceso HTTPS a Apigee SSO
Puedes configurar HA con HTTPS usando uno de los siguientes dos modos. En ambos casos, sigue los pasos de configuración detallados en Configura Apigee SSO para el acceso HTTPS.
Modo 1: El balanceador de cargas finaliza TLS (SSL_PROXY)
Si el balanceador de cargas finaliza la conexión TLS, debe reenviar el tráfico HTTP sin formato a las instancias de Apigee SSO.
- Configura
SSO_PUBLIC_URL_SCHEME=httpsySSO_PUBLIC_URL_PORT=443(o el puerto HTTPS público del balanceador de cargas) en tu archivo/opt/silent.conf. - Configura el balanceador de cargas para usar el modo HTTP para conectarte a las instancias de Apigee SSO de backend.
- Configura el balanceador de cargas para reenviar solicitudes a las instancias de Apigee SSO en su puerto de vinculación HTTP local (predeterminado:
9099).
Modo 2: Apigee SSO finaliza TLS (SSL_TERMINATION)
Si deseas que las instancias de Apigee SSO finalicen las conexiones TLS directamente, el balanceador de cargas debe pasarles el tráfico encriptado.
- Configura
SSO_PUBLIC_URL_SCHEME=httpsySSO_PUBLIC_URL_PORT=9443(o el puerto seguro que elijas) en tu archivo/opt/silent.conf. - Configura el balanceador de cargas para usar el modo TCP (no el modo HTTP) para conectarte al backend, lo que permite que Apigee SSO finalice TLS.
- Configura el balanceador de cargas para que escuche en el mismo puerto que Apigee SSO y reenvíe las solicitudes a las instancias de Apigee SSO en su puerto seguro (por ejemplo,
9443).
Instala Apigee SSO en varios centros de datos
En un entorno de varios centros de datos, instalas una instancia de Apigee SSO (a través de apigee-openldap) en cada centro de datos.
Una instancia de SSO controla todo el tráfico. Si esa instancia deja de funcionar, puedes
cambiar el tráfico a la segunda instancia de SSO.
Antes de instalar Apigee SSO en dos centros de datos, necesitas lo siguiente:
- La dirección IP o el nombre de dominio del servidor de Postgres principal
En un entorno de varios centros de datos, por lo general, instalas un servidor de Postgres en cada centro de datos y los configuras en el modo de replicación principal-en espera. En este ejemplo, el centro de datos 1 contiene el servidor de Postgres principal y el centro de datos 2 contiene el servidor en espera. Para obtener más información, consulta Configura la replicación principal-en espera para Postgres.
- Una sola entrada DNS que apunta a una instancia de SSO Por ejemplo, creas una entrada DNS
con el siguiente formato, que apunta a la instancia de SSO en el centro de datos 1:
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Credenciales de lector de OpenLDAP sincronizadas Si usas el OpenLDAP interno, debes asegurarte de que ambos centros de datos usen exactamente el mismo
SSO_READER_PWo compartan el mismo archivosso-reader.keypara evitar la desincronización del clúster durante la configuración.
Cuando configuras Apigee SSO en cada centro de datos, apuntas ambas configuraciones al Postgres principal en el centro de datos 1:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432También debes configurar ambos centros de datos para que usen la entrada DNS compartida como la URL del emisor accesible de forma pública. Debido a que la secuencia de comandos setup-sso construye automáticamente la URL del emisor y agrega el puerto, debes configurar la URL exacta directamente en /opt/apigee/customer/application/openldap.properties en lugar de /opt/silent.conf para evitar que se agregue el puerto si no es necesario:
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comCómo controlar la conmutación por error de SSO
Si la instancia de Apigee SSO (o su Postgres principal) en el centro de datos 1 deja de funcionar, puedes cambiar a la instancia de SSO en el centro de datos 2 sin perder las sesiones de OAuth activas:
- Convierte el servidor de Postgres en espera en el centro de datos 2 a principal como se describe en Cómo controlar una conmutación por error de la base de datos de PostgreSQL.
- Actualiza tu registro DNS para que
my-sso.domain.comapunte a la instancia de SSO en el centro de datos 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Actualiza tu archivo
/opt/silent.confpara que Apigee SSO en el centro de datos 2 apunte al nuevo servidor de Postgres principal en el centro de datos 2:## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - Vuelve a configurar y reiniciar Apigee SSO en el centro de datos 2 para actualizar su conexión de forma nativa:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf