Skip to content

[authz] BASELINE-OWNER-RULE-TENANT-FREEZE-01 owner-action 闭集 Soft→Hard(从 IsOwnerScoped 派生) #2402

Description

@ghbvf

现状

BASELINE-OWNER-RULE-TENANT-FREEZE-01(corecells/accesscore/slices/authorizationdecide/baseline_freeze_test.go)的 owner-scoped action 闭集由手工维护的 ownerScopedBaselineSelfRules map(rule-ID → action)提供。文件 godoc 已承认这是 Soft 盲区:新增 owner-scoped action 若遗漏注册,其 allow surface 不受 property② closed-set 保护。#2351 已正确注册 baseline-device-read-self,但盲区本身未缩小。

证据:baseline_freeze_test.go:118 ownerScopedBaselineSelfRules 手工 map;机器源 authz.Permission.IsOwnerScoped() + framework/pkg/authz/permission_test.go TestPermissions_OwnerScopedPinnedSet(8 perm 闭集冻结)已存在但未与 freeze 的 action 维度联动。

三维根因:代码 = 手工清单与 IsOwnerScoped() 机器源并存、未联动;架构 = freeze 的 action 维度无单源派生(跨所有 owner action,系统性);历史 = #1977 / #1863 / #2351 每次新增 owner action 都手工追加注册。

修复方向

  • 最小:freeze test 增断言——每个 IsOwnerScoped()==true 的 permission 必在 ownerScopedBaselineSelfRules 的 value 集中(漏注册即 CI 红),把 action 维度 Soft→Medium。
  • 彻底:ownerScopedBaselineSelfRules 的 action value 集从 authz owner-scoped 集派生(rule-ID 仍手写,action 覆盖机器校验)。
  • 重构:baseline 规则由 metadata/contract 声明 + codegen + byte golden 派生(PR-13 端态),freeze test 退役。

Files

  • corecells/accesscore/slices/authorizationdecide/baseline_freeze_test.go:118
  • framework/pkg/authz/permission.go(IsOwnerScoped)· framework/pkg/authz/permission_test.go(TestPermissions_OwnerScopedPinnedSet)

Source

PR #2400 finding F10(内置 review 安全/DX 维度 P2·Cx1)· Discovered via /ship #2351。Medium→Hard 低成本路径(per ai-robust.md)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-auth认证 Authn + 授权 AuthzbacklogBacklog 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