【发布时间】:2019-04-19 12:34:18
【问题描述】:
我们的业务用例是我们有四到五个服务部署为 java spring web 应用程序。这些服务的用户/客户来自注册过程或一些现有的运行应用程序,这些应用程序暴露为休息服务。我们打算制作一个单一的门户,让用户能够使用一个帐户/凭据直接登录到许多服务。
通过内部方法,我们假设每个服务都有单独的客户表。以及所有服务的通用登录表,其 id 被标记/映射为每个服务的单个客户表中的外键。
还有一些服务无需注册即可访问,在这种情况下,我们通过客户帐户 ID 从某个第三方服务中获取数据,并将其存储在单独的服务/应用程序客户表和通用登录表中(如果尚未存在)。
对于需要注册的服务,如果不存在,我们会将客户凭据存储在登录表中;以及在服务/应用程序客户表中具有通用登录表映射。
但我们需要一个具有会话跟踪、会话超时功能的安全门户,就像单点登录一样
通过一些研究,我们缩小了使用 SSO 或 Oauth2 实现上述场景的方法,她适用。 请参阅链接 (https://stormpath.com/blog/oauth-is-not-sso) 了解更多信息。
有人可以建议哪种方法 SSO 或 Oauth2 适用于我们的业务用例吗?
如果是单点登录,哪个是java Spring应用最好的开源简单单点登录?
如果是 OAuth2 ,什么将充当客户端应用程序、授权服务器、资源所有者和资源服务器?因为我们有服务(Java 应用程序)作为托管在 Common Application/Portal 中的客户端应用程序?通用登录表会充当资源所有者吗?
【问题讨论】: