http://support.microsoft.com/kb/892424
在Active Directory上设置“交互式登录需要智能卡”时,会生成随机密码。如何利用智能卡通过Web应用程序通过LDAP验证用户?
我如何知道用户是谁?有没有办法访问证书?我可以从会议中获得它吗?
答案 0 :(得分:1)
应该使用HTTPS和SSL相互身份验证,因为客户端已经在其存储的智能卡上至少拥有公司CA签名证书。
当使用相互SSL身份验证而不仅仅是服务器身份验证时,客户端证书也会由服务器验证,而不仅仅是客户端的服务器证书(对于例如支持HTTPS的电子商务站点,这是更常见的设置)。而且您仍然可以获得加密连接作为奖励。
参见例如Tomcat 6.0 SSL Configuration HOW-TO。关键点是将trust-store和clientAuth属性中的CA证书设置为true。
还应在相应Web应用程序的web.xml中的CLIENT-CERT中指定login auth-method:
...
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Foo * Bar * Realm</realm-name>
</login-config>
...
来自客户端证书的SubjectDN属性用于标识用户。 LDAP(或ActiveDirectory)仍可用于授权 - 例如通过检查用户是否属于某个组。
第一次设置它可能很困难。为了熟悉我推荐的所有概念: