首先,SSO和权限控制是两回事:
1、CAS系统解决单点登录问题,对身份认证的具体方法不做要求。
2、Oauth、openID、SAML是身份身份认证授权的规范和标准,是解决认证授权问题的。
OpenID与Oauth协议的区别,可以从其标准定义的核心应用场景来分析:
1、Oauth协议的使用场景:用户通过第三方照片打印应用打印在某个网站存储的照片,而不希望泄露照片网站的用户名、密码等信息给第三方的照片打印应用。
2、OpenID协议的使用场景,用户在多个网站注册,需要注册并记住多个用户名密码,openid希望帮用户提供一个身份ID,可以在多个网站用来登录。登录网站时,用户选择用其身份ID登录,跳转到身份ID颁发的网站输入用户名、密码进行身份认证,然后跳转会网站实现登录。即我们当前很多时候看到的用”QQ帐号登录”、“微信帐号登录”等。
所以我们可以总结,两个协议的核心区别:
1、Oauth协议的认证凭证必须是资源拥有者发放的;而OpenID的认证凭证可以是你需要登录的网站支持的其它任何正规Openid Provier网站均可。
2、OpenID只是身份的象征,可以看作是身份证;而Oauth认证凭证,一定是资源拥有者发放的,不仅是用户在资源拥有者系统身份的凭证,还是其某些授权资源访问的凭证,可以看作是钥匙。
3、SAML支持XACML协议进行权限控制。SAML协议较OAUTH来说确