Apache2 Basic Auth:user@ip,user2@ip2 - 这可能吗?

Apache2 Basic Auth:user@ip,user2@ip2 - 这可能吗?

我正在考虑运行一项外部服务,供客户在其办公室远程工作时在我的办公室使用。

假设:我的办公室 IP 和客户办公室 IP 都是静态的。

我希望允许我的客户访问某项服务,例如 HTTP Basic Auth 安全管理应用程序。

是否有办法在 Apache Basic Auth 或其他方式中创建基于 User @ IP 的限制?

我想:

  • 我@我的办公室
  • 我@my_home
  • 客户1@他们的办公室1
  • 客户2@他们的办公室2

为了测试,我尝试了以下代码:

<Location />
    Satisfy All

    AuthType Basic
    AuthName "Authorisation"
    AuthUserFile /etc/apache2/passwd

    Order deny,allow
    Deny from all
    Allow from 10.0.0.1/32
    Require user me

    Order deny,allow
    Deny from all
    Allow from 10.0.0.2/32
    Require user client1
</Location>

是否有已知的方法可以使用 Apache Basic Auth 来执行此操作?

另外,当来自未知 IP 的用户/密码成功时,是否可以要求 Apache 再次请求用户详细信息,而不是收到“禁止”信息?

答案1

如果您使用的是 Apache httpd 2.4,则可以使用新的 , 语法来实现这一点。

<RequireAny>

<RequireAll>
  Require IP 10.0.0.1/32
  Require user me
</RequireAll>

<RequireAll>
  Require IP 10.0.0.2/32
  Require user client1
</RequireAll>

</RequireAny>

在 2.4 之前的版本中,如果没有自定义身份验证处理程序,这种事情会非常困难。

相关内容