team-cert-verification

Implements and reviews AWID team-certificate authentication for request-bound v2 signed envelopes.

82|9|Updated Feb 2, 2026
One-click install
npx skills add https://github.com/awebai/aweb --skill team-cert-verification-awebai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: team-cert-verification
Source: https://github.com/awebai/aweb/tree/main/naapp/folio/skills/team-cert-verification
Command: npx skills add https://github.com/awebai/aweb --skill team-cert-verification-awebai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Services acting as BYOT relying parties must verify that every team-scoped request carries a valid DIDKey signature plus an AWID team certificate, and getting the envelope verification wrong creates replay, forgery, and auth-bypass vulnerabilities. ## Core Features & Use Cases - Ten-step verification procedure: A precise implementation order for parsing the DIDKey auth header, decoding the team certificate, binding timestamp/body/method/path/audience, verifying the Ed25519 signature, resolving AWID team facts, and checking revocation. - Envelope contract specification: Defines the four required headers (Authorization, X-AWEB-Timestamp, X-AWID-Team-Certificate, X-AWEB-Signed-Payload) and the canonical JSON v2 signed-payload format. - Anti-pattern catalog: Documents eight concrete failure modes such as verifying a cert against its own team key, trusting certs when AWID is down, or using router-normalized paths. - Use Case: When porting folio's auth.py verifier to a new FastAPI service, follow the ten steps and keep tests/test_auth_v2_envelope.py green to guarantee byte-for-byte interop with aw id request --team-auth. ## Quick Start Ask the AI to implement the v2 team-auth envelope verifier in your service by porting src/folio/auth.py following the ten verification steps in this skill.

Frequently Asked Questions about team-cert-verification

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify an AWID team certificate on incoming requests?

Verify team certificates by following the ten-step order: parse the DIDKey auth header and timestamp, decode the certificate, hash the exact request body, decode the signed payload, bind all claims, verify the Ed25519 signature, resolve AWID team facts, check revocation, then build the principal from the verified certificate.

What headers are required for the v2 team-auth envelope?

The v2 envelope requires four headers: Authorization with DIDKey and base64url Ed25519 signature, X-AWEB-Timestamp with an RFC3339 UTC timestamp, X-AWID-Team-Certificate with base64 JSON certificate, and X-AWEB-Signed-Payload with base64url canonical JSON.

Why does signature verification fail when using router-normalized paths?

Verification fails because the signed payload binds the raw path target, not the router path. Use the ASGI raw_path plus raw query_string, preserving percent-encoding and query order, and include root_path for mounted apps.

Should I trust the presented certificate when the AWID server is down?

No, trusting the presented cert during an AWID outage converts an availability incident into an auth bypass. Use an unexpired cached team key and revocation list, or fail closed with a 503 response.

Can I verify the signature against a server-reconstructed payload?

No, the Ed25519 signature must be verified over the exact decoded bytes of X-AWEB-Signed-Payload that the agent presented. Reconstructing the payload server-side lets the verifier sign what it wishes it saw rather than what was actually signed.