Installer l'authentification unique Apigee pour la haute disponibilité

Vous pouvez installer plusieurs instances d'Apigee SSO pour assurer la haute disponibilité dans deux scénarios :

  • Dans un environnement de centre de données unique, installez deux instances Apigee SSO pour créer un environnement à haute disponibilité, ce qui signifie que le système continue de fonctionner si l'un des modules Apigee SSO tombe en panne.
  • Dans un environnement comportant deux centres de données, installez l'authentification unique Apigee dans les deux centres de données afin que le système continue de fonctionner si l'un des modules d'authentification unique Apigee tombe en panne.

Installer deux modules Apigee SSO dans le même centre de données

Vous déployez deux instances d'Apigee SSO sur des nœuds différents dans un seul centre de données pour assurer une 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 l'authentification unique Apigee, et non le même serveur Postgres que celui que vous avez installé avec Edge.
  • Les deux instances d'Apigee SSO doivent utiliser la même paire de clés JWT, comme spécifié par les propriétés SSO_JWT_SIGNING_KEY_FILEPATH et SSO_JWT_VERIFICATION_KEY_FILEPATH dans le fichier de configuration. Pour en savoir plus sur la définition de ces propriétés, consultez Installer et configurer l'authentification unique Apigee.
  • Vous avez besoin d'un équilibreur de charge devant les deux instances d'Apigee SSO :
    • L'équilibreur de charge doit accepter l'affinité de cookie générée par l'application, et le cookie de session doit être nommé JSESSIONID.
    • Configurez l'équilibreur de charge pour qu'il effectue une vérification d'état TCP ou HTTP sur Apigee SSO. Pour TCP, utilisez l'URL d'Apigee SSO :
      http_or_https://edge_sso_IP_DNS:9099

      Spécifiez le port défini par l'authentification unique Apigee. Le port 9099 est le port par défaut.

      Pour HTTP, incluez /healthz :

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • Certains paramètres de l'équilibreur de charge dépendent de l'activation ou non du protocole HTTPS sur l'authentification unique Apigee. Pour plus d'informations, consultez les sections suivantes.

Accès HTTP à l'authentification unique Apigee

Si vous utilisez l'accès HTTP à l'authentification unique Apigee, configurez l'équilibreur de charge pour :

  • Utilisez le mode HTTP pour vous connecter à Apigee SSO.
  • Écouter sur le même port qu'Apigee SSO.

    Par défaut, Apigee SSO écoute les requêtes HTTP sur le port 9099. Vous pouvez éventuellement utiliser SSO_TOMCAT_PORT pour définir le port d'authentification unique Apigee. Si vous avez utilisé SSO_TOMCAT_PORT pour modifier le port d'authentification unique Apigee par défaut, assurez-vous que l'équilibreur de charge écoute sur ce port.

Par exemple, sur chaque instance Apigee SSO, vous définissez le port sur 9033 en ajoutant ce qui suit au fichier de configuration :

SSO_TOMCAT_PORT=9033

Vous configurez ensuite l'équilibreur de charge pour qu'il écoute sur le port 9033 et transfère les requêtes vers une instance Edge SSO sur le port 9033. Dans ce scénario, l'URL publique d'Apigee SSO est la suivante :

http://LB_DNS_NAME:9033

Accès HTTPS à l'authentification unique Apigee

Vous pouvez configurer les instances Apigee SSO pour qu'elles utilisent HTTPS. Dans ce scénario, suivez la procédure décrite dans Configurer l'authentification unique Apigee pour l'accès HTTPS. Dans le cadre du processus d'activation de HTTPS, vous définissez SSO_TOMCAT_PROFILE dans le fichier de configuration de l'authentification unique Apigee, comme indiqué ci-dessous :

SSO_TOMCAT_PROFILE=SSL_TERMINATION

Vous pouvez également définir le port utilisé par Apigee SSO pour l'accès HTTPS :

SSO_TOMCAT_PORT=9443

Ensuite, configurez l'équilibreur de charge pour :

  • Utilisez le mode TCP, et non le mode HTTP, pour vous connecter à Apigee SSO.
  • Écoutez sur le même port qu'Apigee SSO, tel que défini par SSO_TOMCAT_PORT.

Vous configurez ensuite l'équilibreur de charge pour qu'il transfère les requêtes vers une instance Apigee SSO sur le port 9433. Dans ce scénario, l'URL publique d'Apigee SSO est la suivante :

https://LB_DNS_NAME:9443

Installer Apigee SSO dans plusieurs centres de données

Dans un environnement à plusieurs centres de données, vous installez une instance Apigee SSO dans chaque centre de données. Une seule instance Apigee SSO gère alors tout le trafic. Si cette instance Apigee SSO tombe en panne, vous pouvez passer à la deuxième instance Apigee SSO.

Avant d'installer l'authentification unique Apigee dans deux centres de données, vous devez disposer des éléments suivants :

  • Adresse IP ou 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-serveur de secours. 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 de secours. Pour en savoir plus, consultez Configurer la réplication maître-serveur de secours pour Postgres.

  • Une seule entrée DNS qui pointe vers une instance Apigee SSO. Par exemple, vous créez une entrée DNS au format ci-dessous qui pointe vers l'instance Apigee SSO du centre de données 1 :
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Les deux instances d'Apigee SSO doivent utiliser la même paire de clés JWT, comme spécifié par les propriétés SSO_JWT_SIGNING_KEY_FILEPATH et SSO_JWT_VERIFICATION_KEY_FILEPATH dans le fichier de configuration. Pour en savoir plus sur la définition de ces propriétés, consultez Installer et configurer l'authentification unique Apigee.

Lorsque vous installez l'authentification unique Apigee dans chaque centre de données, vous configurez les deux pour utiliser le maître Postgres dans le centre de données 1 :

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

Vous configurez également les deux centres de données pour qu'ils utilisent l'entrée DNS comme URL accessible publiquement :

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

Si l'authentification unique Apigee dans le centre de données 1 tombe en panne, vous pouvez passer à l'instance d'authentification unique Apigee dans le centre de données 2 :

  1. Convertissez le serveur de secours Postgres du centre de données 2 en serveur maître, comme décrit dans Gérer un basculement de base de données PostgreSQL.
  2. Mettez à jour l'enregistrement DNS pour faire pointer my-sso.domain.com vers l'instance Apigee SSO dans le centre de données 2 :
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Mettez à jour le fichier de configuration pour l'authentification unique Apigee dans le centre de données 2 afin qu'il pointe vers le nouveau serveur maître Postgres dans le centre de données 2 :
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. Redémarrez l'authentification unique Apigee dans le centre de données 2 pour mettre à jour sa configuration :
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart