如何从 Keycloak Gatekeeper 保护站点设置 REMOTE_USER 变量

How to set REMOTE_USER variable from a Keycloak Gatekeeper protected site

我目前有一个 Keycloak Gatekeeper 作为代理,通过 IIS Web 应用程序,使用 ISAPi 重定向器通过 AJP 连接到 Tomcat 服务器。 Tomcat 上的应用程序 运行ning 需要设置 REMOTE_USER 变量以验证系统中的用户。

理想情况下它会像这样工作: 用户 --(登录)--> Keycloak Gatekeeper --(Headers)--> IIS --(Headers)--> Tomcat --(REMOTE_USER设置 + Headers)--> Web 应用程序

我已经尝试使用 Keycloak Tomcat 适配器(它适用于登录现有用户),但该应用程序还需要设置特定的 headers 以注册用户,如果他们不存在系统。

我也尝试过使用 IIS URL 重写模块,但由于某种原因它没有设置 REMOTE_USER 变量(我看到这个 post 这表明重写规则 运行认证前,URL rewrite - REMOTE_USER always empty).

我设法通过使用 Keycloak Gatekeeper(对用户进行身份验证)和 Keycloak Tomcat 适配器(在 Tomcat 服务器上设置 REMOTE_USER 变量)来实现这一点。我还设法使用 Keycloak Gatekeeper 和自定义 ISAPI 重定向器来设置 REMOTE_USER 变量。

不幸的是,这对我们没有帮助,因为我们正在验证的应用程序有另一个问题,但回答这个问题以防其他人有类似的问题。