OAuth 2.0,Open ID连接和SAML

时间:2014-11-23 18:07:03

标签: java oauth single-sign-on saml openid-connect

我需要为我的客户开发一个SSO服务器。我的用例是,我有两个应用程序,我希望他们不要有自己的登录屏幕,并让用户轻松从App 1跳到App 2(App 1和App 2拥有自己的资源,他们应该依赖于中央认证服务器来验证和授权用户)。我正在阅读有关在java中创建SSO服务器的内容。我开始阅读有关oauth 2.0,开放ID连接和SAML的内容。我读的越多,我就越困惑。

有些地方我读过Oauth 2.0不能用于SSO,有些地方我读过它可以用。

我对这三者如何运作有所了解。然而,我无法想象这三者之间的差异。

我将在下面提出我的问题

  1. Oauth 2.0可用于SSO
  2. 对于金融公司而言,哪一个是更好的黑客2.0,SAML和Open ID连接,其数据非常敏感。此外,我们还打算使用原生移动应用程序。这也将使用相同的SSO服务器登录用户。
  3. 是否有任何库可以在java中实现其中任何一个。我打算使用dropwizard服务器

3 个答案:

答案 0 :(得分:2)

WRT。 “1. OAuth可以用于SSO”这里有一个非常好的读物:http://oauth.net/articles/authentication/基本上说:“不是没有扩展配置文件,而且已经作为标准配置文件称为OpenID Connect”

答案 1 :(得分:1)

OAuth在联邦意义上不提供真正的SSO,例如使用WS-Federation / SAML和安全令牌服务(STS)。

OAuth实际上是授权协议,即用于同意。 OpenID Connect在OAuth之上提供身份验证层。

SAML是最好的"选择例如Shibboleth,Salesforce,WorkDay等都将它用于SSO。

但是,SAML不适合本机应用程序,因为它基于浏览器使用HTTP POST。 OAuth更适合这种情况。

对于Java SAML,您可以使用OpenSAML

Spring Security中有一个OAuth堆栈。

答案 2 :(得分:1)

免责声明:我是CAS的主席和云中CAS的创始人(https://www.casinthecloud.com)。

CAS也是一种广泛使用的SSO解决方案。它适用于网站和移动应用程序,并具有一些强大的功能,如网关,续订和代理。 这是一个非常简单的协议,您可以非常快速地理解和集成。许多技术中有许多CAS客户端可以与CAS服务器一起使用。 它是开源的,免费的,或者如果您愿意,可以依赖付费服务提供商。