我有一个 apache2 反向代理设置,适用于 ssl 后端服务器。
(WWW -->Apache2 --> 服务器) 工作正常。
我有一个很好的方法来使用 TOTP 进行 2FA,并希望让它适用于这个特定的 Web 应用程序。
如何让 apache2 在将用户转发到代理后面的服务器之前检查会话 id/var(检查用户是否使用我的 php 脚本进行身份验证)?
IE:我正在寻找这个。
- 用户连接到代理并显示登录表单。
- 用户通过会话身份验证($_SESSION['loggedin'] = "1")
- Apache 检查是否 = 1,如果是,则转发到代理主机。如果没有,请提供登录名.php(作为示例)
从本质上讲,我试图实现的是一个 2factor 机甲,因为代理的应用程序允许一种类型,而我使用 totp 的 php 脚本允许另一种类型。
我只需要apache top能够在转发到代理主机之前检查它们是否已在php中登录。
反向代理目前工作正常,只需要这个额外的"登录"才能被代理工作。
当前的配置基本上是这样的。
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://10.0.0.1:80/
ProxyPassReverse / http://10.0.0.1:80/
最好在虚拟主机中有一些东西说,如果用户会话 var x = Y,那么代理。
有什么想法吗?
我在网上找不到任何东西。
嘿,自称"聪明"的格雷厄姆·
第一。在IT领域,没有不可能。
我想完全实现您想要的。 到目前为止,我已经使用BasicAuth来解决这个问题。
要解决您的 Apache 身份验证问题,您必须使用 Location 指令。
对于基本身份验证,这看起来像
<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_session
mod_auth_form"这里有简单的例子,所以我没有必要做一个">
亲爱的 Linux 用户。您必须激活以下模块:
A2enmod session_cookie
a2enmod 请求
A2enmod auth_form
MfG R0b1ns -'Ich hab auch Discord :)