Rails 应用程序,IIS 8.5 中的 REMOTE_USER 属性,具有 windows 身份验证

Rails app, REMOTE_USER attribute in IIS 8.5 with windows authentication

我已经设置了一个 IIS 8.5 服务器,该服务器使用 HttpPlatformHandler 和 Windows 身份验证运行 rails 应用程序。我们也尝试使用 ARR 作为反向代理,结果相同。

一切正常,用户使用 kerberos 进行身份验证,匿名身份验证被禁用,没问题。 我们可以拒绝特定用户,看看它是否有效。

问题是 http 响应 header 中的任何地方都没有 REMOTE_USERAUTH_USER 属性。但是 HTTP_AUTHORIZATION header 已设置,例如 "Negotiate YIIHJAYGKw....".

我们也没有找到解码 HTTP_AUTORIZATION header 的合理方法。

我们将不胜感激任何形式的帮助。

要解决此问题,您需要在服务器 运行 IIS 上安装 helicontech 的 ISAPI_Rewrite 3。下载 url 在这里:ISAPI_Rewrite 3.

之后导航到安装文件夹,默认是C:\Program Files\Helicon\ISAPI_Rewrite3

在那里你会找到一个名为 httpd.conf 的文件,打开它并添加:

RewriteBase /
RewriteCond %{REQUEST_URI} ^/.*
RewriteHeader X-Remote-User: .* %{REMOTE_USER}

现在您将能够在您的 ruby 代码中获取远程用户名:

request.env['HTTP_X_REMOTE_USER']