我有一个用Rails编写的应用程序,由于客户端,政府的限制,必须在IIS服务器后面运行。我们必须拥有SSL身份验证。因此,在我搜索Google时,我无法弄清楚如何让IIS将客户端证书传递给rails服务器(瘦)。
我见过关于Apache的教程:
SSLOptions +ExportCertData
然后使其可用于请求对象。有关如何配置IIS以执行相同操作的任何想法吗?
答案 0 :(得分:0)
至少在您提出问题的方式中,IIS无法提供客户端证书,因为客户端证书将由第三方颁发。因此,您需要获得x509证书,证明您的应用程序和证书是作为iis初始连接请求的一部分进行身份验证的。
对于从服务器向客户端提供ssl证书的apache函数,iis不公开此功能。
这就是为什么你无法在谷歌上找到任何东西
答案 1 :(得分:0)
公司希望在IIS服务器后面运行Rails(或其他)应用程序的主要原因是SSO除了保护资源外。
看看这是否有帮助。
我们一直在IIS后面的很多客户位置运行我们的Rails应用程序。我们在Tomcat里面的JRuby中运行我们的Rails应用程序。
安装JK ISAPI重定向器插件的步骤在这里
http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html
使用标准IIS身份验证方案,集成Windows身份验证(协商,NTLM)在IIS中保护所有Rails上下文。
在Rails应用程序中,可以获取登录用户的信息。
request.env['java.servlet_request'].get_remote_user
Rails应用程序还连接到Microsoft AD以获取其他用户信息,如电子邮件,部门等,
由于Rails盲目地信任IIS服务器的身份验证,因此需要阻止它直接访问。
1. Disable HTTP ports in Tomcat
2. Enable only the AJP port
3. Add an IP restriction so that it accepts connection only from the IIS server(s)
== 我认为IIS无法传递证书详细信息。我们尝试提取Kerboros令牌(用于kerboros身份验证委派)但没有取得多大成功,并意识到这是不可能的。
答案 2 :(得分:0)
被告知这可能是不可能的。我终于搞清楚了!以下是我采取的步骤。
哈希的变量包括:
如果找不到某些东西,则可能需要安装模块(用于类似身份验证)。我不记得我安装了哪些。