【问题标题】:Implementing PKI authentication in Spring Security [closed]在 Spring Security 中实现 PKI 身份验证
【发布时间】:2012-03-24 03:16:05
【问题描述】:

我正在尝试找出在现有 Spring Security 实现中在何处以及如何实现 PKI 身份验证。

我在 tomcat 中更改了我的 server.xml 的配置,使其具有两个连接器来处理“普通”用户名和密码身份验证,然后是“PKI”身份验证。不同之处在于 PKI 连接器启用了 clientAuth 并指向机器上颁发的信任库。

这允许用户选择他们想要的身份验证方式,他们可以单击正常的用户名/密码身份验证以转到一个连接器,或者他们可以单击 PKI 身份验证以使用另一个连接器。我的 tomcat 配置正确提示用户使用他们的证书并输入他们的 pin,我在该 pin 处收到带有 X509Certificate 证书链的 HttpServletRequest。

现在我已经设置好了,如何配置 Spring Security 以允许任何一种形式的身份验证?我试图弄清楚如何使用证书的 EDI 作为用户名/密码的替换,并且仍然进行安全检查,例如检查到期日期、查看卡是否被吊销等。

非常感谢任何想法或链接,谢谢!

【问题讨论】:

  • 你读过documentation关于X.509身份验证的内容吗?
  • @LukeTaylor 我没有,感谢您指出这一点。看来我需要在 Spring 中添加另一个过滤器来提取证书链?

标签: tomcat spring-security x509certificate pki cac


【解决方案1】:

如果我理解正确,您在不同的端口和登录页面上已经有不同的 tomcat 连接器,允许用户选择连接器。现在您想在其中一个连接器上设置 X.509 身份验证。

来自 spring 文档的插入式 X.509 配置有效 - 它从证书中提取 CN 并将其用作用户名。

但是,如果您想要微调或更多地控制身份验证,您必须使用普通 bean 配置来设置 springSecurityFilterChain。您可能会找到此类配置的工作示例here

【讨论】:

  • 谢谢,了解的好信息。
猜你喜欢
  • 2016-07-24
  • 2014-12-04
  • 2022-01-15
  • 2014-02-26
  • 2013-08-15
  • 1970-01-01
  • 2012-09-08
  • 2017-07-17
  • 2013-01-15
相关资源
最近更新 更多