Skip to content

身份认证与授权 ​

身份认证与授权的区别 ​

认证确认调用者身份,授权判断该主体能否对特定资源执行操作。授权决策可结合角色、资源归属和上下文。

已登录用户仍可能越权。资源访问权限应由服务器按请求校验。

Session、Token 与 JWT 的关系 ​

Session 常将状态保存在服务端,客户端携带会话标识。Token 是凭证的通称,可为不透明值或结构化格式。JWT 是声明格式,可签名或加密。

签名 JWT 的负载通常可读。Cookie 是传递凭证的一种方式,也可承载 JWT。

凭证存储、有效期与撤销 ​

短有效期限制泄漏后的使用窗口。服务端会话可通过移除状态撤销。自包含令牌通常需要短有效期或额外的撤销查询。

浏览器存储方案要同时考虑 XSS、CSRF 和刷新流程。Bearer 凭证泄漏后持有者通常可直接使用。

OAuth 2.0 与 OpenID Connect ​

OAuth 2.0 提供委托授权框架,让客户端获得访问受保护资源的权限。OpenID Connect 在此基础上提供身份层和 ID Token。

现代交互式客户端常用授权码与 PKCE。登录流程应验证发行者、受众及适用的 nonce 和 state。

Access Token、Refresh Token 与 ID Token ​

Access Token 提交给资源服务。Refresh Token 提交给授权服务器换取新令牌。ID Token 供 OIDC 客户端验证用户身份。

三者的受众与用途不同。资源 API 应按自己的令牌要求验证 Access Token。

基于 MIT 许可发布