Installa più istanze di SSO Apigee per l'alta affidabilità in due scenari:
- In un ambiente con un singolo data center, installa due istanze di SSO Apigee per creare un ambiente ad alta affidabilità, il che significa che il sistema continua a funzionare se uno dei moduli SSO non è disponibile.
- In un ambiente con due data center, installa SSO Apigee in entrambi i data center in modo che il sistema continui a funzionare se SSO Apigee in un data center non è disponibile.
Installare due moduli SSO Apigee nello stesso data center
Per supportare
la disponibilità elevata, esegui il deployment di due istanze di Apigee SSO su nodi apigee-openldap diversi in un singolo data center. In questo scenario:
- Entrambe le istanze di SSO Apigee devono essere connesse allo stesso server Postgres. Apigee consiglia di utilizzare un server Postgres dedicato per SSO Apigee e non lo stesso server Postgres installato con Edge. Entrambe le istanze devono condividere il database
apigee_dexper la persistenza dello stato. - Non è richiesta la distribuzione manuale delle chiavi JWT: a differenza del componente UAA legacy, Apigee SSO modernizzato archivia e sincronizza i set di chiavi web JSON (JWKS) e lo stato OAuth2 in modo nativo nel database PostgreSQL condiviso. Non è necessario copiare manualmente le chiavi di firma tra i nodi.
- Sincronizzazione delle credenziali per OpenLDAP interno: se utilizzi OpenLDAP interno predefinito, SSO Apigee utilizza un account di servizio di sola lettura dedicato (
cn=sso-reader). Per la disponibilità elevata (nodo 2), l'amministratore deve impostare lo stessoSSO_READER_PWin/opt/silent.confsu entrambi i nodi oppure copiare/opt/apigee/data/apigee-openldap/sso-reader.keydal nodo 1 al nodo 2 prima di eseguiresetup-ssosul nodo 2.Per copiare manualmente il file di chiavi, esegui i seguenti comandi sul nodo 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
- È necessario un bilanciatore del carico davanti alle due istanze di SSO Apigee:
- Configura il bilanciatore del carico in modo che esegua un controllo di integrità TCP o HTTP su SSO. Per HTTP, includi
/healthz:http_or_https://edge_sso_IP_DNS:9099/healthz
Specifica la porta impostata da SSO Apigee. La porta 9099 è quella predefinita.
- Alcune impostazioni del bilanciatore del carico dipendono dal fatto che tu abbia attivato HTTPS su SSO Apigee. Per ulteriori informazioni, vedi le sezioni successive.
- Configura il bilanciatore del carico in modo che esegua un controllo di integrità TCP o HTTP su SSO. Per HTTP, includi
Accesso HTTP a SSO Apigee
Se utilizzi l'accesso HTTP a SSO Apigee, configura il bilanciatore del carico in modo che:
- Utilizza la modalità HTTP per connettersi a SSO Apigee.
- Rimani in ascolto sulla stessa porta di SSO Apigee.
Per impostazione predefinita, SSO Apigee rimane in ascolto delle richieste HTTP sulla porta 9099. Facoltativamente, puoi utilizzare
SSO_PUBLIC_URL_PORT nel file /opt/silent.conf per impostare la porta. Se hai utilizzato SSO_PUBLIC_URL_PORT
per modificare la porta predefinita, assicurati che il bilanciatore del carico rimanga in ascolto su quella
porta.
Ad esempio, su ogni istanza SSO imposta la porta su 9033 aggiungendo quanto segue al file di configurazione:
SSO_PUBLIC_URL_PORT=9033
Poi configura il bilanciatore del carico in modo che rimanga in ascolto sulla porta 9033 e inoltri le richieste alle istanze SSO sulla porta 9033. L'URL dell'emittente pubblico di SSO Apigee in questo scenario è:
http://LB_DNS_NAME:9033
Accesso HTTPS ad Apigee SSO
Puoi configurare la disponibilità elevata con HTTPS utilizzando una delle due modalità seguenti. In entrambi gli scenari, segui i passaggi di configurazione dettagliati descritti in Configurare SSO Apigee per l'accesso HTTPS.
Modalità 1: il bilanciatore del carico termina TLS (SSL_PROXY)
Se il bilanciatore del carico chiude la connessione TLS, deve inoltrare il traffico HTTP non criptato alle istanze SSO Apigee.
- Imposta
SSO_PUBLIC_URL_SCHEME=httpseSSO_PUBLIC_URL_PORT=443(o la porta HTTPS pubblica del bilanciatore del carico) nel file/opt/silent.conf. - Configura il bilanciatore del carico in modo che utilizzi la modalità HTTP per connettersi alle istanze SSO Apigee di backend.
- Configura il bilanciatore del carico in modo che inoltri le richieste alle istanze SSO Apigee sulla porta di binding HTTP locale (impostazione predefinita:
9099).
Modalità 2: SSO Apigee termina TLS (SSL_TERMINATION)
Se vuoi che le istanze SSO Apigee terminino direttamente le connessioni TLS, il bilanciatore del carico deve trasmettere loro il traffico crittografato.
- Imposta
SSO_PUBLIC_URL_SCHEME=httpseSSO_PUBLIC_URL_PORT=9443(o la porta sicura che hai scelto) nel file/opt/silent.conf. - Configura il bilanciatore del carico in modo che utilizzi la modalità TCP (non la modalità HTTP) per connettersi al backend, consentendo a SSO Apigee di terminare TLS.
- Configura il bilanciatore del carico in modo che rimanga in ascolto sulla stessa porta di SSO Apigee e inoltri le richieste alle istanze SSO Apigee sulla porta sicura (ad esempio,
9443).
Installare SSO Apigee in più data center
In un ambiente con più data center, installa un'istanza Apigee SSO (tramite apigee-openldap) in ogni data center.
Un'istanza SSO gestisce tutto il traffico. Se l'istanza non è disponibile, puoi
passare il traffico alla seconda istanza SSO.
Prima di installare SSO Apigee in due data center, devi avere:
- L'indirizzo IP o il nome di dominio del server Postgres principale.
In un ambiente con più data center, in genere installi un server Postgres in ogni data center e li configuri in modalità di replica principale-secondaria. In questo esempio, il data center 1 contiene il server Postgres principale e il data center 2 contiene il server secondario. Per ulteriori informazioni, vedi Configurare la replica principale-secondaria per Postgres.
- Una singola voce DNS che punta a un'istanza SSO. Ad esempio, puoi creare una voce DNS
nel seguente formato, che punta all'istanza SSO nel data center 1:
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Credenziali del lettore OpenLDAP sincronizzate. Se utilizzi OpenLDAP interno, devi assicurarti che entrambi i data center utilizzino esattamente lo stesso
SSO_READER_PWo condividano lo stesso filesso-reader.keyper evitare la desincronizzazione del cluster durante la configurazione.
Quando configuri Apigee SSO in ogni data center, punta entrambe le configurazioni al server Postgres principale nel data center 1:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432Devi anche configurare entrambi i data center in modo che utilizzino la voce DNS condivisa come URL dell'emittente accessibile pubblicamente. Poiché lo script setup-sso crea automaticamente l'URL dell'emittente e aggiunge la porta, devi impostare l'URL esatto direttamente in /opt/apigee/customer/application/openldap.properties anziché in /opt/silent.conf per evitare che la porta venga aggiunta se non è necessaria:
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comGestire il failover SSO
Se l'istanza Apigee SSO (o il server Postgres principale) nel data center 1 non è disponibile, puoi passare all'istanza SSO nel data center 2 senza perdere le sessioni OAuth attive:
- Converti il server Postgres secondario nel data center 2 in server principale come descritto in Gestire un failover del database PostgreSQL.
- Aggiorna il record DNS in modo che
my-sso.domain.compunti all'istanza SSO nel data center 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Aggiorna il file
/opt/silent.confper Apigee SSO nel data center 2 in modo che punti al nuovo server Postgres principale nel data center 2:## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - Riconfigura e riavvia SSO Apigee nel data center 2 per aggiornare la connessione in modo nativo:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf