我正在尝试使用 IIS 10 和 Tomcat 9 设置 SSO。我想在 IIS 中使用 Windows 身份验证并将经过身份验证的用户名传递给 Tomcat。我曾在 Tomcat 8.5 中实现此功能,但升级到 Tomcat 9 后,我无法让 ISAPI_redirect.dll 方法工作。
经过大量搜索,我发现 ISAPI 不再是最佳选择。我尝试使用 ARR,但由于它在身份验证之前转发请求,因此您将始终获得空白的 REMOTE_USER 和 AUTH_USER。因此,如果没有第三方方式传递身份验证标头,ARR 就不是一种可行的选择。
我看到的另一个建议是使用HttpPlatformHandler。然而,微软网站上的下载目前已损坏,而且似乎该模块正在被 ASP.NET Core 替换。但是我找不到任何关于如何使用 ASP.NET Core 执行我想要的代理的信息。
目前推荐的将请求从 IIS 代理到 Tomcat 并传递经过身份验证的用户的方法是什么?
编辑:HttpPlatformHandler 下载已恢复。但是,这仍然不是一个选项,因为它与 ARR 有同样的问题,并且在身份验证之前运行。除了第三方应用程序之外,ISAPI 似乎是传递经过身份验证的标头信息的唯一选项。
答案1
如果您尝试在 IIS 中使用 Windows 身份验证并在标头中传递经过身份验证的用户名,则 ISAPI DLL 似乎仍然是执行此操作的唯一方法
我能够让 ISAPI 工作。我认为修复该问题的方法是删除 C:\inetpub\wwwroot 下的 web.config。我已从 IIS 界面删除了为 ARR 尝试所做的 URL 重写,但该文件中有一个残留条目。