www.7727s.com_金沙国际唯一官网_欢迎来访

OAuth 系列(一)序言

每项技术的诞生都是为了解决某个需求;
因此当我们学习技术的时候要搞清楚两个问题;

  1. 这项技术解决的是什么问题
  2. 这项技术是怎么解决问题的

本系列教程就是要对 OAuth 进行讲解;
我们先来回答上面第一个问题;

在互联网上有很多的应用;
这些应用是不同公司或个人开发的;
比如说 github 和 www.7727s.com博客
很多时候多个应用之间的用户都是交叉的;
比如说正在看这篇文章的你;
如果你已经有了 github 账号;
那我的博客可不可以使用你在 github 上面的用户名和头像?

最简单粗暴的传统方案就是把你的 github 的账号密码给www.7727s.com博客;
www.7727s.com博客用你的 github 账号密码获取用户名和头像;
但是这个方案至少有两个方面的问题;

安全

  1. www.7727s.com博客需要保存你的 github 账号明文密码这让人很不放心
  2. 即便你信任www.7727s.com博客;但是因为一些安全漏洞之类的原因你的 github 账号密码仍然可能被泄露;
  3. 如果你更改了 github 的账号密码;你还需要在www.7727s.com博客上重新保存新的账号密码;

权限

  1. 如何限制www.7727s.com博客只能获取你 github 上的用户名和头像;不能操作你的 github 仓库之类的内容;
  2. 如何撤销www.7727s.com博客获取你 github 上的用户名和头像这个权限;

OAuth 就是为了解决上面这些问题而诞生的;
Oauth 的解决方案是:
将角色和资源分离;
通过授权获取资源;
达到的目标是即不暴露你的账号密码还能划定权限;

OAuth 划分了4个角色:

  1. 资源服务器(resource server):github 服务器
  2. 授权服务器(authorization server):github 服务器
  3. 资源所有者(resource owner):你
  4. 第三方(Client):www.7727s.com博客

OAuth 授权类型也有 4 种:

  1. 授权码模式(Authorization Code)
  2. 密码模式(Resource Owner Password Credentials)
  3. 简化模式(也叫隐式授权)(Implicit)
  4. 客户端模式(Client Credentials)

我将在后续的系列文章中挨个讲解;

www.7727s.com博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论
Baidu
sogou