Как настроить apigee-sso для доступа по протоколу HTTPS

Edge for Private Cloud v4.18.01

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

SSO_TOMCAT_PROFILE=DEFAULT

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

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

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

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

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

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

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

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

Примечание. Вам не нужно создавать сертификат TLS и ключ для режима SSL_PROXY, поскольку подключение от балансировщика нагрузки к модулю SSO Edge использует HTTP.

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

  1. Добавьте в файл конфигурации следующие настройки:
    # Включить режим SSL_PROXY.
    SSO_TOMCAT_PROFILE=SSL_PROXY

    # Укажите порт apigee-sso, обычно от 1025 до 65535.
    # Обычно для портов 1024 и ниже требуется доступ к корневому каталогу, предоставляемый apigee-sso.
    # Значение по умолчанию – 9099.
    SSO_TOMCAT_PORT=9099

    # Укажите номер порта на балансировщике нагрузки для завершения TLS.
    # Этот номер порта необходим для того, чтобы apigee-sso автоматически генерировал URL переадресации.
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443

    # Установите для apigee-sso схему открытого доступа https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Настройте модуль SSO Edge:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Обновите конфигурацию поставщика идентификационной информации, чтобы он отправлял запрос HTTPS на порт 443 балансировщика нагрузки для доступа к Edge SSO. Подробнее о том, как настроить поставщика идентификационной информации SAML…
  4. Чтобы настроить HTTPS в интерфейсе Edge, задайте следующие свойства:
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https


    Подробнее о том, как включить SAML в интерфейсе Edge…
  5. Если вы установили портал Developer Services или API BaaS, обновите их, чтобы использовать HTTPS для доступа к Ede SSO. Дополнительная информация:

Как включить режим 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

Чтобы настроить модуль SSO Edge:

  1. Добавьте в файл конфигурации следующие настройки:
    # Включите режим SSL_TERMINATION.
    SSO_TOMCAT_PROFILE=SSL_TERMINATION

    # Укажите путь к файлу хранилища ключей.
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    SSO_TOMCAT_KEYSTORE_ALIAS=sso

    # Пароль, указанный при создании хранилища ключей.
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword

    # Укажите номер порта HTTPS в диапазоне от 1025 до 65535.
    # Обычно для портов 1024 и ниже требуется доступ к корневому каталогу, предоставляемый apigee-sso.
    # Значение по умолчанию – 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. Настройте модуль SSO Edge:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Обновите конфигурацию поставщика идентификационной информации, чтобы он отправлял HTTPS-запрос на порт 9443 балансировщика нагрузки для доступа к Edge SSO. Подробнее о том, как настроить поставщика идентификационной информации SAML…
  4. Чтобы настроить интерфейс Edge UI для HTTPS, задайте следующие свойства:
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https


    Подробнее о том, как включить SAML в интерфейсе Edge UI…
  5. Если вы установили портал Developer Services или API BaaS, обновите их, чтобы использовать HTTPS для доступа к Ede SSO. Дополнительная информация:

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

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

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

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

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

# Укажите номер порта на балансировщике нагрузки для завершения TLS.
# Этот номер порта необходим для того, чтобы apigee-sso мог генерировать URL переадресации.
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

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