我想知道是否应该使用CAS协议或OAuth某些身份验证提供程序进行单点登录 .
示例场景:
用户尝试访问受保护资源,但未经过身份验证 .
应用程序将用户重定向到SSO服务器 .
如果通过身份验证,用户将从SSO服务器获取令牌 .
SSO重定向到原始应用程序 .
原始应用程序根据SSO服务器检查令牌 .
如果令牌没问题,将允许访问,并且应用程序知道用户ID .
用户执行注销并同时从所有连接的应用程序注销(单点注销) .
据我所知,这正是CAS发明的 . CAS客户端必须实现CAS协议才能使用身份验证服务 . 现在我想知道在客户(消费者)网站上使用CAS或OAuth . OAuth是CAS的那部分的替代品吗? OAuth作为新的事实上的标准应该优先考虑吗?是否有一个易于使用(不是Sun OpenSSO!)替代CAS的身份验证部分支持不同的方法,如用户名/密码,OpenID,TLS证书......?
语境:
不同的应用程序应该依赖于SSO服务器的身份验证,并且应该使用类似会话的东西 .
应用程序可以是GUI Web应用程序或(REST)服务 .
SSO服务器必须提供用户ID,这是从中央用户信息存储获取有关用户的更多信息(如角色,电子邮件等)所必需的 .
应该可以单点注销 .
大多数客户端都是用Java或PHP编写的 .
我只是discovered WRAP,可能成为OAuth的继任者 . 这是微软,谷歌和雅虎指定的新协议 .
Addendum
我了解到OAuth不是为验证而设计的,即使它可用于实现SSO,但只能与OpenID等SSO服务一起使用 .
OpenID在我看来是“新CAS” . CAS具有一些OpenID未命中功能(如单点注销),但在特定场景中添加缺失部分并不困难 . 我认为OpenID已被广泛接受,最好将OpenID集成到应用程序或应用程序服务器中 . 我知道CAS也支持OpenID,但我认为CAS对OpenID来说是可有可无的 .