Обратный прокси-сервер Apache2 со страницей входа в PHP (проверьте наличие сеанса var перед пересылкой на сервер)
У меня нормально настроен обратный прокси-сервер apache2 для бэкэнд-сервера ssl.
(WWW -> Apache2 -> Server) Работает нормально.
У меня есть хороший способ сделать 2FA с использованием TOTP и хочу, чтобы это работало для этого конкретного веб-приложения.
Как я могу заставить apache2 проверить наличие sessionid / var (проверить, прошел ли пользователь аутентификацию с использованием моего php-скрипта), прежде чем перенаправлять их на сервер за прокси-сервером?
IE: я ищу это..
- Пользователь подключается к прокси и получает форму входа в систему.
- Пользователь получает аутентификацию сеанса ($ _SESSION ['loggedin'] = "1")
- Apache проверяет, если это = 1, если это так, пересылать на проксируемый хост. Если нет, представьте login.php (как пример)
По сути, я пытаюсь добиться двухфакторного меха, поскольку проксируемое приложение допускает один тип, а мой php-скрипт с использованием totp - другой.
Мне просто нужно, чтобы apache мог проверить, вошли ли они в php, прежде чем пересылать на проксируемый хост.
Обратный прокси-сервер в настоящее время работает нормально, просто нужно этот дополнительный "логин", прежде чем прокси для работы..
Текущий конфиг по сути это..
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://10.0.0.1:80/
ProxyPassReverse / http://10.0.0.1:80/
Было бы неплохо иметь что-то в виртуальном хосте, чтобы сказать что-то вроде: ЕСЛИ СЕССИЯ ПОЛЬЗОВАТЕЛЯ VAR X = Y, то Proxy.
Есть идеи?
Я ничего не могу найти в Интернете.
1 ответ
Эй, мистер Себя называется "Умный" Грэм xD
Первый. В IT нет ничего невозможного.
Я хотел бы реализовать именно то, что вы хотите. До сих пор я использовал BasicAuth для этой проблемы.
Чтобы решить проблему с проверкой подлинности Apache, вам нужно использовать директиву Location.
Для BasicAuth это выглядит так
<VirtualHost *:80>
ServerName myproxyservice.mydomain.de
ServerAdmin webmaster@mydomain.de
<Location />
AuthType Basic
AuthName "Restricted area"
AuthUserFile /var/www/html/myproxyservice/.htpasswd
Require valid-user
</Location>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:32400/
ProxyPassReverse / http://127.0.0.1:32400/
</VirtualHost>
Но сейчас. Я хочу иметь более приятную форму входа. Это возможно с модулем Apache.
mod_auth_form"Вот простые примеры, поэтому мне не нужно их создавать"
Уважаемые пользователи Linux. У вас должны быть активированы следующие модули:
a2enmod session_cookie
запрос a2enmod
a2enmod auth_form
MfG R0b1ns - 'Ich hab auch Discord:)