#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.DPoP](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DPoP 'Abblix\.Oidc\.Server\.Features\.DPoP')

## Proof Class

The product of a successfully validated DPoP proof: the parsed JWT \(so callers can read
claims the validator does not consume itself, e\.g\. `nonce`\), the public\-only JWK
extracted from the proof's `jwk` header, its base64url\-encoded RFC 7638 JWK
Thumbprint \(the value that goes into `cnf.jkt` on the issued access token and
matches against `dpop_jkt`\), the proof\-unique `jti` for downstream replay
protection, and the `iat` the proof claims to have been signed at\.

```csharp
public sealed record Proof : System.IEquatable<Abblix.Oidc.Server.Features.DPoP.Proof>
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → Proof

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[Proof](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DPoP.Proof 'Abblix\.Oidc\.Server\.Features\.DPoP\.Proof')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Constructors

## Proof\(JsonWebToken, JsonWebKey, string, string, DateTimeOffset\) Constructor {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset)}

The product of a successfully validated DPoP proof: the parsed JWT \(so callers can read
claims the validator does not consume itself, e\.g\. `nonce`\), the public\-only JWK
extracted from the proof's `jwk` header, its base64url\-encoded RFC 7638 JWK
Thumbprint \(the value that goes into `cnf.jkt` on the issued access token and
matches against `dpop_jkt`\), the proof\-unique `jti` for downstream replay
protection, and the `iat` the proof claims to have been signed at\.

```csharp
public Proof(Abblix.Jwt.JsonWebToken Token, Abblix.Jwt.JsonWebKey ProofKey, string ProofKeyThumbprint, string JwtId, System.DateTimeOffset IssuedAt);
```
#### Parameters

###### `Token` [JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken') {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).Token}

The parsed proof JWT\. The validator already produced this object
            internally; carrying it through saves callers a re\-parse when they need claims outside
            the validator's contract \(notably DPoP\-Nonce checks layered on top\)\.

###### `ProofKey` [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).ProofKey}

The public\-only JWK from the proof header\.

###### `ProofKeyThumbprint` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).ProofKeyThumbprint}

RFC 7638 base64url\-encoded JWK Thumbprint of
            [ProofKey](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DPoP.Proof#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).ProofKey 'Abblix\.Oidc\.Server\.Features\.DPoP\.Proof\.Proof\(Abblix\.Jwt\.JsonWebToken, Abblix\.Jwt\.JsonWebKey, string, string, System\.DateTimeOffset\)\.ProofKey')\. This is the value that goes into `cnf.jkt` on the issued
            access token \(RFC 9449 §6\.1\) — the role\-name «proof key thumbprint» reflects the
            protocol\-level meaning, while the wire\-level cnf\-member retains the RFC's
            `jkt` spelling\.

###### `JwtId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).JwtId}

The `jti` claim of the proof\. The validator does not check it
            against any cache; the layered replay\-cache slice consumes this value\.

###### `IssuedAt` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.Oidc.Server.Features.DPoP.Proof.Proof(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,string,string,System.DateTimeOffset).IssuedAt}

The `iat` claim of the proof, parsed from the JWT
            numeric\-date\.
### Properties

## Proof\.IssuedAt Property {#Abblix.Oidc.Server.Features.DPoP.Proof.IssuedAt}

The `iat` claim of the proof, parsed from the JWT
            numeric\-date\.

```csharp
public System.DateTimeOffset IssuedAt { get; init; }
```

#### Property Value
[System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset')

## Proof\.JwtId Property {#Abblix.Oidc.Server.Features.DPoP.Proof.JwtId}

The `jti` claim of the proof\. The validator does not check it
            against any cache; the layered replay\-cache slice consumes this value\.

```csharp
public string JwtId { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## Proof\.ProofKey Property {#Abblix.Oidc.Server.Features.DPoP.Proof.ProofKey}

The public\-only JWK from the proof header\.

```csharp
public Abblix.Jwt.JsonWebKey ProofKey { get; init; }
```

#### Property Value
[JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey')

## Proof\.ProofKeyThumbprint Property {#Abblix.Oidc.Server.Features.DPoP.Proof.ProofKeyThumbprint}

RFC 7638 base64url\-encoded JWK Thumbprint of
            ProofKey\. This is the value that goes into `cnf.jkt` on the issued
            access token \(RFC 9449 §6\.1\) — the role\-name «proof key thumbprint» reflects the
            protocol\-level meaning, while the wire\-level cnf\-member retains the RFC's
            `jkt` spelling\.

```csharp
public string ProofKeyThumbprint { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## Proof\.Token Property {#Abblix.Oidc.Server.Features.DPoP.Proof.Token}

The parsed proof JWT\. The validator already produced this object
            internally; carrying it through saves callers a re\-parse when they need claims outside
            the validator's contract \(notably DPoP\-Nonce checks layered on top\)\.

```csharp
public Abblix.Jwt.JsonWebToken Token { get; init; }
```

#### Property Value
[JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken')
