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_dexna 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 parametrSSO_READER_PWw pliku/opt/silent.confw obu węzłach lub skopiować plik/opt/apigee/data/apigee-openldap/sso-reader.keyz węzła 1 do węzła 2 przed uruchomieniem skryptusetup-ssow 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.
- Skonfiguruj system równoważenia obciążenia tak, aby przeprowadzał kontrolę stanu TCP lub HTTP w SSO. W przypadku protokołu HTTP dodaj
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.confustawSSO_PUBLIC_URL_SCHEME=httpsiSSO_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.confustawSSO_PUBLIC_URL_SCHEME=httpsiSSO_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_PWlub tego samego plikusso-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=5432Musisz 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.comObsł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:
- 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.
- Zaktualizuj rekord DNS tak, aby
my-sso.domain.comwskazywał na instancję SSO w centrum danych 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Zaktualizuj plik
/opt/silent.confdla 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 - 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