目标
某集群偶发拒绝刚签发的令牌并返回 401,其他集群却正常,怀疑时钟不同步。本配方对比各主机与签发方的时间,检查 NTP 同步状态,并解析令牌的 nbf 与 exp 声明,判断是否因主机时钟偏快而在生效时间之前就被拒绝,从而修正时间同步或校验宽限。
步骤要点
- 对比主机时间与签发方时间,检查 NTP 同步状态。
- 解析令牌 nbf/exp/iat 声明,计算与当前时间的偏移。
- 对漂移主机修复 NTP,而不是一味放大校验宽限。
- 验证修复后新鲜令牌的 401 率归零。
date -u +%s
# issuer reported time
curl -s https://issuer.example.com/.well-known/openid-configuration >/dev/null
echo "compare with NTP: $(timedatectl show -p NTPSynchronized --value)"
排错提示
- 放大宽限只能掩盖漂移,不能修复。
- 漂移通常按主机发生,只需检查出问题的实例。
- 签发方与校验方需使用同一时间单位。
适用边界
- 不处理重放或签名问题。
- 需要在不泄露密钥的前提下检查声明。