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_USER
或 AUTH_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']
我已经设置了一个 IIS 8.5 服务器,该服务器使用 HttpPlatformHandler
和 Windows 身份验证运行 rails 应用程序。我们也尝试使用 ARR 作为反向代理,结果相同。
一切正常,用户使用 kerberos 进行身份验证,匿名身份验证被禁用,没问题。 我们可以拒绝特定用户,看看它是否有效。
问题是 http 响应 header 中的任何地方都没有 REMOTE_USER
或 AUTH_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']