04. Choosing a Provider
This section explains which provider you should replace or extend depending on the functionality you want to customize.
Provider Kind Reference
| What you want to customize | Provider kind |
|---|---|
| Change how Issuer metadata is stored and retrieved | issuer-metadata-store-provider |
| Change how Authorization Server metadata is stored and retrieved | authz-server-metadata-store-provider |
| Change how Verifier metadata is stored and retrieved | verifier-metadata-store-provider |
| Change how OAuth client information is stored and retrieved | authz-oauth-client-store-provider |
| Change how OAuth policies are stored and retrieved | authz-oauth-policy-store-provider |
| Change how Pre-Authorized Codes are generated | pre-authorized-code-provider |
| Change how Pre-Authorized Codes are stored and consumed | pre-authorized-code-store-provider |
| Change how Access Token payloads are generated | access-token-provider |
Change how the available credential_configuration_id values for each Access Token are stored and retrieved | allowed-credential-configuration-store-provider |
| Change how Credential Offers are generated | credential-offer-provider |
Change how c_nonce values are generated | nonce-provider |
Change how c_nonce values are stored, validated, expired, and consumed | nonce-store-provider |
| Change DPoP Proof JWT verification | dpop-proof-provider |
Change how jti values used for DPoP Proof replay prevention are stored | dpop-proof-jti-store-provider |
Change how jti values used for Client Assertion replay prevention are stored | oauth-client-assertion-jti-store-provider |
| Change how Issuer signing keys are stored, retrieved, and used for signing | issuer-signature-key-store-provider |
| Change how Authorization Server signing keys are stored, retrieved, and used for signing | authz-signature-key-store-provider |
| Change how Verifier signing keys are stored, retrieved, and used for signing | verifier-signature-key-store-provider |
| Change how Issuer signing keys are generated | issuer-signature-key-provider |
| Change how Authorization Server signing keys are generated | authz-signature-key-provider |
| Change how Verifier signing keys are generated | verifier-signature-key-provider |
| Change JWT signature verification | jwt-signature-provider |
| Add or customize DID resolution for specific DID methods | did-provider |
| Add or customize proof verification for Credential Requests | credential-proof-provider |
| Add or customize credential issuance for specific credential formats | issue-credential-provider |
| Add or customize Verifiable Credential verification | verify-verifiable-credential-provider |
| Add or customize Verifiable Presentation verification | verify-verifiable-presentation-provider |
| Change Holder Binding verification | holder-binding-provider |
| Add or customize Credential Query generation | credential-query-provider |
| Change how Request Objects are stored, retrieved, and deleted | request-object-store-provider |
| Change how Request Object IDs are generated | request-object-id-provider |
| Add or customize JAR generation for Authorization Requests | authz-request-jar-provider |
| Change how certificates associated with Verifiers are stored and retrieved | verifier-certificate-store-provider |
| Change certificate validation or public key extraction from certificates | certificate-provider |
| Change how Transaction Codes are generated | transaction-code-provider |
| Change how Transaction Data is generated | transaction-data-provider |