security-canon/infospace/vocabulary/mode-of-authority/auth-modes.yaml
tegwick a4ec38feb2 Promote Mode of Authority to a canon artifact (T06, T07)
Publishes sec-authority:ModeOfAuthority v0.2.0 with machine-readable
auth-modes.yaml and dimensions.yaml, and moves the v0.1 draft verbatim to
research/ as provenance — it had been sitting in spec/, which the Repository
Layout Standard reserves for implementation guidance.

Terminology separation decided as SECURITY-DEC-2026-002 / SEC-ADR-002. The
v0.1 Subject dimension becomes AuthorityContext, because InfoTechCanon's
access-control model already owns Actor and Subject and binds them as "Subject
is the access-control view of an actor"; reusing the pair for two distinct
parties would have made one word mean two things across the canons. Operator
versus OPERATE, Build Plane versus CONSTRUCT, Policy Plane versus GOVERN, Audit
Plane versus EvidenceBoundary and Condition versus Activation are separated
rather than merged, and Scope, AccessOperations, Purpose and PrincipalType are
declared imports. Namespace sec-authority: reserved; itc-caring: and itc-access:
stay upstream and are not aliased.

Two of the draft's open questions are closed. CONSTRUCT stays distinct from
GOVERN, the test being the object of authority — the artifact versus the
constraint it must satisfy — which keeps "who may edit the policy" separable
from "who decides what it must say". Substrate authority becomes a DOMINATES
relation between Authority Realms carrying dominance_kind, observable and
evidence_boundary, which makes the relative-sovereignty principle checkable
instead of merely asserted.

Orientation surfaces published: the one-page vocabulary card, the ten-question
design heuristic promoted from the draft's appendix to section 3 of the
artifact, the role/plane/mode disambiguation page, and the cross-layer mapping
to InfoTechCanon with its deliberate blanks where one layer has no equivalent.

Generalising CARING section 32 beyond non-human subjects is deliberately not
bundled in; it is InfoTechCanon's to accept as a demand signal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUkN13CAqtXWPXuEiEtmJj

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 36656@bnt-lap001
Assistant-Session: 66d6eece-d245-43ca-85e8-68a1b5970a67
2026-09-20 21:43:11 +02:00

97 lines
5.3 KiB
YAML

id: sec-authority:AuthModeCatalog
title: SecurityCanon Auth Mode Catalog
type: catalog
namespace: sec-authority
version: 0.2.0
status: draft
source: infospace/vocabulary/mode-of-authority/SecurityCanonModeOfAuthority.md
notation: "MODE @ SCOPE"
non_ordered: true
non_ordered_note: >-
Auth Modes classify the kind of authority, not its magnitude. This list is not
a privilege ladder and must not be compared ordinally.
auth_modes:
- id: USE
intent: Exercise the system for its designated domain purpose.
question: How do I obtain the value this system exists to provide?
typical_actions: [send a message, edit a document, place an order, query application data, consume an API]
boundary: >-
USE does not imply low privilege. A business user may perform highly
consequential actions entirely within USE.
contrast:
OBSERVE: reading a customer invoice is USE; reading latency metrics for the invoice service is OBSERVE
- id: OBSERVE
intent: Establish knowledge about the system, its behavior or its state.
question: What is this system doing?
typical_actions: [read logs, view metrics, inspect traces, read audit records, examine security events]
boundary: >-
Distinct from ordinary read access. The access operation may be identical;
the relationship to the system differs.
contrast:
USE: understanding the system rather than obtaining its domain value
- id: OPERATE
intent: >-
Maintain or change the operational state of an instantiated system while
preserving its intended definition.
question: How do I keep this instantiated system functioning?
typical_actions: [start, stop, restart, scale, fail over, restore, drain a node, terminate a stuck process]
boundary: Changes running state, not definition.
contrast:
ADMINISTER: restarting a database is OPERATE; changing its authentication configuration is ADMINISTER
- id: ADMINISTER
intent: Configure resources and delegated authority within an established governance regime.
question: How do I configure this system within existing rules?
typical_actions: [configure resources, create users, assign roles, manage groups, provision resources, delegate bounded authority]
boundary: >-
Operates inside rules established elsewhere. Broad discretion does not
include redefining the constraints on that discretion.
contrast:
GOVERN: assigning application roles is ADMINISTER; deciding which roles administrators may assign is GOVERN
- id: GOVERN
intent: Define the rules under which authority may be exercised.
question: What rules constrain how authority may be exercised?
typical_actions: [set policy ceilings, define delegation rules, set separation-of-duty requirements, decide allowed identity providers]
boundary: Authority over authority.
test: Can this actor decide what another administrator is allowed to decide?
contrast:
CONSTRUCT: GOVERN decides the constraint; CONSTRUCT changes the artifact that must satisfy it
- id: CONSTRUCT
intent: Change definitions or artifacts from which system behavior is produced.
question: How do I change what future incarnations of this system can be?
typical_objects: [source code, infrastructure-as-code, build definitions, container images, schemas, policy-as-code, CI/CD pipelines]
boundary: >-
Authority over the possible future system, not necessarily over the
running instance. Substantial CONSTRUCT authority may coexist with no
production runtime authority.
contrast:
ADMINISTER: ADMINISTER changes the instantiated system; CONSTRUCT changes definitions capable of producing systems
- id: SOVEREIGN
intent: Establish, recover, replace or bypass the normal authority regime of a scope.
question: How is the authority regime itself established, recovered or replaced?
typical_situations: [initial bootstrap, establishing trust roots, root-account recovery, rebuilding the control plane, restoring authority after catastrophic failure]
boundary: >-
Sovereign relative to a defined scope and authority boundary, never
all-powerful everywhere. SOVEREIGN @ database does not imply SOVEREIGN @ host.
see_also: Evidence Boundary — sovereign authority is not necessarily unaudited
not_auth_modes:
- {term: AUDIT, expressed_as: "OBSERVE @ evidence"}
- {term: BACKUP, expressed_as: "OPERATE @ backup-system"}
- {term: DEVELOPER, expressed_as: "CONSTRUCT @ product"}
- {term: SUPPORT, expressed_as: "USE or ADMINISTER with authority_context and relation=IMPERSONATED"}
- {term: BREAK_GLASS, expressed_as: "any mode with activation=BREAK_GLASS"}
- {term: FEDERATION, expressed_as: "any mode with provenance=FEDERATED"}
- {term: AGENT, expressed_as: "any mode with principal_type=AGENT"}
- {term: SUPERADMIN, expressed_as: "ADMINISTER or SOVEREIGN at a named scope"}
- {term: ROOT, expressed_as: "SOVEREIGN @ host, or ADMINISTER @ scope — implementation-specific"}
- {term: OWNER, expressed_as: "GOVERN or ADMINISTER at a named scope"}
- {term: BILLING, expressed_as: "USE @ billing, or ADMINISTER @ billing"}
- {term: AUTOMATION, expressed_as: "any mode with principal_type=WORKLOAD or CONTROLLER"}
- {term: SECURITY, expressed_as: "ADMINISTER @ security-controls, or GOVERN @ security-controls"}