Skip to main content

Authentication Overview

The VCDP API uses OAuth2 with DPoP (Demonstrating Proof-of-Possession, RFC 9449) to secure all authenticated endpoints. This ensures that access tokens are cryptographically bound to the client that requested them.

How it works

  1. Client authenticates with the IdP using OAuth2 (authorization code + PKCE or client credentials)
  2. The IdP issues a DPoP-bound access token
  3. Client calls the API with the access token and a fresh DPoP proof JWT

Security model

LayerMechanism
AuthenticationOAuth2 Bearer token (JWT)
Token bindingDPoP proof (RFC 9449)
Key algorithmES256 (P-256 ECDSA)
Token lifetimeShort-lived (configurable, typically 5 minutes)
Replay protectionUnique jti claim per proof, server-side nonce validation

Supported grant types

  • Authorization Code + PKCE — For user-facing applications where a vehicle owner grants consent
  • Client Credentials — For server-to-server integrations with pre-approved data access
  • Refresh Token — For obtaining new access tokens without re-authentication

Endpoints

EndpointPurpose
GET /authInitiate authorization code flow (redirects to IdP)
POST /auth/tokenExchange code for tokens, refresh tokens, or obtain client credentials tokens

Next steps