2015-10-26 33 views
2

我已經安裝了使用HttpPlatformHandler和Windows身份驗證來運行rails應用程序的IIS 8.5服務器。我們也嘗試將ARR用作具有相同結果的反向代理。使用Windows身份驗證的IIS 8.5中的Rails應用程序,REMOTE_USER屬性

這一切都完全正常,用戶使用kerberos進行身份驗證,並且匿名身份驗證被禁用,沒有問題。 我們可以拒絕特定用戶並看到它有效。

問題是http響應標頭中的任何地方都沒有REMOTE_USERAUTH_USER屬性。但是,HTTP_AUTHORIZATION標題已設置,例如「Negotiate YIIHJAYGKw ....」。

我們還沒有找到合適的方法來解碼HTTP_AUTORIZATION頭。

任何形式的幫助將不勝感激。

+0

嘿,維克托,你有這個運氣嗎?我們的情況非常相似。 –

+0

是的,我解決了它,我會寫一個完整的報告,告訴我明天是怎麼做到的。 –

+0

太棒了,謝謝! –

回答

4

要解決此問題,您需要在運行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'] 
+0

謝謝維克多這工作很好。哪裏可以從瀏覽器中刪除用戶名和密碼提示? –

+0

是的,通過使用Windows身份驗證並關閉所有其他選項,在IIS服務器上 –

相關問題