Skip to content
Agent Identity

Deployment pattern

All patterns

AAuth + person server

PersonPerson serverAgentResourceResource AS (four-party)

AAuth three/four-party with person server

/patterns/aauth-person-server

Portable agent identity plus a user grant from the person's server. Three-party: the resource has no AS. Four-party: the resource has an access server the PS federates to. OIDC may sit behind the PS to authenticate the person.

When you see it

A personal agent that carries the user's consent to resources that will never register it as an OAuth client. The user approves a mission at their person server once; the agent retries with an aa-auth+jwt. Four-party shows up when the resource already has a policy engine and will not evaluate auth tokens itself.

Actors and trust

  • AgentAgent instance

    Signs every HTTP call. Holds an agent token that names its person server (ps claim).

  • Person serverOther

    Represents the user: consent, missions, auth tokens, optional interaction. May authenticate the person with ordinary OIDC behind the scenes.

  • User / personUser

    Approves at the PS, not at each resource's OAuth screen.

  • ResourceResource

    Issues a resource token (aud = PS), then accepts aa-auth+jwt and applies its own policy to (iss, sub).

  • Resource access server (four-party)Other

    Optional. The PS federates to it; the agent still only talks to the resource and the PS.

Topology

PersonPerson serverAgentResourceResource AS (four-party)
  • AgentSigned request; resource sees ps on the agent tokenResource
  • Resource401 requirement=auth-token + resource token (aud = PS)Agent
  • AgentSigned POST of the resource tokenPerson server
  • PersonApprove mission / scope (OIDC may authenticate here)Person server
  • Person serverFour-party: PS federates to the resource access serverResource AS (four-party)
  • Person serveraa-auth+jwt (user claims, cnf-bound)Agent
  • AgentRetry signed, with auth tokenResource
Agent and resource still speak signed HTTP. The user grant comes from the person server. Four-party inserts a resource-side access server the PS talks to.

Primary

Optional

Do not use

Why these, and not those

You want AAuth's portable agent identity and a user grant, which identity-based p2p does not carry. The grant is aa-auth+jwt from the PS (short-lived, cnf-bound, aud = resource), not an OAuth Bearer access token from a client_id the resource minted. R3 and missions are the authorization language at the PS. Four-party adds a resource-side access server; that federation is not OpenID Federation and not OAuth identity chaining. OIDC belongs behind the PS (authenticate the person), not on the agent–resource hop.

Related flows

Sequence diagrams, not this topology cut. All flows

Comparisons

Back to the matrix