在我们平常使用互联网的过程中,大大小小的网站都有一套独立的账户管理体系。那么问题就来了:
- 每个网站我们都得注册。一般的注册流程(假定以邮箱为用户名)是设定用户名和密码,邮箱接收验证邮件并打开确认链接以完成邮箱验证。多个网站都在重复同一过程,对普通用户而言操作繁琐,对平台运营来说繁琐的注册流程容易引起用户流失。
- 密码怎么存?一般都会建议每个网站独立设置密码,于是有的用户将登录信息记在纸上(不方便),有的用户使用了密码管理软件(不安全)。但是有的用户就不信邪,所有网站都使用同一个密码,这样带来的问题是一旦某一网站被拖库,那密码就不再安全(如CSDN的数据库泄露事件导致600万用户密码被曝光,作者也是受害者之一)。
下面我们来了解一下OAuth2.0,看看能不能解决上述问题。
OAuth2.0是关于授权的行业标准,它的出现替代了2006年创建的OAuth1.0。OAuth2.0专注于帮助客户端开发人员(Web开发、桌面开发、移动开发、智能家居开发)简化授权过程的开发流程。
OAuth2.0 核心
- OAuth 2.0 框架 - RFC 6749
- 授权类型
- OAuth 2.0 Bearer Tokens - RFC 6750
- 安全性 - RFC 6819
移动应用和设备
- Native Apps - 原生应用建议使用OAuth2.0
- PKCE
- OAuth 2.0 Device Flow
Token和Token管理
- OAuth 2.0 Token Introspection - RFC 7662,用于确定令牌的活动状态和元信息
- OAuth 2.0 Token Revocation - RFC 7009, 令牌失效
- JSON Web Token - RFC 7519
其它扩展
- OAuth Assertions Framework - RFC 7521
- SAML2 Bearer Assertion - RFC 7522, 用于与现有系统集成
- JWT Bearer Assertion - RFC 7523,用于与现有系统集成
- OAuth WG Status Pages
社区资源
- OAuth 2.0 Simplified
-
Books about OAuth
- OAuth 2.0 Simplified by Aaron Parecki
- OAuth 2 in Action by Justin Richer and Antonio Sanso
- Mastering OAuth 2.0 by Charles Bihis
- OAuth 2.0 Cookbook by Adolfo Eloy Nascimento
- OAuth articles by Alex Bilbie