用途:面向身份与访问管理,指导安全实现 OAuth 2.0、OpenID Connect 与基于令牌的认证架构,适用于 Web 应用、移动应用、SPA 和机器对机器服务。
主要能力与原则:公共客户端(SPA、移动、CLI)应使用带 PKCE 的授权码流程,隐式流程已弃用且不安全;验证 JWT 的签名算法及 iss、aud、exp、nbf 声明;用细粒度 scope 表达具体权限(如 read:documents、write:orders)以实现最小权限;令牌安全存储(Web 用 HTTP-only 安全 Cookie,移动用安全存储 API,服务端用加密凭据库);刷新令牌视为高敏感凭据,绑定客户端、轮换使用并设置绝对过期时间。
技术要点:授权码 + PKCE 需生成随机 code_verifier,用 S256 派生 code_challenge,授权请求发送 challenge,令牌交换发送 verifier;无用户上下文的服务器间认证用客户端凭据流程并收窄 scope;令牌刷新采用滑动窗口,短生命周期访问令牌(5-15 分钟)配较长刷新令牌(小时至天)并每次轮换;OIDC 请求 openid scope,验证 id_token 签名与声明后用 userinfo 端点获取资料;SPA 可用 BFF 模式由服务端处理流程并将令牌存入 HTTP-only Cookie;登出时调用撤销端点,并为需提前失效的 JWT 维护服务端拒绝列表。
常见模式:多租户身份按 issuer 与租户声明路由校验;敏感操作通过 acr 声明触发 MFA 的逐步认证;用 OAuth 2.0 Token Exchange(RFC 8693)做服务间委派;输入受限设备用设备授权流程。
需避免:不要把访问或刷新令牌存入 localStorage;不要省略 state 参数;不要跳过 aud 校验;不要自造加密令牌格式,应使用成熟 JWT 库与标准规范。
限制:资料未提供具体安装命令、代码示例、收费或平台支持信息。