ARAP: core-first restructure with companion profiles - #658
Merged
Merged
Conversation
This was referenced Sep 20, 2026
mcguinness
force-pushed
the
arap-restructure
branch
from
September 21, 2026 03:54
bb641c7 to
2e9412c
Compare
aeoess
added a commit
to Agent-Authority-Conformance/aps-conformance-suite
that referenced
this pull request
Sep 22, 2026
…p-binding fixtures: arap-binding, candidate cases against the AuthZEN ARAP profile at openid/authzen#658
Present the protocol in flow order: requestable denial, submission, task, approval and re-evaluation. Message definitions stay in those sections, cut to name, presence, type, and one sentence; every processing rule has one normative home in PEP Processing, PDP Processing, or Access Request Service Processing. Trusted-state examples lead the exchange; binding artifacts follow in a section of their own. Add the models the rules rest on: a Binding Model table covering the denial and approval boundaries in their signed and lookup forms, seven Protocol Invariants, a Decision Context Members table giving each extension member's effect when recognized and its handling when not, and the profile's position among the AuthZEN continuation mechanisms. Security Considerations become threat statements citing the rules that mitigate them, and introduce no requirements of their own. Catalog, bulk, callback, and actor delegation material moves to companion profiles, referenced normatively where their features are used. A normative reference is authoritative when the feature is used and does not require implementing the companion. No requirement changes in actor, condition, obligation, exceptions, or force. The RFC 2119 keyword count falls from 409 to 314 through duplicate folds, each paired with a surviving rule, and relocation to the companions.
Four capabilities that only some deployments need, each carrying its own document format, endpoint, or verification model, and each hooking into the base profile through its declared extension points and registering its member names. - Catalog: how a PEP resolves request fields backed by application, entitlement, role, or cost-center catalogs. - Bulk Access Requests: the items member of the submission and the Task Handle, bundle and per-item denial binding, aggregate status including partial, and bulk cancellation and re-evaluation. - Callback Notifications: the callback submission member, notification delivery and authentication, and interaction with polling. - Actor Delegation: the client.actor and client.source members, the delegation model they express, and actor-chain verification. Each moves the material verbatim from the base profile. The base keeps the rules that reference these members: the PEP preserves actor identity when it submits, the Access Request Service does not treat unverified actor content as authorization input, and structural comparison excludes subject.properties.act.
Build and render all five profiles from explicit sources, add the convert, render, and artifact steps for each new companion to the Pages workflow together with the matching download steps in the publish job, and list the companions in the README.
mcguinness
force-pushed
the
arap-restructure
branch
from
September 29, 2026 00:29
2e9412c to
943d97c
Compare
davidjbrossard
left a comment
Collaborator
There was a problem hiding this comment.
Overall I think it reads well. I couldn't see any glaring issues and it breaks down the original doc into the subfiles you created.
- Re-evaluation Mode is never explicitly defined. Should we have a glossary of terms?
Collaborator
Author
|
Good catch. ARAP already has a Terminology section, but the completion-mode concept was missing from it. I've added "Completion Mode" there, with |
davidjbrossard
approved these changes
Oct 1, 2026
davidjbrossard
left a comment
Collaborator
There was a problem hiding this comment.
Collectively approved on the WG call 10/01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restructures the AuthZEN Access Request and Approval Profile (ARAP) into a narrow-waist core with companion profiles, without changing the force of any requirement.
What changes
Core protocol first. The base document reads in flow order: requestable denial, submission, task, approval and re-evaluation. Message definitions stay in those sections; every processing rule has one normative home in PEP Processing, PDP Processing, or Access Request Service Processing. Trusted-state examples lead; binding artifacts follow in their own section.
Companion profiles. Four capabilities move out of the base, each hooking in through the extension points and registering its member names:
authzen-access-request-catalog-profile-1_0.md: catalog-backed request input (informative reference)authzen-access-request-bulk-profile-1_0.md: multi-item submissions and thepartialstatusauthzen-access-request-callback-profile-1_0.md: completion notificationsauthzen-access-request-actor-profile-1_0.md:client.actor,client.source, and actor-chain verificationThe core states that a normative reference to a companion is authoritative when its feature is used and does not require implementing it.
Explicit models. A Binding Model table (denial and approval boundaries, signed and lookup forms), seven Protocol Invariants, a Decision Context Members table giving each extension member's effect when recognized and its handling when not, and the profile's position among the AuthZEN continuation mechanisms (obligations, partial evaluation, Access Request, retry).
Security Considerations are threat statements that cite the rules mitigating them; they introduce no requirements.
What does not change
No requirement was added, removed, or changed in actor, condition, obligation, exceptions, or force. The base document's RFC 2119 keyword count fell from 409 to 314 entirely through listed duplicate folds, each paired with its surviving rule, and relocation to companions. Every stage was verified by script (build, anchor resolution, section-aware unit comparison, sentence diff) and independently audited before commit; the audits found no meaning change.
Open protocol questions
The restructure surfaced protocol questions it did not resolve, and adopts no answer to any of them. They are filed as eight issues, each stating the problem and recommending a solution:
Five independent reviews of this restructure converged on the same blockers, and all but one sit in the signed-binding layer. #659, #660, and #661 together define what a portable signed artifact contains and who vouches for the key that signs it. #666 asks who has to implement any of it: today every conforming Access Request Service and PDP must support JWS verification even when their deployment never exchanges a signed artifact, and that is the change that would most reduce what an implementer builds. #659, #660, #661, and #666 should be settled in the same cycle. #663 is the one a PEP implementer meets first. A longer write-up of the layering, with the move map and the capability-advertisement semantics, is in
PROFILE-FAMILY-PROPOSAL.mdon thearap-editorialbranch.Two further issues against the companion profiles, for callback acceptance semantics and an unsupported
itemsmember, are drafted and not yet filed.Also
CI workflow, README, and Makefiles build and publish all five profiles.