对于我们的用例,什么是必需的Oauth2或SSO



我们的业务用例是,我们有四到五个服务部署为javaspringweb应用程序。这些服务的用户/客户来源于注册过程或一些作为rest服务公开的现有运行应用程序。我们打算制作一个单一的门户网站,让用户能够使用单一的帐户/凭据直接登录许多服务。

对于内部方法,我们假设每个服务都有单独的客户表。以及用于所有服务的公共登录表,这些服务的id被标记/映射为每个服务的单个客户表中的外键。

此外,一些服务可以在不注册的情况下访问,在这种情况下,我们通过客户帐户id从第三方服务获取数据,并将其存储在单独的服务/应用程序客户表中,如果还不存在,则存储在公共登录表中。

对于需要注册的服务,如果不存在,我们将客户凭据存储在登录表中;以及在具有公共登录表映射的服务/应用程序客户表中。

但我们需要一个具有会话跟踪、会话超时的安全门户,就像单一登录一样

通过一些研究,我们已经缩小了用SSO或Oauth2实现上述场景的方法,她是适用的。请参阅链接(https://stormpath.com/blog/oauth-is-not-sso(以获得更多见解。

有人能建议SSO或Oauth2哪种方法适用于我们的业务用例吗?

如果是SSO,那么对于javaSpring应用程序来说,哪种是最好的开源简单SSO?

如果是OAuth2,什么将充当客户端应用程序、授权服务器、资源所有者和资源服务器?因为我们在CommonApplication/Portal中托管了作为客户端应用程序的服务(Java应用程序(?公共登录表会充当资源所有者吗?

您可能需要SpingSAML。如果应用程序托管在不同的路径上,如example.org/app1和example.org/app2,则可以使用Shibboleth服务提供商作为应用程序的SAML SP。

您仍然需要某种身份提供商,而SpingSAML无法做到这一点,但有无数的IdP实现:即Shibboleth身份提供商、ADFS或商业IdP,如Okta、OneLogin、Ping等。

最新更新