保障API安全与系统架构演进:OAuth2、OIDC及相关技术详解
1. 更多OAuth2授权类型
除了常见的授权类型,还有其他标准化的OAuth2授权类型,不过这里不做详细探讨:
- 设备授权授权类型 :适用于输入受限或无浏览器的设备,如物联网设备(智能冰箱、树莓派项目)。
- 隐式授权类型 :曾常用于单页应用(SPA),但已被授权码授权类型 + PKCE 取代。
- 资源所有者密码凭证授权类型 :历史上用于从HTTP Basic过渡到OAuth2,不过不建议使用。
2. ADR指南:选择支持的OAuth2授权类型
选择合适的OAuth2授权类型很重要,以下是一些讨论要点和考虑因素:
|决策|讨论要点|
| ---- | ---- |
|应支持哪些OAuth2授权类型?| - 确定与API交互的客户端类型,是否需要支持物联网设备和设备授权授权类型。
- 是否有仅支持隐式授权类型的旧SPA客户端。
- 是否应完全禁止使用资源所有者密码凭证授权类型。
- 若已有认证和授权的安全模型,是否要迁移到OAuth2。
- 哪种授权类型最能代表交互模型。
- 客户端能否迁移到该授权类型,若客户端受自己控制或第三方数量少,迁移会更容易。
- 新接入的客户端是否都应使用新的OAuth2授权类型。|
建议使用OAuth2并仅使用所需的授权类型,必要时再添加更多。若已有有效的安全模型且有大量付费客户,强制迁移可能不可行,但为了更符合标准,可能需要