AAuth Explorer
accessPhase 3

PS-Asserted Access (3-party)

The resource issues a resource token whose aud is the agent's Person Server URL — not an AS. The agent sends the resource token to the PS, and the PS issues the auth token directly, asserting identity claims (sub, optionally email, tenant, groups, roles) and consent for the requested scope. No Access Server is involved. The auth token's iss is the PS itself, and the resource applies its own policy to the asserted claims.

§ PS-Asserted Access (Three-Party)
AgentResourcePerson Server1Signed GET /data-auth → 401…4012POST resource token to PS /…3Present auth token → 200
GET https://api.example/data-auth401

Agent token contains ps claim: ps="https://ps.example" — resource knows the agent's PS.

Resource issues 401 + aa-resource+jwt. KEY DIFFERENCE: aud = PS URL (https://ps.example), not an AS URL.

Because aud=PS, the PS will handle token issuance directly — no Access Server is needed.

1 / 3
speed

Step 1: Signed GET /data-auth → 401 + resource token (aud=PS)

Request / response
GEThttps://api.example/data-auth
Host

api.example

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…

Signature-InputAAuth?

sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed2…

SignatureAAuth?

sig=:Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4…

HTTP Signaturescheme=jwt

Covered Components

@method
@authority
@path
signature-key

Signature Base

"@method": GET
"@authority": api.example
"@path": /data-auth
"signature-key": sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQrand0In0…"
"@signature-params": ("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed25519"

Signature-Key Header

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQrand0In0…"

Signature-Input Header

sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed25519"

Agent Tokenaa-agent+jwt
Header
{
"alg":"EdDSA",
"kid":"agent-key-1",
"typ"?:"aa-agent+jwt"
}
Payload
{
"iss"?:"https://agent.example",
"sub"?:"aauth:local@agent.example",
"dwk"?:"aauth-agent.json",
"jti"?:"a6ae301d-1dc7-4b75-8f8b-5612197664a7",
"cnf"?:{
"jwk"?:
}
,
"iat"?:1776222894,
"exp"?:1776226494,
"ps"?:"https://ps.example"
}
sig: 8byvGd-PR3uOLeS_HYOpbW7OD_8whUuD
Resource Tokenaa-resource+jwt
Header
{
"alg":"EdDSA",
"kid":"resource-key-1",
"typ"?:"aa-resource+jwt"
}
Payload
{
"iss"?:"https://api.example",
"aud"?:"https://ps.example",
"dwk"?:"aauth-resource.json",
"jti"?:"ec12c052-ab17-49e1-88d3-5e2317ba82c4",
"agent"?:"aauth:local@agent.example",
"agent_jkt"?:"tcP75aIbpvVmzZ0P-LIZeoLua8SuE8RGM4tO_2OkRpg",
"scope"?:"read",
"iat"?:1776222894,
"exp"?:1776223494
}
sig: 6QznE3sOp9JX6RY4a0olsuHZSIKAn5t4