У меня есть контейнер, отображаемый Nginx на example.org / portia / test , структурированный следующим образом:
- Контейнер предоставляет только порт 9001, где экземпляр Apache в качестве прокси-сервера прослушивает.
- Сервер Django работает на 8000, ему отправляется весь трафик для / api и / server_capabilities.
- Другой сервер Django работает на 9002, который обрабатывает веб-сокеты по пути / ws.
схема моей сети
Я пытаюсь добавить аутентификацию OpenIdConnect с помощью плагина mod_auth_openidc для Apache, я хочу защитить весь виртуальный хост.
Пока я попадаю на правильную страницу входа на auth-example.org, я захожу с учетными данными, и сервер аутентификации перенаправляет меня с правильным URI. Нникс отвечает мне ошибкой 400.
запрос отправлен с большим количеством файлов cookie
Сервер аутентификации используется несколькими приложениями внутри mydomain.org, поэтому я думаю, что-то не так с моим файлом конфигурации Apache.
Для ясности я не могу прикоснуться к Nginx или к серверу аутентификации.
apache_site.conf
<VirtualHost *:9001>
ServerAdmin webmaster@localhost
DocumentRoot /app/portiaui/dist
ServerName www.example.org
ServerAlias example.org
#ProxyRequests On
Alias /static /app/portiaui/dist
OIDCProviderMetadataURL https://www.auth-example.org/auth/realms/master/.wel$
OIDCRedirectURI https://example.org/portia/test/callback
OIDCCryptoPassphrase <much secret>
OIDCClientID portia
OIDCClientSecret <much private>
OIDCCookiePath example.org/portia/test/
OIDCCookieDomain example.org
<Location /static>
Require all granted
</Location>
<Location /api>
Require all granted
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api
ProxyPreserveHost On
</Location>
<Location /server_capabilities>
Require all granted
ProxyPass http://127.0.0.1:8000/server_capabilities
ProxyPassReverse http://127.0.0.1:8000/server_capabilities
ProxyPreserveHost On
</Location>
<Location /ws> # mod_proxy_wstunnel is enabled
RequestHeader set Host "127.0.0.1:9002"
ProxyPreserveHost On
ProxyPass http://127.0.0.1:9002/ws
ProxyPassReverse http://127.0.0.1:9002/ws
</Location>
<Location />
AuthType openid-connect
Require valid-user
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>