Proof of possession
Bound to the client’s key
Each token is tied to the client’s public key. Using it needs a fresh proof signed with the private key.
Features / Token security
A bearer token works for whoever holds it. With DPoP (RFC 9449), WebFrolic binds access and refresh tokens to a key held by the client, so a token that leaks from a log, a proxy or a compromised browser cannot be replayed without that key. You turn it on once, then decide per application which tokens must be bound.
Available now in WebFrolic.
Why it matters
Tokens end up in browser storage, mobile devices, logs and agent runtimes. Refresh tokens are the bigger prize because they keep working for a long time. Sender-constrained tokens mean a copied token alone is no longer enough.
Proof of possession
Each token is tied to the client’s public key. Using it needs a fresh proof signed with the private key.
Per application
Require DPoP only where it fits: the refresh token for a browser app, both tokens for a high-risk API client.
Standards-based
Resource servers check the proof and the cnf.jkt thumbprint in the token, using standard DPoP libraries.
The building blocks
Applications
Public clients cannot keep a client secret. Binding the refresh token to a device key stops a stolen refresh token being used elsewhere.
Explore ↗Authorization
Your APIs can require DPoP-bound access tokens issued by WebFrolic and reject plain bearer tokens.
Explore ↗Agentic AI
Agents that hold tokens for long-running work can prove possession on every call.
Explore ↗Protocols
PKCE protects the authorization code; DPoP protects the tokens that come after it.
Explore ↗In Configuration → General → Advanced, turn on DPoP for the identity provider.
On each OAuth2 application, require DPoP for the access token, the refresh token or both. Applications you leave alone keep their current behavior.
Have resource servers check the DPoP proof and the key thumbprint in the token, and reject bearer use where you require binding.
Before rollout
Settle these first and the rollout is mostly configuration.
Related capabilities
These capabilities are usually configured together.
Evaluate with your scenario
Share the identities, resource boundary and decision you want to test. The walkthrough can focus on the relevant behavior rather than a generic feature tour.