如何在胖客户端中设计身份验证,以确保故障安全?

Jay*_*Jay 6 java eclipse security design-patterns

这是一个用例:

我有一个桌面应用程序(使用Eclipse RCP构建),在启动时弹出一个对话框,其中包含"UserName"和"Password"字段.一旦最终用户输入他的UserName和Password,就会联系一个服务器(一个spring remote-servlet,客户端是一个spring httpclient:类似于这里方法 .),并且在服务器端执行身份验证.

与上述情况有关的几个问题:

  1. 如果说这种认证服务失败了,处理进一步程序的最佳方法是什么?身份验证是我无法取消的.以"有限"模式运行桌面客户端是个好主意吗?例如,重要功能/菜单/视图将被禁用,其他应用程序将可访问?
  2. 我是否应该在另一台计算机上运行备份身份验证服务,作为备份?
  3. 这种情况下的一般最佳做法是什么?我记得读过关于谷歌齿轮以及它如何让你编辑和离线做东西 - 如果这样设计的话?

请让我知道您的设计/建筑评论/建议.感谢您的帮助.

dby*_*rne 5

简单的答案是:不要让身份验证服务失败!

确保您的身份验证服务在虚拟IP后面的群集负载平衡环境中运行.这样,您就可以避免在其中一台服务器出现故障时停机.这不仅适用于服务本身,也适用于它所依赖的任何数据源.

显然,没有一个系统完全是故障安全的,但是你应该能够将你的正常运行时间接近100%,以便不需要为桌面客户端构建"有限"模式.