我试图弄清楚在现有 Spring Security 实现中在何处以及如何实现 PKI 身份验证。
我在 tomcat 中更改了 server.xml 的配置,使其具有两个连接器来处理“普通”用户名和密码身份验证,然后是“PKI”身份验证。不同之处在于 PKI 连接器启用了 clientAuth 并指向机器上颁发的信任库。
这允许用户选择他们想要的身份验证方式,他们可以单击正常的用户名/密码身份验证转到一个连接器,或者他们可以单击 PKI 身份验证来使用另一个。我的 tomcat 配置正确提示用户使用他们的证书并输入他们的 pin,在该 pin 处我收到带有 X509Certificate 证书链的 HttpServletRequest。
所以现在我已经设置好了,如何配置 Spring Security 以允许任何一种形式的身份验证?我试图弄清楚如何使用证书的 EDI 作为用户名/密码的替换,并且仍然进行安全检查,例如检查到期日期、查看卡是否被吊销等。
非常感谢任何想法或链接,谢谢!