#apache #dns #passenger #openid-connect #mod-auth-openidc
#apache #dns #пассажир #OpenID-connect #mod-auth-openidc
Вопрос:
Недавно мы выполнили переключение DNS в среде интеграции приложений Rails. Мы установили example-1.com как CNAME, указывающее на запись example-2.com . Служба на example-2.com это приложение Ruby on Rails с Apache и Passenger Phusion. Поверх Apache мы используем OpenID-Connect (в частности, модуль mod_auth_openidc).
Когда мы пытаемся получить доступ example-1.com напрямую все работает нормально. Но когда мы пытаемся сделать это через example-2.com мы получаем следующую ошибку:
[Thu Aug 27 19:56:37.202141 2020] [auth_openidc:error] [pid 23165]
[client xx.xx.xxx.xx:29188] oidc_authenticate_user: the URL hostname
(example-1.com) of the configured OIDCRedirectURI does not match the URL hostname
of the URL being accessed (example-2.com): the "state" and "session" cookies will
not be shared between the two!
В наших файлах .confd у нас есть OIDC_REDIRECT_URI = "https://example-1.com/redirect"
.
Мы думаем, что нам, возможно, придется использовать Apache для перезаписи части запроса, чтобы решить эту проблему, но мы не совсем уверены. Кто-нибудь знает лучший способ продвижения вперед?
Ответ №1:
вы можете использовать относительное значение для OIDCRedirectURI
, поэтому:
OIDCRedirectURI /redirect
как указано в документах:
(Обязательно) redirect_uri для этого OpenID Connect client; это URL-адрес тщеславия, который должен указывать ТОЛЬКО на путь на вашем сервере, защищенный этим модулем, но он НЕ должен указывать на какой-либо фактический контент, который необходимо обслуживать. Вы можете использовать относительный URL, такой как /protected/ redirect_uri, если хотите динамично поддерживать несколько виртуальных хостов, принадлежащих одному домену безопасности
#OIDCRedirectURI https://www.example.com/protected/redirect_uri
Комментарии:
1. У меня это не работает, я получаю «oidc_set_url_slot_type: значение конфигурации ‘/ redirect’ не может быть проанализировано как URL (схема не установлена)!»
2. вы должны использовать последнюю версию mod_auth_openidc