Вы можете установить несколько экземпляров Apigee SSO для обеспечения высокой доступности в двух сценариях:
- В среде с одним центром обработки данных установите два экземпляра Apigee SSO, чтобы обеспечить высокую доступность. Это означает, что система продолжит работать, если один из модулей SSO выйдет из строя.
- В среде с двумя центрами обработки данных установите Apigee SSO в обоих центрах, чтобы система продолжала работать, если Apigee SSO в одном из центров выйдет из строя.
Установите два модуля Apigee SSO в одном центре обработки данных.
Вы развертываете два экземпляра Apigee SSO на разных узлах apigee-openldap в одном центре обработки данных, чтобы обеспечить высокую доступность. В этом случае:
- Оба экземпляра Apigee SSO должны быть подключены к одному и тому же серверу Postgres. Apigee рекомендует использовать выделенный сервер Postgres для системы единого входа Apigee, а не тот же сервер Postgres, который вы установили с Edge. Оба экземпляра должны использовать одну и ту же базу данных
apigee_dexдля сохранения состояния. - Не требуется распространять ключи JWT вручную. В отличие от устаревшего компонента UAA, модернизированный Apigee SSO хранит и синхронизирует наборы веб-ключей JSON (JWKS) и состояние OAuth2 в общей базе данных PostgreSQL. Вам не нужно вручную копировать ключи подписи между узлами.
- Синхронизация учетных данных для внутреннего сервера OpenLDAP. Если вы используете внутренний сервер OpenLDAP по умолчанию, система единого входа Apigee использует специальный сервисный аккаунт только для чтения (
cn=sso-reader). Для высокой доступности (узел 2) администратор должен либо задать одинаковое значениеSSO_READER_PWв/opt/silent.confна обоих узлах, либо скопировать/opt/apigee/data/apigee-openldap/sso-reader.keyс узла 1 на узел 2 перед запускомsetup-ssoна узле 2.Чтобы вручную скопировать файл ключа, выполните следующие команды на узле 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
- Перед двумя экземплярами Apigee SSO необходимо установить балансировщик нагрузки:
- Настройте балансировщик нагрузки для выполнения проверки состояния TCP или HTTP в SSO. Для HTTP добавьте
/healthz:http_or_https://edge_sso_IP_DNS:9099/healthz
Укажите порт, заданный Apigee SSO. Порт по умолчанию – 9099.
- Некоторые настройки балансировщика нагрузки зависят от того, включен ли протокол HTTPS в Apigee SSO. Подробную информацию вы найдете в разделах ниже.
- Настройте балансировщик нагрузки для выполнения проверки состояния TCP или HTTP в SSO. Для HTTP добавьте
Доступ по HTTP к системе единого входа Apigee
Если вы используете доступ по HTTP к системе единого входа Apigee, настройте балансировщик нагрузки следующим образом:
- Используйте режим HTTP для подключения к системе единого входа Apigee.
- Прослушивать тот же порт, что и Apigee SSO.
По умолчанию Apigee SSO принимает HTTP-запросы на порту 9099. При необходимости вы можете использовать SSO_PUBLIC_URL_PORT в файле /opt/silent.conf, чтобы задать порт. Если вы использовали SSO_PUBLIC_URL_PORT, чтобы изменить порт по умолчанию, убедитесь, что балансировщик нагрузки прослушивает этот порт.
Например, в каждом экземпляре SSO можно задать порт 9033, добавив в файл конфигурации следующие строки:
SSO_PUBLIC_URL_PORT=9033
Затем вы настраиваете балансировщик нагрузки на прослушивание порта 9033 и переадресацию запросов на экземпляры SSO на порт 9033. Общедоступный URL поставщика системы единого входа Apigee в этом сценарии:
http://LB_DNS_NAME:9033
Доступ к Apigee SSO по протоколу HTTPS
Вы можете настроить высокую доступность с HTTPS, используя один из двух режимов. В обоих случаях следуйте подробным инструкциям по настройке в статье Как настроить систему единого входа Apigee для доступа по HTTPS.
Режим 1. Балансировщик нагрузки завершает TLS (SSL_PROXY)
Если балансировщик нагрузки прерывает TLS-соединение, он должен перенаправлять обычный HTTP-трафик на экземпляры Apigee SSO.
- Укажите
SSO_PUBLIC_URL_SCHEME=httpsиSSO_PUBLIC_URL_PORT=443(или общедоступный порт HTTPS балансировщика нагрузки) в файле/opt/silent.conf. - Настройте балансировщик нагрузки для использования режима HTTP для подключения к внутренним экземплярам системы единого входа Apigee.
- Настройте балансировщик нагрузки для переадресации запросов к экземплярам системы единого входа Apigee на их локальный порт привязки HTTP (по умолчанию
9099).
Режим 2: Apigee SSO завершает TLS (SSL_TERMINATION)
Если вы хотите, чтобы экземпляры Apigee SSO завершали TLS-подключения напрямую, балансировщик нагрузки должен передавать им зашифрованный трафик.
- Укажите порты
SSO_PUBLIC_URL_SCHEME=httpsиSSO_PUBLIC_URL_PORT=9443(или другие безопасные порты) в файле/opt/silent.conf. - Настройте балансировщик нагрузки на использование режима TCP (не HTTP) для подключения к серверной части, чтобы Apigee SSO мог завершить TLS.
- Настройте балансировщик нагрузки на прослушивание того же порта, что и система единого входа Apigee, и переадресацию запросов на экземпляры системы единого входа Apigee через их защищенный порт (например,
9443).
Как установить Apigee SSO в нескольких центрах обработки данных
В среде с несколькими центрами обработки данных вы устанавливаете экземпляр системы единого входа Apigee (через apigee-openldap) в каждом центре обработки данных.
Один экземпляр системы единого входа обрабатывает весь трафик. Если этот экземпляр выйдет из строя, вы сможете перенаправить трафик на второй экземпляр системы единого входа.
Прежде чем устанавливать Apigee SSO в двух центрах обработки данных, вам потребуется следующее:
- IP-адрес или доменное имя основного сервера Postgres.
В среде с несколькими центрами обработки данных обычно устанавливается по одному серверу Postgres в каждом центре обработки данных и настраивается режим репликации Master-Standby. В этом примере центр обработки данных 1 содержит основной сервер Postgres, а центр обработки данных 2 – резервный. Подробнее о том, как настроить репликацию основного и резервного серверов для Postgres…
- Одна запись DNS, указывающая на один экземпляр системы единого входа. Например, вы создаете запись DNS в следующей форме, которая указывает на экземпляр системы единого входа в центре обработки данных 1:
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Синхронизированные учетные данные OpenLDAP Reader. Если вы используете внутренний OpenLDAP, убедитесь, что оба центра обработки данных используют одинаковые значения
SSO_READER_PWили один и тот же файлsso-reader.key, чтобы предотвратить рассинхронизацию кластера во время настройки.
При настройке Apigee SSO в каждом центре обработки данных вы указываете обе конфигурации на Postgres Master в центре обработки данных 1:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432Вам также необходимо настроить оба центра обработки данных так, чтобы они использовали общую запись DNS в качестве общедоступного URL эмитента. Поскольку скрипт setup-sso автоматически создает URL издателя и добавляет порт, вам нужно указать точный URL непосредственно в /opt/apigee/customer/application/openldap.properties, а не в /opt/silent.conf, чтобы порт не добавлялся, если он не требуется:
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comКак обрабатывать отработку отказа системы единого входа
Если экземпляр системы единого входа Apigee (или его мастер-сервер Postgres) в центре обработки данных 1 выйдет из строя, вы можете переключиться на экземпляр системы единого входа в центре обработки данных 2 без потери активных сеансов OAuth:
- Преобразуйте резервный сервер Postgres в центре обработки данных 2 в основной, как описано в разделе Обработка отказа базы данных PostgreSQL.
- Обновите запись DNS, чтобы указать
my-sso.domain.comдля экземпляра системы единого входа в центре обработки данных 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- Обновите файл
/opt/silent.confдля системы единого входа Apigee в центре обработки данных 2, чтобы он указывал на новый главный сервер Postgres в центре обработки данных 2:## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - Перенастройте и перезапустите Apigee SSO в центре обработки данных 2, чтобы обновить его подключение:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf