摘要

  • 令牌记录的是过去作出的委托,而非必然仍有效的当前政策。
  • 可审计的决定须同时说明令牌、当前状态、策略纪元和允许旧状态继续生效的期限。

设想管理员在十点撤销用户权限,某 API 却仍一次又一次接受早先签发的持有者令牌,直到令牌到期。签名和受众可以正确,期限也可能尚未届满;但若审计日志把每次重复接受都标成“已授权”,它就混淆了凭据校验与系统此刻作出的授权决定。

RFC 6749 将访问令牌定义为代表范围和期限的凭据;它可以是不透明引用,也可以自包含。仅凭持有令牌,无法知道资源服务器是否查询了最新状态。RFC 7009 规定撤销端点,同时承认撤销信息传播存在延迟。RFC 7662 允许资源服务器询问令牌是否处于活动状态,并取得适当元数据;但缓存一份肯定答复,仍会形成陈旧状态窗口。

到期、撤销与内省并不是同一控制。较短期限降低暴露上限,却不能证明账户、角色、客户端或政策直到到期前始终可接受。内省提供更接近当前的控制,但缓存时长决定旧答案可以替代新决定多久。

本地验证与状态查询回答不同问题:前者检查手中令牌,后者向授权方查询其当前状态。高风险操作应采用比普通读取更新的判据。控制范围还必须覆盖网关和应用中的下游授权缓存,并度量完整链路:签发、撤销传播、本地验证或内省,以及资源服务器此刻作出的授权决定。

授权状态核验记录应绑定非秘密令牌指纹、签发方、客户端、适用主体、受众、范围、明确的签发时间与到期时间、验证方法、撤销或内省状态、策略纪元、资源服务器的决定时间和缓存边界。它不承诺即时性,而是说明哪项当前证据使接受合理。