跳转到内容

安全与备份

  • 浏览器会话使用 HttpOnly、Secure、SameSite Cookie,并绑定 CSRF 校验。
  • 管理与账户接口使用同源 Cookie,不接受旧 Bearer 作为管理凭据。
  • 认证入口在时钟异常时失败关闭(503),避免过期或错乱的令牌被接受。
  • 所有管理写入经过访问代次与审计,不绕过身份治理。
  • Access Token 使用 typ=at+jwt,与 ID Token 明确区分。
  1. 生成新的 RSA 私钥并写入新的文件路径。
  2. 更新配置中的 oidc.rsa_private_key_path。
  3. 滚动重启实例;JWKS 会发布新公钥。
  4. 旧令牌在有效期内仍可被验证,过期后移除旧密钥。

Reader 用于内省。轮换时先新增凭据并让调用方切换,再撤销旧凭据; 避免在切换窗口内出现内省失败导致保护 API 全部拒绝。

通过管理控制台显式轮换,配置中的 bootstrap 条目不会覆盖已有 secret。

  • PostgreSQL 逻辑备份(保留自定义格式,便于选择性恢复)
  • RSA 私钥与配置文件(单独加密归档,与数据库备份分开存放)
终端窗口
pg_dump -Fc -d yufu > yufu-$(date +%F).dump

定期在隔离环境恢复备份并验证:

  • Discovery 与 JWKS 可访问
  • 管理员可登录
  • 已注册客户端与授权关系完整
  • 会话与撤销状态符合预期
  • /api/v1/health/ready:认证时钟就绪状态
  • 登录失败率、内省失败率、后通道投递失败率
  • 数据库连接池使用率与慢查询
  • 时钟样本一致性与误差

2xx 只表示对端接受通知,本地授权撤销在此之前已经生效。投递失败应重试并记录, 不要回滚本地撤销。

保护 API 必须失败关闭。恢复后按 2 秒 / 5 秒规则重新建立缓存,不要延长旧结果的 TTL。

认证入口返回 503 时,先修复 NTP 可达性与来源一致性,不要临时关闭检查。

服务无法完成认证时保持失败关闭;恢复后确认迁移版本与会话状态,再接入流量。