【问题标题】:Rails app, REMOTE_USER attribute in IIS 8.5 with windows authenticationRails 应用程序,IIS 8.5 中具有 Windows 身份验证的 REMOTE_USER 属性
【发布时间】:2015-10-26 13:49:52
【问题描述】:

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

这一切都很好,用户使用 kerberos 进行身份验证,匿名身份验证被禁用,没有问题。 我们可以拒绝特定的用户,看看有没有效果。

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

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

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

【问题讨论】:

  • 嘿维克多,你有什么运气吗?我们的情况非常相似。
  • 是的,我解决了,明天我会写一份完整的报告,说明我是如何做到的。
  • 好的,我现在添加了答案。

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


【解决方案1】:

要解决此问题,您需要在运行 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']

【讨论】:

  • 感谢维克多这很好。在哪里可以从浏览器中删除用户名和密码提示?
  • 是的,在 IIS 服务器上使用 Windows 身份验证并关闭所有其他选项
  • @VictorGram 知道如何从运行烧瓶应用程序的 ubuntu 服务器获取 Windows 用户名吗?
猜你喜欢
  • 2018-01-01
  • 2015-01-16
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多