Apigee-SSO für Hochverfügbarkeit installieren

Sie installieren mehrere Instanzen von Apigee SSO für Hochverfügbarkeit in zwei Szenarien:

  • In einer Umgebung mit einem einzelnen Rechenzentrum installieren Sie zwei Apigee SSO-Instanzen, um eine Umgebung mit Hoch verfügbarkeit zu erstellen. Das bedeutet, dass das System weiter funktioniert, wenn eines der SSO -Module ausfällt.
  • In einer Umgebung mit zwei Rechenzentren installieren Sie Apigee SSO in beiden Rechenzentren, damit das System weiter funktioniert, wenn Apigee SSO in einem Rechenzentrum ausfällt.

Zwei Apigee SSO-Module im selben Rechenzentrum installieren

Sie stellen zwei Instanzen von Apigee SSO auf verschiedenen apigee-openldap-Knoten in einem einzelnen Rechenzentrum bereit, um Hochverfügbarkeit zu unterstützen. Für dieses Beispiel gilt:

  • Beide Instanzen von Apigee SSO müssen mit demselben Postgres-Server verbunden sein. Apigee empfiehlt, einen dedizierten Postgres-Server für Apigee SSO zu verwenden und nicht denselben Postgres-Server, den Sie mit Edge installiert haben. Beide Instanzen müssen die apigee_dex-Datenbank für die Statuspersistenz gemeinsam nutzen.
  • Keine manuelle JWT-Schlüsselverteilung erforderlich:Im Gegensatz zur Legacy-UAA-Komponente speichert und synchronisiert das modernisierte Apigee SSO seine JSON Web Key Sets (JWKS) und den OAuth2-Status nativ in der gemeinsam genutzten PostgreSQL-Datenbank. Sie müssen Signaturschlüssel nicht manuell zwischen Knoten kopieren.
  • Synchronisierung von Anmeldedaten für internes OpenLDAP:Wenn Sie das standardmäßige interne OpenLDAP verwenden, verwendet Apigee-SSO ein dediziertes Dienstkonto mit Lesezugriff (cn=sso-reader). Für HA (Knoten 2) muss der Administrator entweder dasselbe SSO_READER_PW in /opt/silent.conf auf beiden Knoten festlegen oder /opt/apigee/data/apigee-openldap/sso-reader.key von Knoten 1 nach Knoten 2 kopieren, bevor setup-sso auf Knoten 2 ausgeführt wird.

    Führen Sie die folgenden Befehle auf Knoten 2 aus, um die Schlüsseldatei manuell zu kopieren:

    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
  • Sie benötigen einen Load-Balancer vor den beiden Instanzen von Apigee SSO:
    • Konfigurieren Sie den Load-Balancer so, dass er eine TCP- oder HTTP-Systemdiagnose für SSO ausführt. Fügen Sie für HTTP /healthz ein:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      Geben Sie den Port so an, wie er von Apigee SSO festgelegt wurde. Port 9099 ist der Standardport.

    • Einige Load-Balancer-Einstellungen hängen davon ab, ob Sie HTTPS für Apigee SSO aktiviert haben. Weitere Informationen finden Sie in den folgenden Abschnitten.

HTTP-Zugriff auf Apigee SSO

Wenn Sie HTTP-Zugriff auf Apigee SSO verwenden, konfigurieren Sie den Load-Balancer so, dass er:

  • den HTTP-Modus verwendet, um eine Verbindung zu Apigee SSO herzustellen.
  • denselben Port wie Apigee SSO überwacht.

Standardmäßig überwacht Apigee SSO HTTP-Anfragen auf Port 9099. Optional können Sie den Port in der Datei /opt/silent.conf mit SSO_PUBLIC_URL_PORT festlegen. Wenn Sie SSO_PUBLIC_URL_PORT verwendet haben, um den Port vom Standardwert zu ändern, muss der Load-Balancer diesen Port überwachen.

Legen Sie beispielsweise auf jeder SSO-Instanz den Port auf 9033 fest, indem Sie der Konfigurationsdatei Folgendes hinzufügen:

SSO_PUBLIC_URL_PORT=9033

Anschließend konfigurieren Sie den Load-Balancer so, dass er Port 9033 überwacht und Anfragen an die SSO Instanzen auf Port 9033 weiterleitet. Die öffentliche Aussteller-URL von Apigee SSO in diesem Szenario ist:

http://LB_DNS_NAME:9033

HTTPS-Zugriff auf Apigee SSO

Sie können HA mit HTTPS in einem der folgenden beiden Modi konfigurieren. Folgen Sie in beiden Szenarien der detaillierten Einrichtungsanleitung unter Apigee SSO für HTTPS-Zugriff konfigurieren.

Modus 1: Load-Balancer beendet TLS (SSL_PROXY)

Wenn Ihr Load-Balancer die TLS-Verbindung beendet, muss er unverschlüsselten HTTP-Traffic an die Apigee SSO-Instanzen weiterleiten.

  • Legen Sie in der Datei /opt/silent.conf SSO_PUBLIC_URL_SCHEME=https und SSO_PUBLIC_URL_PORT=443 (oder den öffentlichen HTTPS-Port Ihres Load-Balancers) fest.
  • Konfigurieren Sie den Load-Balancer so, dass er den HTTP-Modus verwendet, um eine Verbindung zu den Back-End-Apigee SSO-Instanzen herzustellen.
  • Konfigurieren Sie den Load-Balancer so, dass er Anfragen an die Apigee SSO-Instanzen auf ihrem lokalen HTTP-Bindungsport weiterleitet (Standard: 9099).

Modus 2: Apigee SSO beendet TLS (SSL_TERMINATION)

Wenn die Apigee SSO-Instanzen die TLS-Verbindungen direkt beenden sollen, muss der Load-Balancer den verschlüsselten Traffic an sie weiterleiten.

  • Legen Sie in der Datei /opt/silent.conf SSO_PUBLIC_URL_SCHEME=https und SSO_PUBLIC_URL_PORT=9443 (oder den von Ihnen ausgewählten sicheren Port) fest.
  • Konfigurieren Sie den Load-Balancer so, dass er den TCP-Modus (nicht den HTTP-Modus) verwendet, um eine Verbindung zum Back-End herzustellen, damit Apigee SSO TLS beenden kann.
  • Konfigurieren Sie den Load-Balancer so, dass er denselben Port wie Apigee SSO überwacht und Anfragen an die Apigee SSO-Instanzen auf ihrem sicheren Port weiterleitet (z. B. 9443).

Apigee SSO in mehreren Rechenzentren installieren

In einer Umgebung mit mehreren Rechenzentren installieren Sie in jedem Rechenzentrum eine Apigee SSO-Instanz (über apigee-openldap). Eine SSO-Instanz verarbeitet den gesamten Traffic. Wenn diese Instanz ausfällt, können Sie den Traffic an die zweite SSO-Instanz weiterleiten.

Bevor Sie Apigee SSO in zwei Rechenzentren installieren, benötigen Sie Folgendes:

  • Die IP-Adresse oder den Domainnamen des Master-Postgres-Servers.

    In einer Umgebung mit mehreren Rechenzentren installieren Sie in der Regel einen Postgres-Server in jedem Rechen zentrum und konfigurieren sie im Master-Standby-Replikationsmodus. In diesem Beispiel enthält Rechenzentrum 1 den Master -Postgres-Server und Rechenzentrum 2 den Standby -Postgres-Server. Weitere Informationen finden Sie unter Primär-Standby-Replikation für Postgres einrichten.

  • Ein einzelner DNS-Eintrag, der auf eine SSO-Instanz verweist. Erstellen Sie beispielsweise einen DNS -Eintrag im folgenden Format, der auf die SSO-Instanz in Rechenzentrum 1 verweist:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Synchronisierte OpenLDAP-Leseberechtigungen. Wenn Sie das interne OpenLDAP verwenden, müssen Sie darauf achten, dass in beiden Rechenzentren genau dasselbe SSO_READER_PW verwendet wird oder dieselbe sso-reader.key-Datei gemeinsam genutzt wird, um eine Desynchronisierung des Clusters während der Einrichtung zu verhindern.

Wenn Sie Apigee SSO in jedem Rechenzentrum konfigurieren, verweisen Sie beide Konfigurationen auf den Postgres-Master in Rechenzentrum 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

Sie müssen außerdem beide Rechenzentren so konfigurieren, dass sie den gemeinsam genutzten DNS-Eintrag als öffentlich zugängliche Aussteller-URL verwenden. Da das Skript setup-sso die Aussteller-URL automatisch erstellt und den Port anhängt, müssen Sie die genaue URL direkt in /opt/apigee/customer/application/openldap.properties anstelle von /opt/silent.conf festlegen, um zu verhindern, dass der Port angehängt wird, wenn er nicht erforderlich ist:

# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.com

SSO-Failover verarbeiten

Wenn die Apigee SSO-Instanz (oder ihr Postgres-Master) in Rechenzentrum 1 ausfällt, können Sie zur SSO-Instanz in Rechen zentrum 2 wechseln, ohne aktive OAuth-Sitzungen zu verlieren:

  1. Konvertieren Sie den Postgres-Standby-Server in Rechenzentrum 2 in einen Master, wie unter Failover einer PostgreSQL-Datenbank verarbeiten beschrieben.
  2. Aktualisieren Sie Ihren DNS-Eintrag, sodass my-sso.domain.com auf die SSO-Instanz in Rechenzentrum 2 verweist:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Aktualisieren Sie die Datei /opt/silent.conf für Apigee SSO in Rechenzentrum 2, sodass sie auf den neuen Postgres-Master Server in Rechenzentrum 2 verweist:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. Konfigurieren Sie Apigee SSO in Rechenzentrum 2 neu und starten Sie es neu, um die Verbindung nativ zu aktualisieren:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf