Skip to content

Attestation based client authentication - #34

Open
vmarkop wants to merge 4 commits into
masterfrom
feat/attestation-based-client-authentication
Open

vmarkop wants to merge 4 commits into
masterfrom
feat/attestation-based-client-authentication

Conversation

@vmarkop

@vmarkop vmarkop commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds OAuth 2.0 Attestation-Based Client Authentication (ABCA) to wallet-as, with optional WE BUILD profile checks.

Changes:

  • Add OID4VC_PROFILE env param with values DEFAULT or WEBUILD.
  • Validate ES256 attestation signatures against configured certificate trust anchors and requires DPoP for ABCA token requests.
  • Apply configurable attestation and proof-of-possession age limits for default OID4VC Profile.
  • Add WEBUILD checks for wallet metadata, attestation lifetime, WIA/DPoP key equality, and revocation status for WEBUILD OID4VC profile. Status retrieval restricts origins and bounds response and decompression sizes.

Configuration required

Deployment requires ABCA_CHALLENGE_SECRET: a shared 64-character hexadecimal secret across AS replicas. wwWallet/wwwallet#71 brings this variable to your local installation. WEBUILD additionally requires WEBUILD_ABCA_STATUS_LIST_ALLOWED_ORIGINS.

This PR changes the wallet client 1233 in oauth2clients.json to use attest_jwt_client_auth as a token_endpoint_auth_method. Ensure you add that auth method to clients you would like to use ABCA for, or remove it if you do not want to use it.

Configuration and profile behavior are also documented in the README and environment template.

Manual verification: complete issuance with an ABCA-capable wallet under DEFAULT, then enable WEBUILD and verify that valid attestations succeed while revoked status or mismatched DPoP keys are rejected. Ensure that local issuance works both with a client using attest_jwt_client_auth and with a non-abca client.

@vmarkop vmarkop changed the title Atestation based client authentication Attestation based client authentication Jun 18, 2026
@vmarkop
vmarkop marked this pull request as ready for review July 8, 2026 08:27
@vmarkop
vmarkop requested a review from a team July 8, 2026 08:27
@vmarkop
vmarkop force-pushed the feat/attestation-based-client-authentication branch from 227101b to 259f82a Compare October 14, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant