| Internet-Draft | OAuth Authorization Evidence | June 2026 |
| Liu, et al. | Expires 25 December 2026 | [Page] |
This specification defines an authorization details type for including authorization evidence and audit trail information in OAuth 2.0 access tokens using the Rich Authorization Requests (RAR) framework. When an Authorization Server processes user consent, it enriches the authorization details with cryptographic proof of user confirmation, supporting accountability, compliance, and dispute resolution in scenarios where autonomous agents act on behalf of users.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 25 December 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
In traditional OAuth 2.0 [RFC6749] flows, the Authorization Server records user consent internally, but this information is not typically conveyed to Resource Servers or included in access tokens. For many use cases, this is sufficient. However, emerging scenarios, particularly those involving AI agents acting autonomously on behalf of users, require stronger guarantees about user intent and consent.¶
This specification addresses the need for:¶
This specification defines an authorization details type that leverages
the Rich Authorization Requests (RAR) [RFC9396] framework
to convey authorization evidence. When a client includes an
authorization_evidence authorization details object in its
request, the Authorization Server enriches it during the consent process
with cryptographic proof of user confirmation. This specification also
defines a consent revocation mechanism
(Section 7) that allows the user to withdraw
previously granted consent, completing the consent lifecycle from
grant through revocation.¶
Unless otherwise noted, all data types and serialization rules follow the JSON data interchange format as defined in [RFC8259].¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals.¶
This specification builds on the Rich Authorization Requests (RAR)
framework [RFC9396]. In RAR, clients include
authorization_details in authorization requests to convey
fine-grained authorization data. RAR Section 7.1 defines an "Enriched
Response" mechanism where the Authorization Server dynamically
populates fields in the authorization_details based on user
consent decisions or policy rules.¶
The authorization_evidence type defined in this specification
follows this enriched response pattern:¶
authorization_evidence authorization
details object in its request, typically with minimal or placeholder
fields indicating that evidence is requested.¶
authorization_evidence object with the
complete evidence record, including user_confirmation
details and the AS's cryptographic signature.¶
This approach ensures that authorization evidence is structured as a first-class authorization detail rather than a standalone JWT claim, enabling consistent handling across OAuth flows and composability with other authorization details types.¶
The authorization_evidence authorization details type contains
a record of the user's confirmation action during the authorization
process. Following the RAR enriched response pattern
([RFC9396] Section 7.1), the client requests this type
and the AS enriches it with the complete evidence record.¶
A client requests authorization evidence by including an
authorization_evidence authorization details object in its
authorization request. The client typically includes minimal fields,
indicating that evidence is requested:¶
{
"authorization_details": [
{
"type": "authorization_evidence"
}
]
}
The client MAY include optional fields to indicate preferences, such as specific audit trail requirements. However, the AS has final authority over the evidence content based on the actual consent interaction.¶
After the user completes the consent interaction, the AS enriches the
authorization_evidence object with the complete evidence
record. The enriched authorization details is included in the token
response:¶
{
"authorization_details": [
{
"type": "authorization_evidence",
"evidence": {
"id": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"user_confirmation": {
"displayed_content": "Add items under $50 to cart",
"user_action": "confirmed_via_button_click",
"timestamp": 1731320595
},
"content_hash": "uU0nuZNNPgilLlLX2YNrNmHQoFu66dKfLq3Ln4AXCR0",
"as_signature": "eyJhbGciOiJFUzI1NiJ9..MEUCIQDx...",
"audit_trail": {
"semantic_expansion_level": "medium",
"proposal_ref": "urn:uuid:proposal-xyz"
}
}
}
]
}
The evidence object within the authorization_evidence
authorization details type contains the following fields:¶
{
"evidence": {
"id": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"user_confirmation": {
"displayed_content": "Add items under $50 to cart",
"user_action": "confirmed_via_button_click",
"timestamp": 1731320595
},
"content_hash": "uU0nuZNNPgilLlLX2YNrNmHQoFu66dKfLq3Ln4AXCR0",
"as_signature": "eyJhbGciOiJFUzI1NiJ9..MEUCIQDx..."
}
}
| Field | Type | Requirement | Description |
|---|---|---|---|
| id | string | REQUIRED | Unique identifier for this evidence record. The value MUST use a URI or URN format with at least 128 bits of collision resistance. UUID URNs (e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6") are RECOMMENDED. |
| user_confirmation | object | REQUIRED | Details of the user's confirmation action. |
| content_hash | string | REQUIRED | The base64url-encoded SHA-256 digest computed
over the same JCS-canonicalized JSON object used
as the as_signature input
(Section 3 AS Signature).
It enables content-addressed identification of
evidence records: any party holding the record can
recompute the digest and detect tampering without
the AS's public key; identical records deduplicate
naturally in audit stores; and references to an
evidence record (e.g., evidence_ref) can
be bound to its content. |
| as_signature | string | REQUIRED | AS signature over the confirmation record. |
| revocation | object | OPTIONAL | Revocation information for the consent recorded by
this evidence, as defined in
Section 7.3. This member is not
covered by the as_signature (see
Section 7.3). |
| Field | Type | Requirement | Description |
|---|---|---|---|
| displayed_content | string | REQUIRED | The text shown to user for confirmation. |
| user_action | string | REQUIRED | How the user confirmed the operation. The value
is a free-form string, but implementations SHOULD
use values from the following set for
interoperability: button_click,
biometric_confirmation,
pin_entry, voice_confirmation,
hardware_key, implicit_consent.
Custom values MAY be used for deployment-specific
confirmation mechanisms. |
| timestamp | NumericDate | REQUIRED | When the confirmation occurred. |
The as_signature field contains a cryptographic signature from
the Authorization Server over the evidence record. This signature:¶
The signature MUST be computed over the following fields of the
evidence object:¶
The as_signature field itself MUST be excluded from the
signature computation. The signature format MUST be a detached
JWS [RFC7515] in Compact Serialization using the AS's signing key.
In detached Compact Serialization (see RFC 7515 Appendix F), the
payload portion is omitted, resulting in the format
"header..signature".¶
The signature input is constructed using the following deterministic algorithm:¶
id and user_confirmation fields
copied from the evidence object. No other
fields from the evidence object are included.¶
content_hash field of the
evidence object. The content_hash
field itself is not part of the signature input.¶
header..signature) is stored in the
as_signature field of the evidence
object.¶
To verify an as_signature, the verifier
reconstructs the JCS input by performing Steps 1 and 2 above
on the received evidence object (excluding the
as_signature field), then verifies the detached
JWS using the AS's public key. The content_hash
can be verified in the same pass: the verifier recomputes
the digest over the reconstructed JCS output and compares
it with the received content_hash. Hash
verification requires no key material and therefore
provides integrity checking that is independent of trust
in the AS. Any extension fields
present in the evidence object beyond
id, user_confirmation,
content_hash, and as_signature
MUST NOT be included in the JCS input and therefore
are not covered by the signature. In particular, the
OPTIONAL revocation member defined in
Section 7.3 is not covered by the
as_signature; in signed JWT access tokens its
integrity is provided by the token signature.¶
Note: In examples throughout this document, the
as_signature value is shown in abbreviated form for
readability. Actual values MUST use the detached JWS Compact
Serialization format described above.¶
The key used to sign the evidence record MAY be the same key used to sign the access token, or it MAY be a separate dedicated key. When a separate key is used, implementations MUST ensure that the evidence signing key is associated with the AS through a verifiable mechanism (e.g., published in the AS's JWKS endpoint as defined in [RFC7517]). Using a dedicated evidence signing key enables independent key rotation without affecting token validation.¶
The audit_trail sub-object provides metadata for semantic
traceability, enabling analysis of how user intent was interpreted and
translated into authorized operations. It is included within the
evidence object in the authorization_evidence
authorization details type.¶
{
"audit_trail": {
"semantic_expansion_level": "medium",
"proposal_ref": "urn:uuid:proposal-xyz"
}
}
| Field | Type | Requirement | Description |
|---|---|---|---|
| evidence_ref | string | OPTIONAL | Reference to a related evidence record by ID.
Can be used to link this audit trail to another
evidence record, such as the original consent in a
delegation chain. References SHOULD include the
content_hash of the referenced record so
that the reference is bound to its content. |
| semantic_expansion_level | string | OPTIONAL | Degree of interpretation applied (none, low, medium, high). |
| proposal_ref | URI | OPTIONAL | Reference to the original authorization proposal, the agent's initial request describing the intended operation before the AS applied policy evaluation, scope reduction, or user consent modifications. The value is an opaque URI assigned by the AS for internal correlation; no protocol for retrieving the proposal content via this URI is defined by this specification. This enables post-hoc comparison between what the agent originally requested and what was ultimately authorized. |
The semantic_expansion_level field indicates how much the system
interpreted or expanded the user's original intent. The
following four values form a closed set; implementations
MUST NOT use values outside this set:¶
The evidence and audit trail objects serve several important purposes:¶
| Purpose | Description |
|---|---|
| Intent Provenance | Records what the user intended, preventing disputes about authorization scope. |
| Action Interpretation | Documents how the system translated intent into operations, showing the reasoning process. |
| Semantic Transparency | Reveals any expansions or defaults applied, enabling users to understand what was authorized. |
| User Confirmation | Provides timestamped proof that the user reviewed and approved the operation. |
| Accountability Support | Enables post-hoc analysis to determine responsibility for erroneous transactions. |
| Consent Withdrawal | Provides the revocation handle and status entry points (Section 7) that allow the user to withdraw previously granted consent and allow auditors to resolve the current state of a consent. |
The evidence object records the outcome of a user
consent interaction. Before the AS can generate a signed
evidence record, it must first present a consent interface
to the user and capture the user's response. This section
describes the general consent-to-evidence pattern and provides
a concrete example using the JWT Grant Interaction Response
flow.¶
Regardless of the specific OAuth grant type, evidence collection follows a common pattern:¶
displayed_content).¶
evidence object as defined in
Section 3.¶
The following diagram illustrates this pattern:¶
Client/Agent Authorization Server User
| | |
|-- authorization req --->| |
| | |
| |--- consent UI ---------->|
| | (displayed_content) |
| | |
| |<-- user action ----------|
| | (button_click, etc.) |
| | |
| | [capture evidence] |
| | [sign with as_signature]|
| | |
|<-- access token --------| |
| (with evidence) | |
| | |
Each field in the evidence object corresponds to
a specific event during the consent interaction:¶
| Consent UI Event | Evidence Field | Description |
|---|---|---|
| AS renders consent page |
displayed_content
|
The text shown to the user describing the requested operation |
| User confirms or denies |
user_action
|
How the user responded (button click, biometric, PIN, etc.) |
| Confirmation timestamp |
timestamp
|
Server-side time when the user's action was received |
The JWT Grant Interaction Response ([I-D.parecki-oauth-jwt-grant-interaction-response]) defines a mechanism for AI agents to obtain user consent from an external Authorization Server. The following sequence shows how evidence is collected during this flow:¶
authorization_details.¶
interaction_required error containing an
interaction_uri (a URL hosted by the AS for
the consent interface) and a polling
interval.¶
interaction_uri in the
user's browser. The AS presents a consent page
showing the interpreted operation (e.g., "Add items
under $50 to cart on your behalf").¶
The user reviews the displayed content and clicks "Allow". The AS captures:¶
evidence object,
computes the as_signature per
Section 3, and stores the
evidence record.¶
evidence object.¶
AI Agent External AS User | | | |-- token request ->| | | | | |<- interaction_ | | | required | | | (interaction_ | | | uri, interval) | | | | | |-- open interaction_uri in browser ------------>| | | | | |--- consent UI ------------>| | | "Add items under $50 | | | to cart on your behalf"| | | | | |<-- user clicks [Allow] ----| | | | | | [capture evidence fields] | | | [compute as_signature] | | | | |-- poll token --->| | | endpoint | | | | | |<- access token ---| | | (with evidence) | | | | |
The consent-to-evidence pattern described above applies to any OAuth flow that involves user interaction. For example:¶
/authorize redirect. Evidence is collected
when the user approves or denies the request.¶
Flows that do not involve user interaction (e.g.,
Client Credentials Grant without user context) cannot
produce evidence records, since there is no
user confirmation to record. Such flows MAY still use
the audit_trail sub-object
(Section 4) for semantic
traceability without user confirmation evidence.¶
When issuing an access token with evidence, the AS MUST:¶
content_hash (Step 3 of the
AS Signature algorithm in Section 3);¶
This section defines the revocation half of the consent lifecycle. Evidence collection (Section 6) records the grant of consent; the mechanism defined in this section records and enforces its withdrawal. The mechanism applies regardless of the OAuth grant type through which consent was obtained.¶
Two related but distinct concepts are used in this section:¶
Because the consent record is created at consent time, revocation is possible during the window after the user has approved an authorization but before the resulting credential has been issued.¶
When the AS records a consent event, it SHOULD associate a revocation handle with the consent record. The revocation handle is a URI under the AS's control through which the user can initiate revocation of that specific consent record. A non-normative example:¶
https://as.example.com/revoke/urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
The handle identifier MUST contain at least 128 bits of entropy so that valid handles cannot be enumerated. The handle is a lookup key, not a credential: possession of the URI does not by itself authorize revocation (Section 7.4).¶
The AS SHOULD present the revocation handle to the user over
the front channel at or shortly after the consent
interaction, for example on the consent confirmation page or
in a consent record view. This is the primary delivery
channel and the only channel that places the revocation
capability in the user's hands. The OPTIONAL
revocation member defined in
Section 7.3 additionally conveys the
handle in the token response; that copy reaches the client
rather than the user, and MAY support client-provided consent
management interfaces or agent-initiated self-revocation.¶
The OPTIONAL revocation member of the
evidence object conveys revocation information for
the consent recorded by the evidence:¶
{
"revocation": {
"handle": "https://as.example.com/revoke/urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"status_uri": "https://as.example.com/status/urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
}
}
| Field | Type | Requirement | Description |
|---|---|---|---|
| handle | URI | REQUIRED | The revocation handle for the consent recorded by this evidence (Section 7.2). |
| status_uri | URI | OPTIONAL | A URI where the current revocation status of the consent can be resolved, for example an entry in a token status list [RFC9727]. |
The revocation member is an extension field with
respect to the signature algorithm defined in the AS
Signature subsection of Section 3 and
therefore is not covered by the as_signature. In
signed JWT access tokens its integrity is provided by the
token signature.¶
When the user follows a revocation handle, the AS MUST apply three validation layers before executing the revocation:¶
Before executing the revocation, the AS MUST present the user with a confirmation view summarizing the consent being revoked (for example, which client was authorized, which scopes were granted, and when). Retrieving the revocation handle with HTTP GET MUST only render this confirmation view and MUST NOT perform the revocation. The revocation MUST be executed by an explicit user action (for example, an HTTP POST request) protected against cross-site request forgery.¶
In summary, the authorization server MUST authenticate the user before honoring a revocation request, and MUST verify that the authenticated user is the owner of the referenced consent record.¶
The effect of a revocation depends on the lifecycle phase of the consent:¶
access_denied. Where issuance and
revocation can race, the AS MUST evaluate the revocation
state atomically with credential issuance.¶
This specification defines the revocation trigger and the consent record state. It does not redefine the cancellation or token revocation semantics of any host protocol; those semantics are applied as defined by the respective protocol.¶
Upon revocation, the AS SHOULD update the consent record with:¶
revoked_at: the timestamp of the revocation;¶
revocation_method: how the revocation was
initiated. Implementations SHOULD use values from the
following set: principal (the user revoked
through the mechanism defined in this section),
client (the client cancelled or revoked through
its own channel), expired (the consent lapsed),
or administrator (revoked by an operator of the
AS).¶
These fields are maintained on the AS and are not included in access tokens. They support audit and dispute resolution, including the question of whether a contested operation occurred before or after consent was withdrawn.¶
Resource Servers MAY verify the evidence object by:¶
as_signature from the evidence;¶
content_hash, which detects corruption or
tampering without requiring the AS's public key;¶
id and timestamp are
consistent with the token's iat claim (i.e., the
user confirmation occurred before or at token issuance);¶
Note: The displayed_content field records what was
shown to the user during consent. The RS typically does not
have direct knowledge of the consent interaction and therefore
cannot independently verify this field. Instead, the RS
relies on the AS signature as proof that the AS witnessed the
user's consent to the described operation.¶
Resource Servers SHOULD log evidence information for audit purposes, including:¶
This section discusses security considerations specific to authorization evidence in OAuth 2.0. General OAuth 2.0 security considerations, including token threats and countermeasures, are described in [RFC6819].¶
The AS signature over the evidence fields (id and user_confirmation) is critical for evidence integrity. Implementations MUST:¶
The content_hash provides tamper detection that is
independent of the as_signature: any party holding
an evidence record can recompute the digest without key
material or trust in the AS, which is useful when evidence
records are archived, replicated, or exchanged between
audit systems after tokens have expired. Because identical
records yield identical digests, the content_hash
also enables deduplication in audit stores and allows two
parties to confirm they hold the same record by comparing
digests. References to evidence records from other
artifacts (e.g., evidence_ref in
Section 4, or delegation chains)
SHOULD include the content_hash of the referenced
record so that the reference is bound to its content.¶
Since the digest is deterministic, evidence records with
low-entropy content could in principle serve as
correlatable identifiers if the candidate content can be
enumerated. Evidence records in this specification
include a unique id and a user-confirmation
timestamp, which provides sufficient entropy in practice;
implementations publishing digests to public stores SHOULD
nonetheless consider whether correlation of digests across
stores raises privacy concerns for their deployment.¶
The evidence object is protected by the access token's signature. However,
the as_signature field provides an additional layer of protection
specifically for the user confirmation record.¶
It is important to understand the trust boundary of the
evidence mechanism: the as_signature provides
cryptographic proof that the AS recorded a
user confirmation. It does not independently prove that
the user actually consented. The AS
controls both the consent interaction and the signing key,
so a compromised or malicious AS could fabricate evidence
records. Trust in the evidence record therefore depends
on trust in the AS and its operational security.
Deployments requiring stronger non-repudiation guarantees
SHOULD supplement this mechanism with user-side signatures
or independent consent auditing.¶
Evidence records are bound to specific access tokens. The evidence ID and timestamp help detect attempts to reuse evidence across different authorization contexts.¶
The evidence object is embedded in a signed access
token ([RFC9068]), which provides
integrity protection at the token level. The inner
as_signature provides a second, independent integrity
layer specifically over the user confirmation record. This
dual-signature design ensures that:¶
as_signature.¶
Implementations MUST NOT copy an evidence object from
one access token into another without re-validating the
as_signature and confirming that the evidence
id and timestamp are consistent with the
new token's context.¶
The dual-signature design described above applies to signed
JWT access tokens ([RFC9068]). When opaque
(reference) tokens are used, the evidence object is
not embedded in the token itself and MUST be retrieved by
the RS via token introspection ([RFC7662])
or a dedicated evidence retrieval endpoint. In this case,
the as_signature provides the sole integrity
protection for the evidence record, and implementations
MUST ensure that the transport between the RS and the
introspection or retrieval endpoint is protected with TLS.¶
In cross-domain scenarios where the RS is in a different
trust domain than the AS, the RS must be able to verify the
as_signature using the AS's public key.
Implementations SHOULD:¶
kid (Key ID) in the JWS header of
the as_signature to enable key selection;¶
When the AS and RS belong to different administrative domains, trust establishment for the evidence signing key MAY be facilitated through a trust framework, federation agreement, or explicit key distribution mechanism.¶
A revocation handle grants no authority: it is a lookup key for a consent record, not a credential. Nevertheless, implementations MUST protect against the following threats:¶
When a revocation handle is delivered through a token response (in addition to, or instead of, the front channel), clients MUST treat it as sensitive data and MUST NOT expose it in URLs, logs, or user agents beyond what is necessary to present the revocation option to the user.¶
Revocation under this specification is enforced by the AS and by downstream token revocation and status mechanisms; it is not purely cryptographic. A token issued before revocation remains cryptographically valid until it expires, is revoked via the token revocation mechanisms of the host protocol (e.g., [RFC7009]), or is rejected based on status information such as token status lists ([RFC9727]) or shared signals ([I-D.ietf-secevent-caep]). Deployments with short-lived tokens reduce the window during which a revoked consent is not yet enforced; deployments requiring timely propagation of revocation SHOULD combine token revocation with status lists or event-based propagation.¶
This specification does not require resource servers to consult consent state. Whether an RS enforces consent revocation directly, or relies on the AS to revoke the associated tokens, is a deployment decision.¶
Evidence records contain information about user consent interactions, including what was displayed to the user and how they responded. Implementations should consider applicable data protection requirements when storing and processing evidence records.¶
Consent records and revocation state (Section 7.1) extend these considerations: the revocation timestamp and method are part of the user's consent history. Access to the revocation endpoint MUST require principal authentication so that the consent history of one user cannot be inspected by another, and retention of consent records after revocation SHOULD follow the same data protection policies that apply to the evidence records themselves.¶
This specification registers the following authorization details type in the "OAuth Authorization Details Types" registry established by [RFC9396]:¶
The following shows a complete access token with authorization_details
containing both authorization_evidence and rego_policy
authorization details types:¶
This example illustrates how the authorization_evidence type
complements the rego_policy type
([I-D.liu-oauth-rego-policy]). While the Rego
policy defines what operations are permitted
(the behavioral constraint contract), the authorization evidence records
why those operations were authorized (the user's
explicit consent). Together, they enable a Resource Server to
enforce fine-grained policy while maintaining a verifiable audit
trail linking each authorized action back to user intent.¶
The act.sub value uses the wit:// URI scheme
to identify the acting agent by its workload identity, as
defined in the Identity Assertion Authorization Grant
([I-D.ietf-oauth-identity-assertion-authz-grant]).
The hash suffix provides a collision-resistant binding between
the URI and the agent's attestation evidence.¶
{
"iss": "https://as.example.com",
"sub": "user_12345",
"aud": "https://api.shop.example",
"exp": 1731369540,
"iat": 1731320700,
"jti": "urn:uuid:token-abc-123",
"act": {
"sub": "wit://myassistant.example/sha256.abc123..."
},
"authorization_details": [
{
"type": "authorization_evidence",
"evidence": {
"id": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"user_confirmation": {
"displayed_content": "Add items under $50 to cart",
"user_action": "confirmed_via_button_click",
"timestamp": 1731320595
},
"content_hash": "uU0nuZNNPgilLlLX2YNrNmHQoFu66dKfLq3Ln4AXCR0",
"as_signature": "eyJhbGciOiJFUzI1NiJ9..MEUCIQDx...",
"audit_trail": {
"semantic_expansion_level": "medium",
"proposal_ref": "urn:uuid:proposal-xyz"
},
"revocation": {
"handle": "https://as.example.com/revoke/urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"status_uri": "https://as.example.com/status/urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
}
}
},
{
"type": "rego_policy",
"policy": {
"type": "rego",
"uri": "https://as.example.com/policies/policy-cart-50",
"entry_point": "allow"
}
}
]
}
The authors would like to thank Brian Campbell for his valuable feedback and insightful discussions during the development of this specification. His contributions helped shape key design decisions.¶