ARAP Actor October 2026
McGuinness Standards Track [Page]
Workgroup:
OpenID AuthZEN
Published:
Author:
K. McGuinness
Independent

AuthZEN Actor Delegation Profile - Draft 1

Abstract

This profile defines how a Policy Enforcement Point that acts on behalf of upstream principals conveys the acting party and the origin of an Access Request under the AuthZEN Access Request and Approval Profile, and how the Access Request Service verifies a claimed actor chain before using it.

▲

Table of Contents

1. Introduction

This companion to the AuthZEN Access Request and Approval Profile [ARAP] defines the client.actor and client.source members of an Access Request submission, the delegation model they express, and the verification an Access Request Service applies to a claimed actor chain. The base profile's rules that reference these members remain there: the PEP preserves the 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 because the PEP may carry the actor here instead.

2. Requirements Notation and Conventions

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, as shown here.

The terms PEP, PDP, Subject, Resource, Action, Context, Access Request, and Access Request Service are used as defined by [ARAP].

3. Delegation and Acting Parties

A PEP often acts for upstream principals: an application for a user, an Authorization Server for a client and user, an agent runtime for an agent and user, or a Security Token Service for an upstream caller.

This profile does not define a new Subject shape for actor delegation. Implementations SHOULD follow the conventions defined in [I-D.mcguinness-oauth-actor-profile], which standardizes an act claim representing the immediate actor with required sub and iss members and a RECOMMENDED sub_profile member (taking values such as ai_agent, service, or user). Nested act objects represent multi-hop delegation chains. The canonical actor identifier is the (iss, sub) pair regardless of which carrier expresses it.

Under this profile:

Approval routing at the Access Request Service MAY consider any identity in the chain (for example, routing approval to the principal's owner, the agent's deployment owner, or a delegated approver). This profile otherwise leaves routing policy unconstrained; it requires that the necessary identities be representable in the submission and verifiable by the service before routing decisions are taken.

Cross-implementation interoperability for delegated flows depends on adoption of a common actor convention. Deployments and profiles that depend on a specific actor convention SHOULD document the Subject shape, the actor convention used, and the credential format the Access Request Service accepts as proof of the chain.

3.1. Client Actor and Source

The client object of an Access Request submission (Additional Request Members) has two further members:

  • actor: OPTIONAL. Object identifying the immediate actor on whose behalf the PEP submits the Access Request, when that actor differs from the Subject or when the deployment needs to audit the actor separately. The following members are defined; implementations MAY include additional members.

    • id: REQUIRED. String. Stable identifier for the actor.

    • issuer: OPTIONAL. String. Issuer, authority, tenant, or identity provider for the actor identifier.

    • type: OPTIONAL. String. Actor category, such as user, service, workload, or ai_agent.

    • act: OPTIONAL. Object. Nested actor representing the next link in a delegation chain, following the conventions in [I-D.mcguinness-oauth-actor-profile]. Each act carries sub and iss (corresponding to id and issuer in the immediate actor) and optionally sub_profile; nesting represents the chain from the immediate actor outward toward the Subject. See Section 3.

  • source: OPTIONAL. Object. Audit-trail context describing where the request originated. The following members are defined; implementations MAY include additional members.

    • session_id: OPTIONAL. String. Identifier of a bounded interaction context that produced the request, such as a chat or agent conversation, a web or mobile application session, a CLI invocation, or a long-running workflow thread. This is an audit-origin identifier and is distinct from any authentication or authorization session associated with the caller.

    • external_url: OPTIONAL. HTTPS URI. URL of an external system (ticket, document, dashboard, chat thread) that motivated the request.

    • integration_id: OPTIONAL. String. Identifier of an upstream integration or workflow that produced the request.

3.2. Actor Chain Verification

When authenticating a submission, the Access Request Service:

  • When the submission claims an actor or actor chain in client.actor, MUST verify that the authenticated caller's credential authorizes the entire claimed chain, not only the immediate actor. Mechanisms commonly used to provide such authorization include [RFC8693] OAuth 2.0 Token Exchange (where the access token names the Subject as the on-behalf-of party and the chain via act claims), signed assertions from a trusted issuer, or deployment-specific authentication policies.

  • MUST reject submissions whose claimed chain cannot be verified against the caller's credential or against trusted issuers identified in the deployment.

Unverified client.actor content MAY be retained as audit metadata only; the rule that it is not authorization input is stated in the base profile's Submission Processing.

4. Interaction with the Base Profile

The base profile states three rules that reference the members defined here; this profile does not restate them.

5. Security Considerations

PEP acting on behalf of the Subject. Accepting unverified actor claims would let a PEP assert authority it cannot demonstrate. Section 3.2 governs chain verification; the base profile's endpoint protection requires caller authorization to submit or view the request for the supplied Subject, Resource, and Action.

The identity-binding questions the base profile records for the caller, requester, and client apply to the acting party as well; this profile does not resolve them.

6. Privacy Considerations

The privacy considerations of [ARAP] apply. client.source identifiers (session_id, external_url, integration_id) can link an Access Request to a conversation, application session, or external record; deployments populate them where audit policy requires and protect them as they protect approver and workflow details.

7. IANA Considerations

This specification makes no requests of IANA.

8. OpenID Foundation Registry Considerations

8.1. AuthZEN Access Request Member Names Registry

This specification registers the following entries in the AuthZEN Access Request Member Names registry established by [ARAP].

Table 1
Name Extension Point Description
actor client Immediate actor on whose behalf the PEP submits the Access Request, with an optional nested act chain.
source client Audit-trail context describing where the request originated.
session_id client.source Identifier of a bounded interaction context that produced the request (chat or agent conversation, application session, CLI invocation, workflow thread).
external_url client.source URL of an external system that motivated the request.
integration_id client.source Identifier of an upstream integration or workflow that produced the request.

Change Controller for all entries: OpenID Foundation AuthZEN Working Group. Specification Document for all entries: This document.

9. References

9.1. Normative References

[ARAP]
McGuinness, K., "AuthZEN Access Request and Approval Profile 1.0", , <https://openid.github.io/authzen/authzen-access-request-approval-profile-1_0.html>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8693]
Jones, M., Nadalin, A., Campbell, B., Ed., Bradley, J., and C. Mortimore, "OAuth 2.0 Token Exchange", RFC 8693, DOI 10.17487/RFC8693, , <https://www.rfc-editor.org/rfc/rfc8693>.

9.2. Informative References

[I-D.mcguinness-oauth-actor-profile]
McGuinness, K., "OAuth Actor Profile for Delegation", Work in Progress, Internet-Draft, draft-mcguinness-oauth-actor-profile-00, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-actor-profile-00>.

Appendix A. Examples

A.1. Submission by an Agent Runtime

This non-normative submission is made by an agent runtime acting for a user. The runtime supplies client.actor so the Access Request Service can route approval to the agent's owner, and client.source to record the originating session.

POST /access/v1/requests HTTP/1.1
Host: pdp.example.com
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
Content-Type: application/json
Idempotency-Key: 9c1f5d12-2a18-4cba-8a5e-e0e8e2b6b5c7

{
  "subject": {
    "type": "user",
    "id": "alice@example.com"
  },
  "resource": {
    "type": "tool",
    "id": "crm.search_accounts"
  },
  "action": {
    "name": "invoke"
  },
  "context": {
    "business_justification": "Assembling Q2 renewal report for customer ACME-1042"
  },
  "requested_access": {
    "requested_until": "2026-05-19T15:00:00Z"
  },
  "client": {
    "id": "renewal_assistant",
    "actor": {
      "id": "agent_renewal_assistant_v3",
      "issuer": "https://agents.example.com",
      "type": "ai_agent"
    },
    "source": {
      "session_id": "session_01HX69WJ8Q0K7P4F0V0K9D6Z7N"
    }
  },
  "denial": {
    "evaluation_id": "eval_01HX6A9D2M7N0F4G3K2T9P1B8X",
    "evaluated_at": "2026-05-12T15:00:00Z",
    "expires_at": "2026-05-12T15:10:00Z",
    "reason": "agent_authority_missing",
    "binding_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6InBkcC0xIn0.eyJldmFsdWF0aW9uX2lkIjoiZXZhbF8wMUhYNkE5RDJNN04wRjRHM0syVDlQMUI4WCIsImNsYXNzIjoiY3JtX3Rvb2xzIn0.aGFzaA",
    "template": "agent_tool_class_approval"
  }
}

Appendix B. Document History

-00

Author's Address

Karl McGuinness
Independent