Você instala várias instâncias do SSO da Apigee para alta disponibilidade em dois cenários:
- Em um ambiente de data center único, instale duas instâncias do SSO da Apigee para criar um ambiente de alta disponibilidade, o que significa que o sistema continua funcionando se um dos módulos de SSO falhar.
- Em um ambiente com dois data centers, instale o SSO da Apigee nos dois data centers para que o sistema continue funcionando se o SSO da Apigee em um data center falhar.
Instalar dois módulos de SSO da Apigee no mesmo data center
Implante duas instâncias do SSO da Apigee em nós apigee-openldap diferentes em um único data center para oferecer suporte a
alta disponibilidade. Nesse caso:
- As duas instâncias do SSO da Apigee precisam estar conectadas ao mesmo servidor Postgres. A Apigee recomenda
usar um servidor Postgres dedicado para o SSO da Apigee e não o mesmo servidor Postgres que você
instalou com o Edge. As duas instâncias precisam compartilhar o banco de dados
apigee_dexpara persistência de estado. - Nenhuma distribuição manual de chaves JWT é necessária:ao contrário do componente UAA legado, o SSO da Apigee modernizado armazena e sincroniza os conjuntos de chaves da Web JSON (JWKS) e o estado do OAuth2 de forma nativa no banco de dados PostgreSQL compartilhado. Não é necessário copiar manualmente as chaves de assinatura entre os nós.
- Sincronização de credenciais para OpenLDAP interno:se você estiver usando o OpenLDAP interno padrão, o SSO da Apigee usará uma conta de serviço somente leitura dedicada (
cn=sso-reader). Para HA (nó 2), o administrador precisa definir o mesmoSSO_READER_PWem/opt/silent.confnos dois nós ou copiar/opt/apigee/data/apigee-openldap/sso-reader.keydo nó 1 para o nó 2 antes de executarsetup-ssono nó 2.Para copiar manualmente o arquivo de chaves, execute os comandos a seguir no nó 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
- É necessário um balanceador de carga na frente das duas instâncias do SSO da Apigee:
- Configure o balanceador de carga para realizar uma verificação de integridade TCP ou HTTP no SSO. Para HTTP, inclua
/healthz:http_or_https://edge_sso_IP_DNS:9099/healthz
Especifique a porta conforme definida pelo SSO da Apigee. A porta 9099 é a padrão.
- Algumas configurações do balanceador de carga dependem de você ter ativado o HTTPS no SSO da Apigee. Consulte as seções a seguir para mais informações.
- Configure o balanceador de carga para realizar uma verificação de integridade TCP ou HTTP no SSO. Para HTTP, inclua
Acesso HTTP ao SSO da Apigee
Se você estiver usando o acesso HTTP ao SSO da Apigee, configure o balanceador de carga para:
- Usar o modo HTTP para se conectar ao SSO da Apigee.
- Detectar na mesma porta que o SSO da Apigee.
Por padrão, o SSO da Apigee detecta solicitações HTTP na porta 9099. Opcionalmente, você pode usar
SSO_PUBLIC_URL_PORT no arquivo /opt/silent.conf para definir a porta. Se você usou SSO_PUBLIC_URL_PORT
para mudar a porta padrão, verifique se o balanceador de carga detecta nessa
porta.
Por exemplo, em cada instância de SSO, defina a porta como 9033 adicionando o seguinte ao arquivo de configuração:
SSO_PUBLIC_URL_PORT=9033
Em seguida, configure o balanceador de carga para detectar na porta 9033 e encaminhar solicitações para as instâncias de SSO na porta 9033. O URL do emissor público do SSO da Apigee nesse cenário é:
http://LB_DNS_NAME:9033
Acesso HTTPS ao SSO da Apigee
É possível configurar a HA com HTTPS usando um dos dois modos a seguir. Em ambos os casos, siga as etapas de configuração detalhadas em Configurar o SSO da Apigee para acesso HTTPS.
Modo 1: o balanceador de carga encerra o TLS (SSL_PROXY)
Se o balanceador de carga encerrar a conexão TLS, ele precisará encaminhar o tráfego HTTP simples para as instâncias do SSO da Apigee.
- Defina
SSO_PUBLIC_URL_SCHEME=httpseSSO_PUBLIC_URL_PORT=443(ou a porta HTTPS pública do balanceador de carga) no arquivo/opt/silent.conf. - Configure o balanceador de carga para usar o modo HTTP para se conectar às instâncias do SSO da Apigee de back-end.
- Configure o balanceador de carga para encaminhar solicitações para as instâncias do SSO da Apigee na porta de vinculação HTTP local (padrão:
9099).
Modo 2: o SSO da Apigee encerra o TLS (SSL_TERMINATION)
Se você quiser que as instâncias do SSO da Apigee encerrem as conexões TLS diretamente, o balanceador de carga precisará transmitir o tráfego criptografado para elas.
- Defina
SSO_PUBLIC_URL_SCHEME=httpseSSO_PUBLIC_URL_PORT=9443(ou a porta segura escolhida) no arquivo/opt/silent.conf. - Configure o balanceador de carga para usar o modo TCP (não o modo HTTP) para se conectar ao back-end, permitindo que o SSO da Apigee encerre o TLS.
- Configure o balanceador de carga para detectar na mesma porta que o SSO da Apigee e encaminhar solicitações para as instâncias do SSO da Apigee na porta segura (por exemplo,
9443).
Instalar o SSO da Apigee em vários data centers
Em um ambiente de vários data centers, instale uma instância do SSO da Apigee (via apigee-openldap) em cada data center.
Uma instância de SSO processa todo o tráfego. Se essa instância falhar, você poderá
mudar o tráfego para a segunda instância de SSO.
Antes de instalar o SSO da Apigee em dois data centers, você precisa do seguinte:
- O endereço IP ou o nome de domínio do servidor Postgres principal.
Em um ambiente de vários data centers, normalmente você instala um servidor Postgres em cada data center e os configura no modo de replicação principal-standby. Para este exemplo, o data center 1 contém o servidor Postgres principal e o data center 2 contém o standby. Para mais informações, consulte Configurar a replicação principal-standby para o Postgres.
- Uma única entrada de DNS que aponta para uma instância de SSO. Por exemplo, crie uma entrada de DNS
no seguinte formato, que aponta para a instância de SSO no data center 1:
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Credenciais de leitor OpenLDAP sincronizadas. Se você estiver usando o OpenLDAP interno, verifique se os dois data centers usam o mesmo
SSO_READER_PWou compartilham o mesmo arquivosso-reader.keypara evitar a dessincronização do cluster durante a configuração.
Ao configurar o SSO da Apigee em cada data center, você aponta as duas configurações para o Postgres principal no data center 1:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432Você também precisa configurar os dois data centers para usar a entrada de DNS compartilhada como o URL do emissor acessível publicamente. Como o script setup-sso constrói automaticamente o URL do emissor e anexa a porta, defina o URL exato diretamente em /opt/apigee/customer/application/openldap.properties em vez de /opt/silent.conf para evitar que a porta seja anexada se não for necessária:
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comComo processar o failover de SSO
Se a instância do SSO da Apigee (ou o Postgres principal) no data center 1 falhar, você poderá mudar para a instância de SSO no data center 2 sem perder as sessões OAuth ativas:
- Converta o servidor Postgres standby no data center 2 para principal, conforme descrito em Como processar um failover de banco de dados PostgreSQL.
- Atualize o registro DNS para apontar
my-sso.domain.compara a instância de SSO no data center 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Atualize o arquivo
/opt/silent.confpara o SSO da Apigee no data center 2 para apontar para o novo servidor Postgres principal no data center 2:## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - Reconfigure e reinicie o SSO da Apigee no data center 2 para atualizar a conexão de forma nativa:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf