2026-10-10 10:18:58 +02:00
|
|
|
id: CCR-2026-0043
|
|
|
|
|
kind: credential-change-request
|
|
|
|
|
schema_version: 1
|
|
|
|
|
request_type: broker-issuer-binding
|
2026-10-10 11:12:19 +02:00
|
|
|
title: Operator OIDC role for the keycape-client-secret-generate broker issuer (net-kingdom-admins,
|
|
|
|
|
aal2)
|
|
|
|
|
status: applied
|
2026-10-10 10:18:58 +02:00
|
|
|
created: '2026-10-10'
|
|
|
|
|
updated: '2026-10-10'
|
|
|
|
|
requester:
|
|
|
|
|
agent: railiance-platform
|
2026-10-10 11:12:19 +02:00
|
|
|
reason: RPF-WP-0054-T05. ops-warden (23985370) names the caller as the human operator
|
|
|
|
|
who runs warden case run, using their own OIDC session. Founder chose net-kingdom-admins
|
|
|
|
|
+ aal2 on 2026-10-10. The issuer policy is live from CCR-2026-0040.
|
2026-10-10 10:18:58 +02:00
|
|
|
review:
|
|
|
|
|
required: true
|
|
|
|
|
required_approvers:
|
|
|
|
|
- platform-owner
|
|
|
|
|
- key-cape-owner
|
2026-10-10 11:12:19 +02:00
|
|
|
comments:
|
|
|
|
|
- at: '2026-10-10T08:27:32+00:00'
|
|
|
|
|
reviewer: platform-owner, key-cape-owner (founder Bernd Worsch)
|
|
|
|
|
decision: approved
|
|
|
|
|
comment: 'Approve issuer binding for keycape-client-secret-generate: net-kingdom-admins
|
|
|
|
|
+ aal2 (RPF-WP-0054).'
|
|
|
|
|
- at: '2026-10-10T08:27:32+00:00'
|
|
|
|
|
reviewer: founder
|
|
|
|
|
decision: binding_confirmed
|
|
|
|
|
comment: groups=[net-kingdom-admins] and /assurance/level=aal2, same binding as
|
|
|
|
|
CCR-2026-0034.
|
2026-10-10 10:18:58 +02:00
|
|
|
target:
|
|
|
|
|
domain: infotech
|
|
|
|
|
tenant: platform
|
|
|
|
|
workload: credential-broker
|
|
|
|
|
environment: production
|
2026-10-10 11:12:19 +02:00
|
|
|
purpose: Let a net-kingdom-admins member with a verified second factor log in for
|
|
|
|
|
15 minutes with only the broker issuer policy, so credential.py generate can mint
|
|
|
|
|
the create-only keycape/client-secret-generate token.
|
2026-10-10 10:18:58 +02:00
|
|
|
openbao:
|
|
|
|
|
issuer_policy: credential-broker-keycape-client-secret-generate-issuer
|
|
|
|
|
auth:
|
|
|
|
|
method: oidc
|
|
|
|
|
mount: netkingdom
|
|
|
|
|
role: credential-broker-keycape-client-secret-generate
|
|
|
|
|
role_file: openbao/auth/credential-broker-keycape-client-secret-generate-oidc-role.json
|
2026-10-10 11:12:19 +02:00
|
|
|
bound_claims_confirmed: true
|
2026-10-10 10:18:58 +02:00
|
|
|
founder_confirmation_items:
|
|
|
|
|
- bound_claims_confirmed stays false until the founder confirms groups=[net-kingdom-admins]
|
|
|
|
|
and /assurance/level=aal2, the same binding as CCR-2026-0034 (key-cape b2ed890f).
|
|
|
|
|
- The role carries only the issuer policy. It cannot read or write KV; it can mint
|
2026-10-10 11:12:19 +02:00
|
|
|
keycape-client-secret-generate tokens through that token role, and look up and revoke
|
|
|
|
|
tokens by accessor.
|
|
|
|
|
- Loopback CLI callbacks only (no UI callback); 15m with unlimited uses inside that
|
|
|
|
|
lifetime (a limited-use token cannot create the child grant token), no default policy.
|
2026-10-10 10:18:58 +02:00
|
|
|
access_frontdoor:
|
|
|
|
|
type: none
|
|
|
|
|
catalog_id: none
|
|
|
|
|
risk:
|
|
|
|
|
level: medium
|
|
|
|
|
notes:
|
2026-10-10 11:12:19 +02:00
|
|
|
- Membership of net-kingdom-admins is the access decision; that group already holds
|
|
|
|
|
the KeyCape operator reader (CCR-2026-0034).
|
2026-10-10 11:18:38 +02:00
|
|
|
- Worst case within 15m is unused keycape/<client_id> entries; existing entries
|
|
|
|
|
cannot be overwritten (CCR-2026-0040 is create-only).
|
2026-10-10 10:18:58 +02:00
|
|
|
verification:
|
|
|
|
|
positive:
|
2026-10-10 11:12:19 +02:00
|
|
|
- Readback after apply matches source for the role (done by applier-apply; prints
|
|
|
|
|
nothing).
|
|
|
|
|
- A member with aal2 logs in with role credential-broker-keycape-client-secret-generate
|
|
|
|
|
and the token's policies are exactly [credential-broker-keycape-client-secret-generate-issuer].
|
2026-10-10 10:18:58 +02:00
|
|
|
negative:
|
|
|
|
|
- A non-member or a member without aal2 cannot obtain the role.
|
2026-10-10 11:12:19 +02:00
|
|
|
- The issuer token is denied on platform/* and on token creation through any other
|
|
|
|
|
role.
|
2026-10-10 10:18:58 +02:00
|
|
|
activation_conditions:
|
|
|
|
|
- Founder approval (two reviews) and bound_claims_confirmed true.
|
|
|
|
|
- CCR-2026-0040 applied (done 2026-10-09).
|
2026-10-10 11:12:19 +02:00
|
|
|
evidence:
|
|
|
|
|
- at: '2026-10-10T08:27:38+00:00'
|
|
|
|
|
actor: founder
|
|
|
|
|
kind: delegated_metadata_apply
|
|
|
|
|
result: passed
|
|
|
|
|
details:
|
|
|
|
|
- Delegated metadata applier ran as founder using local bao CLI ambient authority.
|
|
|
|
|
- 'Issuer policy confirmed live and matching source: sys/policies/acl/credential-broker-keycape-client-secret-generate-issuer'
|
|
|
|
|
- 'OIDC role metadata write: auth/netkingdom/role/credential-broker-keycape-client-secret-generate'
|
|
|
|
|
- Readback matched source for the role.
|
|
|
|
|
- No secret values were read, written, printed, or accepted in argv.
|
2026-10-10 11:18:38 +02:00
|
|
|
- at: '2026-10-10T09:15:56+00:00'
|
|
|
|
|
actor: founder
|
|
|
|
|
kind: delegated_metadata_apply
|
|
|
|
|
result: passed
|
|
|
|
|
details:
|
|
|
|
|
- Delegated metadata applier ran as founder using local bao CLI ambient authority.
|
|
|
|
|
- 'Issuer policy confirmed live and matching source: sys/policies/acl/credential-broker-keycape-client-secret-generate-issuer'
|
|
|
|
|
- 'OIDC role metadata write: auth/netkingdom/role/credential-broker-keycape-client-secret-generate'
|
|
|
|
|
- Readback matched source for the role.
|
|
|
|
|
- No secret values were read, written, printed, or accepted in argv.
|
2026-10-10 10:18:58 +02:00
|
|
|
lifecycle:
|
|
|
|
|
deactivate: Delete auth/netkingdom/role/credential-broker-keycape-client-secret-generate.
|
|
|
|
|
rotate: Not applicable (no stored credential).
|
2026-10-10 11:12:19 +02:00
|
|
|
compromised: Delete the role, revoke issued tokens; review keycape/ metadata for
|
|
|
|
|
entries without an accepted case.
|
2026-10-10 10:18:58 +02:00
|
|
|
state_hub:
|
|
|
|
|
workplan: RPF-WP-0054
|
|
|
|
|
task: RPF-WP-0054-T05
|