Spring Social、Spring Security OAuth2 是基于OAuth协议的。
1、OAuth协议解决的问题:
应用可以访问用户在微信上的所有数据。
用户只有修改密码,才能收回授权。
密码泄露的可能性很大。
令牌上用户只能访问相应的数据,令牌具有有效期,不需要密码,使用令牌访问。
2、OAuth协议的角色:
服务提供商(Provider):负责提供令牌。
资源所有者(Resource owner):访问的资源属于谁的。
第三方应用(client):相对服务提供商来说属于第三者。
在服务提供商里面还有2个角色:
认证服务器(Authorization Server):认证用户的身份,并且产生令牌。
资源服务器(Resource Server):保存用户的资源,验证令牌。
注意:在逻辑上认证服务器和资源服务器是2个角色,但在物理上可以是一台机器。
3、OAuth协议中的授权模式:
第二步同意授权可以有4种方式:
授权码模式、简化模式、密码模式、客户端模式。
授权码模式是功能最完整最安全的模式:
备注:授权码模式中用户同意授权这个动作是在认证服务器完成的,其他几种方式都是在第三方完成。
网友评论