我是Jboss和Spring的新手。但要了解PKI 509如何工作并知道如何生成所需的证书。麻烦在于使用基于Spring安全PKI 509登录的Jboss。
这将是一个很好的教程来达到同样的...如何用Spring安全PKI 509登录配置Jboss?
感谢
Nohsib
我是Jboss和Spring的新手。但要了解PKI 509如何工作并知道如何生成所需的证书。麻烦在于使用基于Spring安全PKI 509登录的Jboss。
这将是一个很好的教程来达到同样的...如何用Spring安全PKI 509登录配置Jboss?
感谢
Nohsib
首先,您必须启用JBoss的SSL,使用服务器证书作为密钥库,以及相关联的信任对于签署了服务器证书的CA Cert链,以及用于签署客户端证书的任何链,您希望与您的服务器进行交互。您还需要将clientAuth设置为“true”(客户端必须有证书)或“想要”(允许在客户端没有客户端证书的情况下回退到另一个身份验证方法,如BASIC):
现在你的web应用程序中,你需要配置Spring并启用X509预验证过滤器。这将从servlet请求属性javax.servlet.request.X509Certificate
中提取客户端的DN。然后可以提取该DN的一部分(例如CN),然后将其与UserDetailsService
实施结合使用以查找(例如在DB中或通过WS呼叫)用户细节。
除此之外,您可以提供基于用户的详细信息,如角色,组,单位部门等授权
对于一个简单的Spring配置可能是这个样子(未经测试,纯粹从我写过这样的东西多次的记忆):
<http:http>
<!-- X509 Filter to extract PKI CN field as the users name, which is then
passed to the userService to lookup their details (such as roles) -->
<http:x509 subject-principal-regex="CN=(.*?),"
user-service-ref="userService"/>
<!-- filter all traffic to any URL, user must be authenticated and had the specified
role in their UserDetails object -->
<intercept-url pattern='/**' access='ROLE_USER' />
</http:http>
<!-- Custom user service that calls out to Restful web service to acquire user
details information, based upon the PKI Certs CN field -->
<beans:bean id="userService"
class="com.domain.security.user.ws.RestfulUserService">
</beans:bean>
最后,它是一大堆文本可供阅读,但Spring Security的文档非常好,并提供了有关幕后事情的示例和洞察 - 我强烈建议阅读(这是我从中了解到的全部内容!):