An Illustrated Guide to OAuth
9 months ago
- #Authentication
- #OAuth
- #Security
- OAuth于2007年由Twitter推出,允许第三方应用在不共享密码的情况下代表用户发布推文。
- OAuth使用访问令牌(类似用户专属的API密钥),使应用能代表用户执行操作或访问数据。
- OAuth流程包含用户授权(资源所有者授予权限)和授权码流程(应用用授权码换取访问令牌)。
- OAuth通过避免在URL中传递访问令牌、改用安全后端请求交换授权码来保障安全性。
- OAuth术语包括:资源所有者(用户)、OAuth客户端(应用)、授权服务器(用户登录处)和权限范围(授予的权限)。
- 注册OAuth应用需提供应用名称和重定向URI,服务商会颁发客户端ID和客户端密钥。
- OAuth流程会将用户重定向至授权服务器登录并同意权限范围,随后将授权码返回给应用。
- 前通道(不安全,URL可见)与后通道(安全,加密POST请求)是OAuth流程的核心概念。
- PKCE(读作'pixie')是一种为无后端应用(如移动端/JS应用)加固OAuth流程的方法。
- OAuth存在多种实现方式,包括隐式流程(安全性较低)、令牌刷新流程,OpenID Connect(OIDC)还扩展了登录功能。