我需要为我的客户开发一个SSO服务器。我的用例是,我有两个应用程序,我希望他们不要有自己的登录屏幕,并让用户轻松从App 1跳到App 2(App 1和App 2拥有自己的资源,他们应该依赖于中央认证服务器来验证和授权用户)。我正在阅读有关在java中创建SSO服务器的内容。我开始阅读有关oauth 2.0,开放ID连接和SAML的内容。我读的越多,我就越困惑。
有些地方我读过Oauth 2.0不能用于SSO,有些地方我读过它可以用。
我对这三者如何运作有所了解。然而,我无法想象这三者之间的差异。
我将在下面提出我的问题
答案 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服务器一起使用。 它是开源的,免费的,或者如果您愿意,可以依赖付费服务提供商。