HAProxy 是否可以强制基本身份验证,然后根据用户 IP 选择 AD 服务器?

HAProxy 是否可以强制基本身份验证,然后根据用户 IP 选择 AD 服务器?

以下是我的情况:

  • 我有一个 Web 应用程序(使用 HTTPS),需要在用户联系它之前对其进行身份验证
  • 应用程序需要设置 HTTP 标头(我们将其命名为HEADER
  • 有大约 20 个不同的 Active Directory 服务器实例
  • 用户需要在其中一个 AD 服务器上进行身份验证
  • 需要使用的 AD 服务器取决于用户正在使用的 IP

是否可以使用 HAProxy 执行以下操作?如果可以,我该怎么做?

  1. 当用户尝试联系给定的 URL 时,如果HEADER缺少命名的标头,则强制基本身份验证请求用户的usernamepassword
  2. 当收到来自用户的username和时password,检查source ip并根据其值(掩码/模式/其他)联系相应的 Active Directory 来验证用户身份
  3. 一旦用户通过所选 AD 服务器正确验证,则写入HEADER

在此先感谢您的帮助!

PS,我在 Stackoverflow 上发布了同样的问题,但我猜 serverfault 可能是提出此类问题的更好的地方。

答案1

我知道这是一个有点老话题,但我想我会给出我的看法...

您可能需要考虑使用更高级的工具(例如 Keycloak + 更高级的 HTTP 网关(例如 Apache Knox))来重定向用户,并且可能使用 HAProxy 将用户指向最近的 Knox 网关。如果距离确实会产生影响,您几乎可以在 Knox、Keycloak 和 AD 实例之间建立 1 对 1 的关系,然后使用 HAProxy 根据用户的 IP 选择要连接的网关。

以下项目使用户能够将keycloak和knox连接在一起: https://github.com/UKHomeOffice/pontus-keycloak-knox

相关内容