OAuth2 单点登录
简介:OAuth(Open Authorization)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用。OAuth2是OAuth协议的延续版本,OAuth1已经被废弃,现在OAuth2是用于授权的行业标准协议。
1. 四个角色
A. 客户端(client):本身不存储资源,需要通过资源拥有者的授权去请求资源服务器的资源,比如浏览器或内部服务;
B. 资源拥有者(Resource Owner):通常为用户,也可以是应用程序,他有访问资源的账号和秘钥;
C. 认证服务器(Authorization Server):用于服务提供商对资源拥有的身份进行认证、对访问资源进行授权,认证成功后会给客户端发放令牌access_token
,作为客户端访问资源服务器的凭据;
D. 资源服务器(Resource Server):拥有受保护的资源,如果请求包含正确的令牌,那就可以访问资源,比如提供客户端API的服务。
注意:服务提供商给接入方的身份凭据是:client_id(客户端标识) + client_secret(客户端秘钥),用于不能随便一个请求就能认证授权。
2. 运行流程
A. 客户端请求第三方授权;
B. 资源拥有者同意给客户端授权;
C. 客户端获取到授权码,请求认证服务器申请令牌;
D. 认证服务器认证授权码无误,同意向客户端发放令牌;
E. 客户端使用令牌请求资源服务器的资源;
F. 资源服务器认证令牌无误,同意开放受保护的资源。
3. 授权模式
A. 授权码模式(Authorization Code)
B. 密码模式(Resource Owner Password Credentials)
C. 简化模式(Implicit)
D. 客户端模式(Client Credentials)
4. sql语句
原文:https://www.cnblogs.com/ruhuanxingyun/p/13303719.html