问题描述
我目前有一个IIS Web应用程序上的Keycloak Gatekeeper作为代理,使用ISAPi重定向器通过AJP连接到Tomcat服务器。在Tomcat上运行的应用程序要求将REMOTE_USER变量设置为对系统中的用户进行身份验证。
理想情况下,它将像这样工作: 用户-(登录)-> Keycloak Gatekeeper-(标题)-> IIS-(标题)-> Tomcat-(REMOTE_USER设置+标题)-> Web应用程序
我曾尝试使用Keycloak Tomcat适配器(可用于登录现有用户),但是该应用程序还需要设置特定的标头以注册用户(如果系统中不存在)。
我也尝试过使用IIS URL重写模块,但是由于某些原因它没有设置REMOTE_USER变量(我看到这篇文章建议重写规则在身份验证之前运行,URL rewrite - REMOTE_USER always empty)。
解决方法
我设法通过使用Keycloak Gatekeeper(验证用户身份)并拥有Keycloak Tomcat适配器(在Tomcat服务器上设置REMOTE_USER变量)来使此工作正常。我还设法使用Keycloak Gatekeeper和一个自定义ISAPI重定向器来设置REMOTE_USER变量来使其工作。
不幸的是,这对我们没有帮助,因为我们要进行身份验证的应用程序还有另一个问题,但是如果有人遇到类似问题,请回答此问题。