我们希望在LDAP中使用X.509证书和组对用户进行身份验证/授权。
使用Tomcat 5.5,我们可以通过SSL获取X.509证书,然后切换回http并继续在请求中使用userPrincipal来实现此目的。转到Tomcat 6和7后,切换回http。
后,userPrincipal不再可用在这个问题Can I use SSL certificate without using a HTTPS connection?据说你可以在没有SSL的情况下申请X.509证书。我正在努力确认是否可能,以及是否有人知道如何做到这一点。
答案 0 :(得分:3)
让我们暂时考虑一下。
用户身份验证通常如下:
认证后回到未加密的HTTP是一个坏主意。每个人都可以在线上看到会话令牌。他们可以窃取它并用它来构成用户。有关示例,请参阅FBController或搜索“会话劫持”。
使用未加密的会话来传递用户身份证明同样是个坏主意。每个人都可以重播这个并以用户身份出现。无论您使用的是X.509证书还是用户名/密码:都是一样的。
如果您真的想要,可以使用Javascript实现自己的伪HTTPS。例如,雅虎在通过网络发送之前使用JavaScript来获取用户密码的盐渍SHA1。您可以使用Javascript使用X.509的私钥对nonce进行签名,并通过公共证书发送。 请注意,在使用此方法时,您仍然对会话劫持持开放态度,因此这只是一种虚假的安全感!
更好的方法是使用标准HTTPS。完整连接是加密的,这意味着通过用户证明,会话劫持甚至查看用户请求的信息都没有机密性问题。