Skip to content

Integration: AIP delegation token interop — shared IETF test vectors #8

@aeoess

Description

@aeoess

Context

On adk-python#4764, @sunilp identified the convergence between AIP delegation tokens and APS delegation chains. Both systems enforce authority narrowing at each hop, with cryptographic budget, scope, and depth constraints.

Two IETF drafts now cover adjacent layers:

  • draft-prakash-aip: Token-level delegation — portable, self-contained authorization
  • draft-pidlisnyi-aps-00: Identity + delegation + enforcement + governance — gateway-enforced with signed receipt chains

Proposed Integration

AIP tokens can serve as APS delegation credentials. The mapping:

AIP Concept APS Equivalent
Delegation token Delegation (scope, spendLimit, maxDepth, expiry)
Token hop DelegationChainLink (monotonic narrowing)
Budget constraint spendLimit + spentAmount tracking
Token verification PolicyValidator.evaluate() input

The APS ActionIntent.delegationId would reference the AIP token, and the gateway would verify the token chain before evaluating policy.

Deliverables

  1. Shared test vectors — delegation chains with scope narrowing, spend attenuation, depth enforcement. Both SDKs verify against the same vectors
  2. Cross-reference in IETF drafts — each draft references the other as a complementary layer
  3. Integration example — AIP token issued → APS gateway validates → PolicyEvaluator checks scope → signed receipt with token reference

Open Questions

  1. Token-level vs gateway-level enforcement: should the APS gateway trust the AIP token's scope claim, or independently verify scope against its own delegation registry?
  2. How does AIP handle cascade revocation? If a delegator revokes, do downstream tokens become invalid?

@sunilp — would shared test vectors or a joint interop example be the right starting point?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions