我已经设置了一个IIS 8.5服务器,它使用HttpPlatformHandler
和Windows身份验证运行rails应用程序。我们也尝试使用ARR作为反向代理,结果相同。
这一切都完全正常,用户使用kerberos进行身份验证,并禁用匿名身份验证,没有问题。 我们可以拒绝特定用户并发现它有效。
问题是http响应标头中的任何位置都没有REMOTE_USER
或AUTH_USER
属性。但是HTTP_AUTHORIZATION
标题已设置,例如“Negotiate YIIHJAYGKw ....”。
我们还没有找到合理的解码HTTP_AUTORIZATION
标头的方法。
非常感谢任何形式的帮助。
答案 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']