编程语言
首页 > 编程语言> > java – 在富客户端(而不是Web)中实现单点登录?

java – 在富客户端(而不是Web)中实现单点登录?

作者:互联网

在我们公司,我们有几个内部用户和外部用户都使用的丰富Java应用程序.我们希望开始迁移这些系统以支持单点登录机制,并可能允许我们的外部客户端使用自己的身份验证机制来验证其用户.

例如,如果我们的客户拥有大量用户,并且他们希望用户只需使用他们的公司登录信息登录,我们就会支持这种行为.

我们已经研究过使用基于证书的身份验证系统(其中一种常见的Kerberos),并使用该身份验证机制允许在我们的系统中使用外部身份验证服务.

这可行吗?是否需要了解具体的实施细节?我并不关心具体技术(虽然建议肯定是受欢迎的),更多关于核心概念并确保我们尽可能做正确的事情.

那么授权 – 即访问不同的服务.在处理(可能)断开的身份验证服务时,是否有标准或最佳实践来处理此问题?

另外需要注意的是,我们的前端系统是用Java编写的,因此非常感谢与在Java框架中实现此行为相关的特定信息(即,有用的库,特定于Java的潜在陷阱等).

解决方法:

它可行吗?是.
是否需要了解具体的实施细节?是.

每种类型的安全实现都有自己的实现细节,您只需要弄清楚.每一个都是不同的,有自己的细微差别.

您应该能够实现您选择的任何类型的安全性. Kerberos是一个很好的选择.您也可以查看Openid和CAS.还有很多其他的.

要处理实际的安全性,您可以考虑查看Spring Security. Spring Security能够很好地处理身份验证/授权.但是,大多数Spring安全性都专注于Web上的安全性而非客户端系统,因此您很可能必须自己实现许多身份验证机制(当然,只要有可能使用库可用库).

在设计系统时,特别是如果您要拥有许多不同类型的登录类型,请尝试将登录系统构建为可插拔的.这将花费时间和大量的试验和错误.

我会查看Spring Security 3书.它不是一本好书,但它确实解释了如何正确实现安全性.强烈推荐使用弹簧工作,因为尝试自己实现安全性将是一项相当艰巨的任务.

最好的运气.

标签:java,security,authentication,certificate,single-sign-on
来源: https://codeday.me/bug/20190710/1420217.html