Назад | Перейти на главную страницу

Shibboleth / Nginx работает на нестандартном порту

Наша команда запускает все наши установки Nginx на 8443 вместо 443 по той очевидной причине, что вам не нужно быть пользователем root для прослушивания порта, и поэтому процесс можно запускать и останавливать с более низкими привилегиями. (Затем мы открываем приложение на порту 443 с помощью правил IP-таблиц или балансировщиков нагрузки.) Мы находимся в процессе интеграции Shibboleth для SSO для выполнения нашей аутентификации.

Я столкнулся с этой ошибкой:

OpenSAML.MessageDecoder.SAML2POST [2]: POST targeted at (https://myserver.com/Shibboleth.sso/SAML2/POST), but delivered to (https://myserver.com:8443/Shibboleth.sso/SAML2/POST)

Похоже, это связано с тем, что Nginx слушает 8443, но публично раскрывается на 443. Есть ли способ сказать Shibboleth, чтобы он прекратил добавлять 8443 к URL?

Я пробовал читать вики Shibboleth и не нашел ничего, что объясняло бы этот сценарий. Я нашел в Интернете один экземпляр кто-то делает что-то подобное, но единственный ответ, данный в цепочке, заключался в изменении некоторой конфигурации Apache (мне не удалось найти эту конфигурацию Apache или эквивалент в Nginx).

В Apache вы можете обманом заставить модуль Shibboleth думать, что он загружен на другой порт, указав порт в ServerName директива, например ServerName example.com:443 даже когда он слушает :8443.

Совсем недавно программное обеспечение SP добавлено ShibURLScheme, который «управляет схемой URL-адресов, которую Apache будет сообщать модулям, должен отражать логическое значение, которое видят клиенты за пределами вашей сети».

Один из них должен работать. Вам просто нужно обманом заставить nginx сообщить модулям Shibboleth, что запросы поступают из другого порта или заголовка хоста.