Vous installez plusieurs instances d'Apigee SSO pour assurer la haute disponibilité dans deux cas de figure :
- Dans un environnement à centre de données unique, installez deux instances d'Apigee SSO pour créer un environnement à haute disponibilité, ce qui signifie que le système continue de fonctionner si l'un des modules SSO tombe en panne.
- Dans un environnement à deux centres de données, installez Apigee SSO dans les deux centres de données afin que le système continue de fonctionner si Apigee SSO tombe en panne dans l'un des centres de données.
Installer deux modules Apigee SSO dans le même centre de données
Vous déployez deux instances d'Apigee SSO sur différents apigee-openldap nœuds dans un seul centre de données pour assurer la
haute disponibilité. Dans ce cas, on a :
- Les deux instances d'Apigee SSO doivent être connectées au même serveur Postgres. Apigee recommande
d'utiliser un serveur Postgres dédié pour Apigee SSO et non le même serveur Postgres que celui que vous
avez installé avec Edge. Les deux instances doivent partager la base de données
apigee_dexpour la persistance de l'état. - Aucune distribution manuelle de clés JWT n'est requise : contrairement à l'ancien composant UAA, Apigee SSO modernisé stocke et synchronise ses ensembles de clés Web JSON (JWKS) et l'état OAuth2 de manière native dans la base de données PostgreSQL partagée. Vous n'avez pas besoin de copier manuellement les clés de signature sur les nœuds.
- Synchronisation des identifiants pour OpenLDAP interne : si vous utilisez OpenLDAP interne par défaut, Apigee SSO utilise un compte de service en lecture seule dédié (
cn=sso-reader). Pour la haute disponibilité (nœud 2), l'administrateur doit définir le mêmeSSO_READER_PWdans/opt/silent.confsur les deux nœuds, ou copier/opt/apigee/data/apigee-openldap/sso-reader.keydu nœud 1 vers le nœud 2 avant d'exécutersetup-ssosur le nœud 2.Pour copier manuellement le fichier de clés, exécutez les commandes suivantes sur le nœud 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
- Vous avez besoin d'un équilibreur de charge devant les deux instances d'Apigee SSO :
- Configurez l'équilibreur de charge pour effectuer une vérification de l'état TCP ou HTTP sur le SSO. Pour HTTP, incluez
/healthz:http_or_https://edge_sso_IP_DNS:9099/healthz
Spécifiez le port tel qu'il est défini par Apigee SSO. Le port 9099 est celui par défaut.
- Certains paramètres d'équilibreur de charge dépendent du fait que vous ayez activé HTTPS sur Apigee SSO. Pour en savoir plus, consultez les sections suivantes.
- Configurez l'équilibreur de charge pour effectuer une vérification de l'état TCP ou HTTP sur le SSO. Pour HTTP, incluez
Accès HTTP à Apigee SSO
Si vous utilisez l'accès HTTP à Apigee SSO, configurez l'équilibreur de charge comme suit :
- Utilisez le mode HTTP pour vous connecter à Apigee SSO.
- Écoutez sur le même port qu'Apigee SSO.
Par défaut, Apigee SSO écoute les requêtes HTTP sur le port 9099. Vous pouvez également utiliser
SSO_PUBLIC_URL_PORT dans votre /opt/silent.conf fichier pour définir le port. Si vous avez utilisé SSO_PUBLIC_URL_PORT
pour modifier le port par défaut, assurez-vous que l'équilibreur de charge écoute sur ce
port.
Par exemple, sur chaque instance SSO, vous définissez le port sur 9033 en ajoutant les éléments suivants au fichier de configuration :
SSO_PUBLIC_URL_PORT=9033
Vous configurez ensuite l'équilibreur de charge pour qu'il écoute sur le port 9033 et qu'il transmette les requêtes aux instances SSO sur le port 9033. Dans ce cas, l'URL de l'émetteur public d'Apigee SSO est la suivante :
http://LB_DNS_NAME:9033
Accès HTTPS à Apigee SSO
Vous pouvez configurer la haute disponibilité avec HTTPS à l'aide de l'un des deux modes suivants. Dans les deux cas, suivez les étapes de configuration détaillées décrites dans Configurer Apigee SSO pour l'accès HTTPS.
Mode 1 : l'équilibreur de charge met fin à TLS (SSL_PROXY)
Si votre équilibreur de charge met fin à la connexion TLS, il doit transférer le trafic HTTP brut vers les instances Apigee SSO.
- Définissez
SSO_PUBLIC_URL_SCHEME=httpsetSSO_PUBLIC_URL_PORT=443(ou le port HTTPS public de votre équilibreur de charge) dans votre fichier/opt/silent.conf. - Configurez l'équilibreur de charge pour qu'il utilise le mode HTTP afin de se connecter aux instances Apigee SSO de backend.
- Configurez l'équilibreur de charge pour qu'il transmette les requêtes aux instances Apigee SSO sur leur port de liaison HTTP local (par défaut :
9099).
Mode 2 : Apigee SSO met fin à TLS (SSL_TERMINATION)
Si vous souhaitez que les instances Apigee SSO mettent fin directement aux connexions TLS, l'équilibreur de charge doit leur transmettre le trafic chiffré.
- Définissez
SSO_PUBLIC_URL_SCHEME=httpsetSSO_PUBLIC_URL_PORT=9443(ou le port sécurisé de votre choix) dans votre fichier/opt/silent.conf. - Configurez l'équilibreur de charge pour qu'il utilise le mode TCP (et non le mode HTTP) afin de se connecter au backend, ce qui permet à Apigee SSO de mettre fin à TLS.
- Configurez l'équilibreur de charge pour qu'il écoute sur le même port qu'Apigee SSO et qu'il transmette les requêtes aux instances Apigee SSO sur leur port sécurisé (par exemple,
9443).
Installer Apigee SSO dans plusieurs centres de données
Dans un environnement à plusieurs centres de données, vous installez une instance Apigee SSO (via apigee-openldap) dans chaque centre de données.
Une instance SSO gère tout le trafic. Si cette instance tombe en panne, vous pouvez
basculer le trafic vers la deuxième instance SSO.
Avant d'installer Apigee SSO dans deux centres de données, vous avez besoin des éléments suivants :
- L'adresse IP ou le nom de domaine du serveur Postgres maître.
Dans un environnement à plusieurs centres de données, vous installez généralement un serveur Postgres dans chaque centre de données et vous les configurez en mode de réplication maître-veille. Dans cet exemple, le centre de données 1 contient le serveur Postgres maître et le centre de données 2 contient le serveur Postgres veille. Pour en savoir plus, consultez Configurer la réplication primaire-veille pour Postgres.
- Une seule entrée DNS qui pointe vers une instance SSO. Par exemple, vous créez une entrée DNS
au format suivant, qui pointe vers l'instance SSO du centre de données 1 :
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Identifiants de lecteur OpenLDAP synchronisés. Si vous utilisez OpenLDAP interne, vous devez vous assurer que les deux centres de données utilisent exactement le même
SSO_READER_PWou partagent le même fichiersso-reader.keypour éviter la désynchronisation du cluster lors de la configuration.
Lorsque vous configurez Apigee SSO dans chaque centre de données, vous pointez les deux configurations vers le maître Postgres du centre de données 1 :
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432Vous devez également configurer les deux centres de données pour qu'ils utilisent l'entrée DNS partagée comme URL d'émetteur accessible au public. Étant donné que le script setup-sso crée automatiquement l'URL de l'émetteur et ajoute le port, vous devez définir l'URL exacte directement dans /opt/apigee/customer/application/openldap.properties au lieu de /opt/silent.conf pour éviter que le port ne soit ajouté s'il n'est pas requis :
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comGérer le basculement SSO
Si l'instance Apigee SSO (ou son maître Postgres) du centre de données 1 tombe en panne, vous pouvez passer à l'instance SSO du centre de données 2 sans perdre les sessions OAuth actives :
- Convertissez le serveur Postgres veille du centre de données 2 en maître, comme décrit dans Gérer un basculement de base de données PostgreSQL.
- Mettez à jour votre enregistrement DNS pour que
my-sso.domain.compointe vers l'instance SSO du centre de données 2 :my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Mettez à jour votre fichier
/opt/silent.confpour qu'Apigee SSO dans le centre de données 2 pointe vers le nouveau serveur Postgres maître du centre de données 2 :## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - Reconfigurez et redémarrez Apigee SSO dans le centre de données 2 pour mettre à jour sa connexion de manière native :
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf