TrueVault Identity Manager

Detailed Implementation

PKCE Implementation

PKCE (Proof Key for Code Exchange) is mandatory. Generate a code verifier and challenge:

// Generate code verifier (43-128 characters) const codeVerifier = base64URLEncode(crypto.randomBytes(32)); // Generate code challenge const codeChallenge = base64URLEncode( crypto.createHash('sha256').update(codeVerifier).digest() );

Client Authentication

A confidential client authenticates with its client_secret at the token endpoint, using whichever of client_secret_basic (the Authorization: Basic header) or client_secret_post (client_id and client_secret in the form body) the client is configured for. The pushed authorization request endpoint takes the same token_endpoint_auth_method, so one credential-handling routine serves both. A public client has no secret and relies on PKCE alone.

Scope and Claims

Standard OIDC Scopes

TrueVault Specific Claims (via claims parameter)

Use the claims parameter to request specific TrueVault identity data:

Identity Claims (examples):

Document Claims (examples):

Credential Claims (examples):

Example Scope Combinations

Basic Profile Access:

scope=openid profile email

Identity & Document Verification:

claims={"true": ["trueidentity.credential", "trueidentity.given_name", "trueidentity.family_name", "trueidentity.birth_date", "trueidentity.email", "trueidentity.phone", "trueidentity.email_verified", "trueidentity.phone_verified", "trueidentity.names_verified", "document.passport.travel_document_number", "document.passport_foreign.travel_document_number", "document.driving_license.licence_number"]}