У меня следующая конфигурация, в основном это обратный прокси перед графаной. Я перенаправляю запрос / logout на сервер аутентификации с URL-адресом перенаправления и URL-адресом / login на / login / generic_oauth.
Я хочу перенаправить / logout на сервер аутентификации только тогда, когда запрос исходит от самой графаны, то есть только в том случае, если графический интерфейс делает запрос.
Если запрос сделан из любого другого источника, он должен перейти на обратный прокси-сервер и обратно. В основном, когда я выхожу из системы из своего приложения angular, я также должен выйти из системы с моим приложением Grafana. Но поскольку я привязал / logout к перенаправлению сервера аутентификации, я получаю ошибку cors, когда делаю запрос.
RewriteEngine on
RewriteRule ^/logout - [C]
I want to excute this rule only if the request is from http://grafana-ip:3001
RewriteRule . "https://auth-server-ip:31443/auth/realms/MDC/protocol/openid-connect/logout?redirect_uri=http://auth-server-ip:8081/login" [NE,R=302,CO=grafana_sess:INVALID:;]
RewriteRule ^/login$ /login/generic_oauth [L,R=302]
ProxyPass / http://grafana-ip:3001/
ProxyPassReverse / http://grafana-ip:3001/
RequestHeader set X-Forwarded-Proto "https"
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "*"
Есть ли способ выполнить правило, когда запрос исходит от grafana-ip, но не когда он формируется из любого другого источника
Поскольку вы проксируете / на бэкэнд, а ваши клиенты запрашивают только URL-адреса на вашем прокси с референтами, ссылающимися на ваш прокси, у вас действительно нет причин делать обработку / logout условной. Что хорошо, потому что у вас нет возможности различать что-либо по тем же причинам.