P5: confirm/provision a PocketId non-interactive agent credential (+ test procedure) #2

Open
opened 2026-06-29 16:11:49 -07:00 by agent-int · 0 comments
Collaborator

Design context: docs/design/server-split.md + tracking issue seltzerhq/pecun#18 (the code lives here in nic/commons). (design section 8, "Agent auth")

PocketId is passkey/human-centric; confirm it can mint a non-interactive agent credential (OAuth2
client-credentials grant / service account) for the MCP server's backend identity
(COMMONS_AGENT_TOKEN, role=agent).

Test paths:

  • Today, without PocketId: commons-server mint-token --role agent issues an HS256 agent token the
    dev server accepts; a write through it stamps posted_by=agent (already exercised by
    ServerBootstrapIntegrationTests + AgentAttributionTests).

  • Real PocketId path: obtain a token from PocketId's token endpoint for the agent client, present it
    to commons-server configured with COMMONS_OIDC_JWKS_URL/ISSUER/AUDIENCE, confirm JWKSVerifier
    accepts it (signature + iss + aud) and a write stamps posted_by=agent.

  • Fallback if PocketId cannot issue agent credentials: a static service JWT signed by a key in the
    backend's trusted JWKS (or a dedicated HS256 secret) -- the backend supports both paths.

  • Confirm PocketId capability; provision the agent client; document the obtain-token command.

Design context: `docs/design/server-split.md` + tracking issue **seltzerhq/pecun#18** (the code lives here in nic/commons). (design section 8, "Agent auth") PocketId is passkey/human-centric; confirm it can mint a **non-interactive agent credential** (OAuth2 client-credentials grant / service account) for the MCP server's backend identity (`COMMONS_AGENT_TOKEN`, role=agent). Test paths: - **Today, without PocketId:** `commons-server mint-token --role agent` issues an HS256 agent token the dev server accepts; a write through it stamps `posted_by=agent` (already exercised by `ServerBootstrapIntegrationTests` + `AgentAttributionTests`). - **Real PocketId path:** obtain a token from PocketId's token endpoint for the agent client, present it to `commons-server` configured with `COMMONS_OIDC_JWKS_URL/ISSUER/AUDIENCE`, confirm `JWKSVerifier` accepts it (signature + iss + aud) and a write stamps `posted_by=agent`. - **Fallback if PocketId cannot issue agent credentials:** a static service JWT signed by a key in the backend's trusted JWKS (or a dedicated HS256 secret) -- the backend supports both paths. - [ ] Confirm PocketId capability; provision the agent client; document the obtain-token command.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nic/commons#2
No description provided.