Java 如何使用“身份验证”对用户进行身份验证;“交互式登录需要智能卡”;设置
在Active Directory上设置“交互式登录需要智能卡”时,它会生成一个随机密码。如何利用智能卡通过LDAP从web应用程序对用户进行身份验证Java 如何使用“身份验证”对用户进行身份验证;“交互式登录需要智能卡”;设置,java,active-directory,smartcard,pki,Java,Active Directory,Smartcard,Pki,在Active Directory上设置“交互式登录需要智能卡”时,它会生成一个随机密码。如何利用智能卡通过LDAP从web应用程序对用户进行身份验证 我如何知道用户是谁?有没有办法访问证书?我可以从会话中获取它吗?应该使用HTTPS和SSL相互身份验证,因为客户端的智能卡上至少存储了公司CA签名的证书 当使用相互SSL身份验证而不仅仅是服务器身份验证时,服务器也会验证客户端证书,而不仅仅是客户端验证服务器的证书(这对于支持HTTPS的电子商务站点来说更常见)。你仍然可以得到加密连接作为奖励 见
我如何知道用户是谁?有没有办法访问证书?我可以从会话中获取它吗?应该使用HTTPS和SSL相互身份验证,因为客户端的智能卡上至少存储了公司CA签名的证书 当使用相互SSL身份验证而不仅仅是服务器身份验证时,服务器也会验证客户端证书,而不仅仅是客户端验证服务器的证书(这对于支持HTTPS的电子商务站点来说更常见)。你仍然可以得到加密连接作为奖励 见例。关键点是将信任存储中的CA证书和clientAuth属性设置为true 还应在相应web应用程序的web.xml中为CLIENT-CERT指定登录验证方法:
...
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Foo * Bar * Realm</realm-name>
</login-config>
...
。。。
客户端证书
Foo*Bar*领域
...
客户端证书中的SubjectDN属性用于标识用户。LDAP(或ActiveDirectory)仍然可以用于授权-例如,通过检查用户是否属于某个组
第一次把一切都安排好是很困难的。为了熟悉所有概念,我建议采用以下方法:
- 对存储在文件中的用户名和密码使用基本身份验证方法
- 使用简单的基于角色的授权
- 启用客户端证书身份验证方法+简单的基于角色的授权
- 合并LDAP以检查角色
...
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Foo * Bar * Realm</realm-name>
</login-config>
...
。。。
客户端证书
Foo*Bar*领域
...
客户端证书中的SubjectDN属性用于标识用户。LDAP(或ActiveDirectory)仍然可以用于授权-例如,通过检查用户是否属于某个组
第一次把一切都安排好是很困难的。为了熟悉所有概念,我建议采用以下方法:
- 对存储在文件中的用户名和密码使用基本身份验证方法
- 使用简单的基于角色的授权
- 启用客户端证书身份验证方法+简单的基于角色的授权
- 合并LDAP以检查角色
clientAuth=“true”secure=“true”SSLVerifyClient=“require”truststoreFile=“conf/piv truststore”truststorePass=“changeit”
我不得不将以下内容添加到server.xml文件中的连接器元素中:clientAuth=“true”secure=“true”SSLVerifyClient=“require”truststoreFile=“conf/piv truststore”truststorePass=“changeit”