带有Windows身份验证的IIS 8.5中的Rails app,REMOTE_USER属性

时间:2015-10-26 13:49:53

标签: ruby-on-rails-4 windows-authentication iis-8

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

这一切都完全正常,用户使用kerberos进行身份验证,并禁用匿名身份验证,没有问题。 我们可以拒绝特定用户并发现它有效。

问题是http响应标头中的任何位置都没有REMOTE_USERAUTH_USER属性。但是HTTP_AUTHORIZATION标题已设置,例如“Negotiate YIIHJAYGKw ....”。

我们还没有找到合理的解码HTTP_AUTORIZATION标头的方法。

非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:5)

要解决此问题,您需要在运行IIS的服务器上安装helicontech的ISAPI_Rewrite 3。下载网址在这里: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']