Class ClientAssertion
- Namespace
- MailFathom.Common.ClientAssertions
- Assembly
- MailFathom.Common.dll
The shape of the assertion a client signs with its private key to authenticate.
public static class ClientAssertion
- Inheritance
-
ClientAssertion
- Inherited Members
Remarks
It is the arrangement RFC 7523 already describes and OpenID Connect deploys as private_key_jwt: the client
mints a short-lived JSON Web Token, signs it with a key only it holds, and presents it as an ordinary HTTP
Bearer credential. Nothing about the transport changes, so the header, the refusal, and the rate-limit
partition stay exactly what they are for a key or a token; the deployment holds one public key per client and there
is nothing on the host worth stealing from it.
The values here are the contract between the two halves, which is why they live in a project both of them reference
rather than beside either one. mfctl mints against them and the endpoint verifies against them, so a change to
what an assertion must carry cannot reach one side and miss the other.
The whole assertion is minted per request. Nothing about it is stored, resumed, or renewed, which is what makes the operator's rotation a matter of replacing one registered public key rather than coordinating a secret across two machines.
Fields
- AdminAudience
The audience an assertion presented to the administrative endpoint must name.
- AudienceClaimName
The claim naming the surface the assertion was minted for.
- DeclaredType
The media type an assertion declares in its
typheader, which is what a MailFathom credential is recognized by.
- ExpiresAtClaimName
The claim naming when the assertion stops being accepted.
- IdentifierClaimName
The claim naming the assertion's own replay identifier.
- IdentifierLengthLimit
The longest replay identifier an assertion may carry.
- MaximumLifetime
The longest window an assertion may claim between the moment it is verified and its own expiry.
- McpAudience
The audience an assertion presented to the MCP endpoint must name.
- MintedLifetime
The lifetime
mfctlmints an assertion with, well inside MaximumLifetime.