CAS的单点登陆时保障客户端的用户资源的安全html
oauth2则是保障服务端的用户资源的安全安全
CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我(CAS客户端)的资源。服务器
oauth2获取的最终信息是,我(oauth2服务提供方)的用户的资源到底能不能让你(oauth2的客户端)访问code
CAS的单点登陆,资源都在客户端这边,不在CAS的服务器那一方。htm
用户在给CAS服务端提供了用户名密码后,做为CAS客户端并不知道这件事。blog
随便给客户端个ST,那么客户端是不能肯定这个ST是用户伪造仍是真的有效,因此要拿着这个ST去服务端再问一下,这个用户给个人是有效的ST仍是无效的ST,是有效的我才能让这个用户访问。token
oauth2认证,资源都在oauth2服务提供者那一方,客户端是想索取用户的资源。资源
因此在最安全的模式下,用户受权以后,服务端并不能直接返回token,经过重定向送给客户端,由于这个token有可能被黑客截获,若是黑客截获了这个token,那用户的资源也就暴露在这个黑客之下了。get
因而聪明的服务端发送了一个认证code给客户端(经过重定向),客户端在后台,经过https的方式,用这个code,以及另外一串客户端和服务端预先商量好的密码,才能获取到token和刷新token,这个过程是很是安全的。class
若是黑客截获了code,他没有那串预先商量好的密码,他也是没法获取token的。这样oauth2就能保证请求资源这件事,是用户赞成的,客户端也是被承认的,能够放心的把资源发给这个客户端了。
因此cas登陆和oauth2在流程上的最大区别就是,经过ST或者code去认证的时候,需不须要预先商量好的密码。
转自:https://www.cnblogs.com/flying607/p/7652537.html