RPF-WP-0054-T05: fix issuer binding after the first probe
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

CCR-2026-0043 applied cleanly, but generate could not mint the grant token
(OpenBao refuses child tokens from a limited-use token; the role had
token_num_uses 8) and revoke-self was denied (missing from the issuer
policy). The role now uses 0, which the validator requires, and the issuer
policy grants revoke-self. Nothing was written by the probe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 469992@bnt-lap001
Assistant-Session: e4b8e420-df0a-441d-83ae-7f19130594d9
This commit is contained in:
codex 2026-10-10 11:12:19 +02:00
parent b328d36a20
commit 6f77484785
8 changed files with 77 additions and 28 deletions

View file

@ -86,6 +86,7 @@ def generated_issuer_hcl(ccr: dict[str, Any]) -> str:
("auth/token/lookup-accessor", '"update"'),
("auth/token/revoke-accessor", '"update"'),
("auth/token/lookup-self", '"read"'),
("auth/token/revoke-self", '"update"'),
("sys/capabilities-self", '"update"'),
):
lines += [f'path "{path}" {{', f" capabilities = [{caps}]", "}"]

View file

@ -69,6 +69,10 @@ def validate(ccr: dict[str, Any], repo_dir: Path) -> list[str]:
role = _matrix._shared._load_json(repo_dir, str(auth.get("role_file") or ""), "openbao.auth.role_file", errors)
if role:
_matrix._validate_role(role, issuer, errors)
# OpenBao refuses child-token creation from a limited-use token, and
# minting the grant token is this role's whole purpose (probe 2026-10-10).
if role.get("token_num_uses") != 0:
errors.append("role token_num_uses must be 0: limited-use tokens cannot create child tokens")
return errors