Skip to content

[authz] AuthorizeAs(device:enroll) 决策不进 auth_pdp_decision_total #2465

Open

Description

@ghbvf

现状

cert 路径经 lazyAuthorizer.AuthorizeAs 走 PDP,但 observableAuthorizer(auth_pdp_decision_total 装饰器)只实现 Authorize、不实现 AuthorizeAs,且 cert 路径拿的是裸 lazyAuthorizer(未经 observable 包裹)。device:enroll 的 PDP 决策在指标中完全不可见,与 HTTP/gRPC 路径不对称。
三维根因:代码=observableAuthorizer 无 AuthorizeAs;架构=cert 路径与 HTTP 路径取 authorizer 的接缝不同(一个裸 lazy、一个 observable 包裹);历史=metric 装饰器先于 explicit-subject 路径存在。

修复方向

  • 最小:observableAuthorizer 实现 AuthorizeAs(委托 + classifyDecision 记 metric),cert 路径改用包裹后的实例。
  • 彻底:在 composition 统一「authorizer 包裹一次(observable+lazy)后同时喂 HTTP/gRPC/cert」。

Files

  • framework/runtime/auth/pdp_metrics.go:107
  • cmd/corebundle/deviceidentity_wiring.go

Source

PR #2461 OOS finding(运维 P2,Cx3 跨切)。Discovered via /ship #2461。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-observabilityMetrics / Tracing / LoggingbacklogBacklog item — automation trigger 入 projectcx-2Cx2 改动量:同包 ≤5 文件pri-p2Priority P2type-debt技术债

    Projects

    • Status
      Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions