一、OAuth介绍
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。
OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。
二、OAuth2 角色
OAuth 2 标准中定义了以下几种角色:
- 资源所有者(Resource Owner)
- 资源服务器(Resource Server)
- 授权服务器(Authorization Server)
- 客户端(Client)
1、资源所有者(Resource Owner)
在 OAuth 2 标准中,资源所有者即代表授权客户端访问本身资源信息的用户(User),也就是应用场景中的“开发者A”。客户端访问用户帐户的权限仅限于用户授权的“范围”(aka. scope,例如读取或写入权限)。
2、资源/授权服务器(Resource/Authorization Server)
资源服务器托管了受保护的用户账号信息,而授权服务器验证用户身份然后为客户端派发资源访问令牌。
3、客户端(Client)
在 OAuth 2 中,客户端即代表意图访问受限资源的第三方应用。在访问实现之前,它必须先经过用户者授权,并且获得的授权凭证将进一步由授权服务器进行验证。
三、OAuth2 授权
1、Authrization Request
客户端向资源所有者请求其授权
2、Authorization Grant(Get)
客户端收到资源所有者的授权许可,这个授权许可是一个代表资源所有者授权的凭据。
3、Authorization Grant(Post)
客户端向授权服务器请求访问令牌,并出示授权许可。
4、Access Token(Get)
授权服务器对客户端身份进行认证,并校验授权许可,如果都是有效的,则发放访问令牌
5、Access Token(Post && Validate)
客户端向资源服务器请求受保护的资源,并出示