我有一个在Tomcat应用程序服务器上运行的Web应用程序(gwt)。该Web应用程序消耗了多个Web服务(登录,应用程序数据传输,查询等)。Tomcat上的Web服务客户端被实现为apache axis2 Web服务客户端。
对于用户登录,我在Web应用程序中提供一个包含用户名和密码的表单。该数据通过Web服务传输以验证用户身份。
计划将漏洞身份验证机制更改为基于客户端证书的身份验证。身份验证仍应在Web服务提供商端进行。因此,我的系统具有三个相关组件:Web客户端,tomcat应用程序服务器和Web服务提供商。
应用程序的每个用户都有自己的专用客户端证书(PKI令牌,X.509-Auth-Cert)。当用户连接到Web应用程序时,将请求其证书。
如何转发客户端证书以用于Web服务?(tomcat将不负责身份验证)。
1.) 是否可以在身份验证错误发生之前拦截请求并提取客户端证书?我发现了一些有关Servlet过滤器的信息,听起来确实不错,但是在对tomcats密钥库进行验证之前,我不确定在哪里实现它来拦截证书。
2.) 如果可能,如何将客户端证书后的证书传递给Web服务?
感谢您的阅读
不,不是。身份验证中使用的实际部分是与证书关联的 私钥 ,而不仅仅是证书本身。而且,通常,您无法从Web客户端检索该信息。因此,您不能真正将从Web客户端收到的凭据传递到Web Service客户端。证书本身很容易获得,但是如果没有相应的私钥,则无法用于身份验证。