OAuth2是什么?

OAuth2是一个授权协议。OAuth2.0框架能让第三方应用以有限的权限访问HTTP服务,可以通过构建资源拥有者与HTTP服务间的许可交互机制,让第三方应用代表资源拥有者访问服务,或者通过授予权限给第三方应用,让其代表自己访问服务。

我们需要关心如下角色:

  • 资源拥有者:拥有资源权限的一个人;
  • 受保护的资源:资源拥有者有权限访问的组件,大多数情况下是WebApi形式;
  • 客户端:只要软件使用了受保护的API,它就是客户端;

通过以上组件最终达到的效果是:让客户端为资源拥有者访问受保护资源。用户身份认证直接在用户(和用户的浏览器)与授权服务器之间进行,这个过程对客户端应用不可见。这一重要特性避免了用户将自己的凭证透露给客户端应用,对抗这种反模式正是发明OAuth的原因。

OAuth2不能做什么?

  • OAuth没有定义HTTP协议之外的情形;
  • OAuth不是身份认证协议;
  • OAuth没有定义用户对用户的授权机制;
  • OAuth没有定义授权处理机制;
  • OAuth没有定义令牌的格式;
  • OAuth没有定义加密方式;
  • OAuth不是单体协议;

OAuth2重要组件

  • OAuth客户端:是代表资源拥有者访问受保护资源的软件;
  • 受保护资源:能通过HTTP服务器进行访问,在访问时需要OAuth访问令牌。受保护资源需要验证收到的令牌,受保护资源对是否认可令牌拥有最终决定权;
  • 资源拥有者:有权将访问权限授权给客户端的主体。在大多数情况下,资源拥有者是一个人;
  • OAuth认证服务器:是一个HTTP服务,它在OAuth系统中充当中央组件,授权服务器对资源拥有者和客户端进行身份认证,让资源拥有者向客户端授权、为客户端颁发令牌、为受保护的资源校验令牌;

OAuth2细节:

  • scope参数:使用空格分隔的字符串;
  • 授权码许可流程:需结合前端信道和后端信道通信;

原文地址:http://www.cnblogs.com/bigstrong/p/16807169.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性