安全存储重复Web服务调用的凭据

时间:2012-07-19 18:06:15

标签: java web-services spring spring-security

我正在开发一个内部使用的Web应用程序,该应用程序由许多Web服务请求驱动到另一个远程服务器。内部站点维护自己的会话,通过用户/密码凭证进行身份验证,这些凭据本身由Web服务支持(即,我们进行远程身份验证调用以验证对内部站点的登录)。 Web服务请求还需要使用这些相同的凭据进行身份验证。

我们希望这些Web服务请求可以保持无状态,这意味着在每次身份验证请求时都会传入凭据。问题是以安全的方式记住要使用的凭证(在初始登录期间输入的凭证)。我不知道任何真正安全的方法来存储密码以供以后重复使用 - 散列它会牺牲我们再次使用它的能力。我们能做的最好的事情就是在会话范围内对其进行编码,并希望没有恶意的开发人员会尝试在线程转储中捕获它。

我缺少一个更好的解决方案吗?我是否对在内存中存储编码密码的风险过于偏执,或者我们对这个项目的处理方式存在缺陷?

2 个答案:

答案 0 :(得分:0)

我建议使用基于令牌的验证,将令牌传递给用户以便在运行中进行廉价的用户验证。其中一个实现是生成一个cookie,传递给用户进行会话管理。

我没有使用,但你应该看oauth可能是example

答案 1 :(得分:0)

最终我们的结论是,不,将服务器上存储的用户凭据以任何方式重复使用都是不安全的,因此我们无法对每个Web服务请求进行真正的无状态重新身份验证。我们只需要妥协并保留在用户初次登录期间启动和存储的有状态连接。

相关问题