New DpopTokenUser class
What does this MR do and why?
See the epic (Allow users to require demonstrated proof of po... (&14383)) for context, pre-work, and other related issues.
This MR is part 2 of:
- Add DpopToken class (!173071 - merged)
- New DpopTokenUser class (!173662 - merged)
- Parse and validate DPoP Tokens (!166206 - merged)
This MR is to provide logic that can:
- Validate that DPoP token (a signed JWT) is well formed according to the spec
- E.g. each part of the token has the correct number of parts, the signing algorithm is supported, the timestamps are recent enough, that a valid key ID is present, etc etc
 
- Validate that a DPoP token was correctly signed with one of a user's valid and current signing keys according to the spec. Specifically:
- the kidreferences a valid, current signing key for the provided user
- the athclaim is a signature that corresponds to the private key referenced inkid
 
- the 
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Edited  by Ash McKenzie