Как настроить Apigee SSO для доступа по протоколу HTTPS

В статье Установка и настройка Apigee SSO рассказывается, как установить и настроить модуль Apigee SSO для использования HTTP на порту 9099, как указано в следующем свойстве в файле конфигурации Edge:

SSO_TOMCAT_PROFILE=DEFAULT

Вы также можете задать для параметра SSO_TOMCAT_PROFILE одно из следующих значений, чтобы включить доступ по протоколу HTTPS:

  • SSL_PROXY: Настраивает модуль Apigee SSO apigee-sso в режиме прокси-сервера. Это означает, что вы установили балансировщик нагрузки перед apigee-sso и завершили TLS на балансировщике нагрузки. Затем укажите порт, используемый на apigee-sso для запросов от балансировщика нагрузки.
  • SSL_TERMINATION: включен доступ по протоколу TLS к apigee-sso через выбранный вами порт. Для этого режима необходимо указать хранилище ключей, содержащее сертификат, подписанный центром сертификации. Самозаверяющий сертификат использовать нельзя.

Вы можете включить HTTPS при первоначальной установке и настройке apigee-sso или позже.

Если включить доступ к apigee-sso по протоколу HTTPS в любом из режимов, доступ по протоколу HTTP будет отключен. То есть вы не можете одновременно использовать HTTP и HTTPS для доступа к apigee-sso.

Как включить режим SSL_PROXY

В режиме SSL_PROXY система использует балансировщик нагрузки перед модулем Apigee SSO и завершает TLS на балансировщике нагрузки. На рисунке ниже балансировщик нагрузки завершает TLS на порту 443, а затем пересылает запросы в модуль Apigee SSO на порту 9099:

В этой конфигурации вы доверяете подключению от балансировщика нагрузки к модулю Apigee SSO, поэтому использовать TLS для этого подключения не нужно. Однако внешние объекты, такие как поставщик идентификационной информации, теперь должны получать доступ к модулю Apigee SSO через порт 443, а не через незащищенный порт 9099.

Модуль Apigee SSO настраивается в режиме SSL_PROXY, поскольку он автоматически генерирует URL переадресации, которые используются внешним поставщиком идентификационной информации в процессе аутентификации. Поэтому URL переадресации должны содержать внешний номер порта балансировщика нагрузки (в этом примере – 443), а не внутренний порт модуля Apigee SSO (9099).

Чтобы настроить модуль Apigee SSO для режима SSL_PROXY:

  1. Добавьте в файл конфигурации следующие настройки:
    # Enable SSL_PROXY mode.
    SSO_TOMCAT_PROFILE=SSL_PROXY
    
    # Specify the apigee-sso port, typically between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9099
    
    # Specify the port number on the load balancer for terminating TLS.
    # This port number is necessary for apigee-sso to auto-generate redirect URLs.
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Настройте модуль Apigee SSO:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Обновите конфигурацию поставщика идентификационной информации, чтобы он отправлял HTTPS-запрос на порт 443 балансировщика нагрузки для доступа к Apigee SSO. Дополнительную информацию можно найти в следующих статьях:
  4. Чтобы обновить конфигурацию интерфейса Edge для HTTPS, задайте следующие свойства в файле конфигурации:
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https

    Затем обновите интерфейс Edge:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile

    Используйте компонент edge-ui для классического интерфейса.

  5. Если вы установили портал Apigee Developer Services (или просто портал), обновите его, чтобы использовать HTTPS для доступа к Apigee SSO. Подробнее о том, как настроить портал для использования внешних поставщиков идентификационной информации…

Подробнее о том, как включить внешний поставщик идентификационной информации в интерфейсе Edge…

Как включить режим SSL_TERMINATION

Для режима SSL_TERMINATION необходимо:

  • Сгенерируйте сертификат и ключ TLS и сохраните их в файле хранилища ключей. Нельзя использовать самозаверяющий сертификат. Вам нужно создать сертификат в центре сертификации.
  • Как изменить настройки конфигурации для apigee-sso.

Чтобы создать файл хранилища ключей на основе сертификата и ключа:

  1. Создайте каталог для файла JKS:
    sudo mkdir -p /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  2. Перейдите в новый каталог:
    cd /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  3. Создайте JKS-файл, содержащий сертификат и ключ. В этом режиме необходимо указать хранилище ключей, содержащее сертификат, подписанный центром сертификации. Самозаверяющий сертификат использовать нельзя. Пример создания файла JKS можно найти в статье Настройка TLS/SSL для Edge On Premises.
  4. Сделайте файл JKS принадлежащим пользователю apigee:
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

Чтобы настроить модуль Apigee SSO, выполните следующие действия:

  1. Добавьте в файл конфигурации следующие настройки:
    # Enable SSL_TERMINATION mode.
    SSO_TOMCAT_PROFILE=SSL_TERMINATION
    
    # Specify the path to the keystore file.
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    
    SSO_TOMCAT_KEYSTORE_ALIAS=sso
    
    # The password specified when you created the keystore.
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword
    
    # Specify the HTTPS port number between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9443
    SSO_PUBLIC_URL_PORT=9443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Настройте модуль Apigee SSO:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Обновите конфигурацию поставщика идентификационной информации, чтобы он отправлял HTTPS-запрос на порт 9443 балансировщика нагрузки для доступа к Apigee SSO. Убедитесь, что этот порт не используется другим сервисом.

    Дополнительную информацию можно найти в следующих источниках:

  4. Чтобы настроить интерфейс Edge для HTTPS, задайте следующие свойства:
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https
  5. Если вы установили портал Developer Services, обновите его, чтобы для доступа к Apigee SSO использовался протокол HTTPS. Подробнее о том, как настроить портал для использования внешних поставщиков идентификационной информации…

Настройте SSO_TOMCAT_PROXY_PORT при использовании режима SSL_TERMINATION

Перед модулем Apigee SSO может быть балансировщик нагрузки, который завершает TLS на балансировщике нагрузки, но также включает TLS между балансировщиком нагрузки и Apigee SSO. На рисунке выше для режима SSL_PROXY это означает, что подключение от балансировщика нагрузки к Apigee SSO использует TLS.

В этом случае вы настраиваете TLS в Apigee SSO так же, как описано выше для режима SSL_TERMINATION. Однако если балансировщик нагрузки использует для TLS номер порта, отличный от того, который используется Apigee SSO, то в файле конфигурации необходимо также указать свойство SSO_TOMCAT_PROXY_PORT. Пример:

  • Балансировщик нагрузки завершает TLS на порту 443.
  • Apigee SSO завершает TLS на порту 9443

Убедитесь, что в файле конфигурации есть следующая настройка:

# Specify the port number on the load balancer for terminating TLS.
# This port number is necessary for apigee-sso to generate redirect URLs.
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

Настройте поставщика идентификационной информации и интерфейс Edge так, чтобы они отправляли HTTPS-запросы через порт 443.