Instalowanie logowania jednokrotnego w Apigee dla wysokiej dostępności

Aby zapewnić wysoką dostępność, możesz zainstalować kilka instancji Apigee SSO w 2 scenariuszach:

  • W środowisku z jednym centrum danych zainstaluj 2 instancje Apigee SSO, aby utworzyć środowisko o wysokiej dostępności. Oznacza to, że system będzie działać, nawet jeśli jeden z modułów SSO przestanie działać.
  • W środowisku z 2 centrami danych zainstaluj Apigee SSO w obu centrach danych, aby system działał, nawet jeśli Apigee SSO w jednym z centrów danych przestanie działać.

Instalowanie 2 modułów SSO w Apigee w tym samym centrum danych

Aby zapewnić wysoką dostępność, w jednym centrum danych wdrażasz 2 instancje SSO w Apigee na różnych węzłach apigee-openldap. W tym scenariuszu:

  • Obie instancje SSO w Apigee muszą być połączone z tym samym serwerem Postgres. Apigee zaleca używanie dedykowanego serwera Postgres na potrzeby SSO w Apigee, a nie tego samego serwera Postgres, który został zainstalowany z Edge. Obie instancje muszą korzystać z bazy danych apigee_dex na potrzeby utrwalania stanu.
  • Nie jest wymagana ręczna dystrybucja kluczy JWT: w przeciwieństwie do starszego komponentu UAA zmodernizowany Apigee SSO przechowuje i synchronizuje zestawy kluczy internetowych JSON (JWKS) oraz stan OAuth2 natywnie we współdzielonej bazie danych PostgreSQL. Nie musisz ręcznie kopiować kluczy podpisywania między węzłami.
  • Synchronizacja danych logowania w przypadku wewnętrznego OpenLDAP: jeśli używasz domyślnego wewnętrznego OpenLDAP, Apigee SSO używa dedykowanego konta usługi tylko do odczytu (cn=sso-reader). W przypadku wysokiej dostępności (węzeł 2) administrator musi ustawić ten sam parametr SSO_READER_PW w pliku /opt/silent.conf w obu węzłach lub skopiować plik /opt/apigee/data/apigee-openldap/sso-reader.key z węzła 1 do węzła 2 przed uruchomieniem skryptu setup-sso w węźle 2.

    Aby ręcznie skopiować plik klucza, w węźle 2 wykonaj te polecenia:

    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
  • Przed 2 instancjami SSO w Apigee musisz mieć system równoważenia obciążenia:
    • Skonfiguruj system równoważenia obciążenia tak, aby przeprowadzał kontrolę stanu TCP lub HTTP w SSO. W przypadku protokołu HTTP dodaj /healthz:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      Określ port ustawiony przez SSO w Apigee. Domyślnie jest to port 9099.

    • Niektóre ustawienia systemu równoważenia obciążenia zależą od tego, czy włączono HTTPS w Apigee SSO. Więcej informacji znajdziesz w tych sekcjach.

Dostęp HTTP do Apigee SSO

Jeśli używasz dostępu HTTP do SSO w Apigee, skonfiguruj system równoważenia obciążenia tak, aby:

  • używał trybu HTTP do łączenia się z SSO w Apigee;
  • nasłuchiwał na tym samym porcie co Apigee SSO.

Domyślnie SSO w Apigee nasłuchuje żądań HTTP na porcie 9099. Opcjonalnie możesz użyć SSO_PUBLIC_URL_PORT w pliku /opt/silent.conf, aby ustawić port. Jeśli używasz parametru SSO_PUBLIC_URL_PORT do zmiany portu domyślnego, upewnij się, że system równoważenia obciążenia nasłuchuje na tym porcie.

Na przykład w każdej instancji SSO możesz ustawić port na 9033, dodając do pliku konfiguracyjnego ten wiersz:

SSO_PUBLIC_URL_PORT=9033

Następnie skonfiguruj system równoważenia obciążenia tak, aby nasłuchiwał na porcie 9033 i przekazywał żądania do instancji SSO na porcie 9033. W tym scenariuszu publiczny adres URL wystawcy SSO w Apigee to:

http://LB_DNS_NAME:9033

Dostęp HTTPS do SSO w Apigee

Wysoką dostępność możesz skonfigurować za pomocą protokołu HTTPS w jednym z tych 2 trybów. W obu scenariuszach wykonaj szczegółowe czynności opisane w artykule Konfigurowanie Apigee SSO na potrzeby dostępu HTTPS.

Tryb 1: system równoważenia obciążenia kończy TLS (SSL_PROXY)

Jeśli system równoważenia obciążenia kończy połączenie TLS, musi przekazywać zwykły ruch HTTP do instancji Apigee SSO.

  • W pliku /opt/silent.conf ustaw SSO_PUBLIC_URL_SCHEME=https i SSO_PUBLIC_URL_PORT=443 (lub publiczny port HTTPS systemu równoważenia obciążenia).
  • Skonfiguruj system równoważenia obciążenia tak, aby używał trybu HTTP do łączenia się z instancjami Apigee SSO w backendzie.
  • Skonfiguruj system równoważenia obciążenia tak, aby przekazywał żądania do instancji Apigee SSO na ich lokalnym porcie powiązań HTTP (domyślnie: 9099).

Tryb 2: Apigee SSO kończy TLS (SSL_TERMINATION)

Jeśli chcesz, aby instancje SSO w Apigee bezpośrednio kończyły połączenia TLS, system równoważenia obciążenia musi przekazywać do nich zaszyfrowany ruch.

  • W pliku /opt/silent.conf ustaw SSO_PUBLIC_URL_SCHEME=https i SSO_PUBLIC_URL_PORT=9443 (lub wybrany bezpieczny port).
  • Skonfiguruj system równoważenia obciążenia tak, aby używał trybu TCP (nie trybu HTTP) do łączenia się z backendem, co umożliwi Apigee SSO zakończenie TLS.
  • Skonfiguruj system równoważenia obciążenia tak, aby nasłuchiwał na tym samym porcie co SSO w Apigee i przekazywał żądania do instancji SSO w Apigee na ich bezpiecznym porcie (np. 9443).

Instalowanie Apigee SSO w kilku centrach danych

W środowisku z kilkoma centrami danych instalujesz instancję Apigee SSO (za pomocą apigee-openldap) w każdym centrum danych. Jedna instancja SSO obsługuje cały ruch. Jeśli ta instancja przestanie działać, możesz przełączyć ruch na drugą instancję SSO.

Zanim zainstalujesz Apigee SSO w 2 centrach danych, musisz mieć:

  • Adres IP lub nazwę domeny głównego serwera Postgres.

    W środowisku z kilkoma centrami danych zwykle instalujesz 1 serwer Postgres w każdym centrum danych i konfigurujesz je w trybie replikacji głównej i rezerwowej. W tym przykładzie centrum danych 1 zawiera główny serwer Postgres, a centrum danych 2 – rezerwowy. Więcej informacji znajdziesz w artykule Konfigurowanie replikacji głównej i rezerwowej w Postgres.

  • Pojedynczy wpis DNS wskazujący na jedną instancję SSO. Na przykład możesz utworzyć wpis DNS w tej postaci, który będzie wskazywać na instancję SSO w centrum danych 1:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Zsynchronizowane dane logowania czytnika OpenLDAP. Jeśli używasz wewnętrznego OpenLDAP, musisz się upewnić, że oba centra danych używają dokładnie tego samego parametru SSO_READER_PW lub tego samego pliku sso-reader.key, aby zapobiec desynchronizacji klastra podczas konfiguracji.

Gdy konfigurujesz Apigee SSO w każdym centrum danych, kierujesz obie konfiguracje do głównego serwera Postgres w centrum danych 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

Musisz też skonfigurować oba centra danych tak, aby używały wspólnego wpisu DNS jako publicznie dostępnego adresu URL wystawcy. Ponieważ skrypt setup-sso automatycznie tworzy adres URL wystawcy i dodaje do niego port, musisz ustawić dokładny adres URL bezpośrednio w pliku /opt/apigee/customer/application/openldap.properties zamiast w pliku /opt/silent.conf, aby zapobiec dodawaniu portu, jeśli nie jest on wymagany:

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

Obsługa przełączania awaryjnego SSO

Jeśli instancja Apigee SSO (lub jej główny serwer Postgres) w centrum danych 1 przestanie działać, możesz przełączyć się na instancję SSO w centrum danych 2 bez utraty aktywnych sesji OAuth:

  1. Przekonwertuj serwer rezerwowy Postgres w centrum danych 2 na serwer główny zgodnie z opisem w artykule Obsługa przełączania awaryjnego bazy danych PostgreSQL.
  2. Zaktualizuj rekord DNS tak, aby my-sso.domain.com wskazywał na instancję SSO w centrum danych 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Zaktualizuj plik /opt/silent.conf dla SSO w Apigee w centrum danych 2 tak, aby wskazywał na nowy główny serwer Postgres w centrum danych 2:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. Ponownie skonfiguruj i uruchom ponownie Apigee SSO w centrum danych 2, aby natywnie zaktualizować jego połączenie:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf