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

## PrivateKeyJwtAuthenticator Class

Authenticates clients using the Private Key JWT method, verifying the client's identity through a signed JWT
that the client provides\. This method is suitable for clients that can securely store and use private keys\.

```csharp
public class PrivateKeyJwtAuthenticator : Abblix.Oidc.Server.Features.ClientAuthentication.JwtAssertionAuthenticatorBase
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [JwtAssertionAuthenticatorBase](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.JwtAssertionAuthenticatorBase 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.JwtAssertionAuthenticatorBase') → PrivateKeyJwtAuthenticator
### Constructors

## PrivateKeyJwtAuthenticator\(ILogger\<PrivateKeyJwtAuthenticator\>, IJwtReplayCache, IServiceProvider\) Constructor {#Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator.PrivateKeyJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator_,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache,System.IServiceProvider)}

Authenticates clients using the Private Key JWT method, verifying the client's identity through a signed JWT
that the client provides\. This method is suitable for clients that can securely store and use private keys\.

```csharp
public PrivateKeyJwtAuthenticator(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator> logger, Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache replayCache, System.IServiceProvider serviceProvider);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[PrivateKeyJwtAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.PrivateKeyJwtAuthenticator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator.PrivateKeyJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator_,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache,System.IServiceProvider).logger}

Logger for recording the authentication process and any issues encountered\.

###### `replayCache` [IJwtReplayCache](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache 'Abblix\.Oidc\.Server\.Features\.ReplayPrevention\.IJwtReplayCache') {#Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator.PrivateKeyJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator_,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache,System.IServiceProvider).replayCache}

Replay cache that records assertion jti values and atomically rejects reuse\.

###### `serviceProvider` [System\.IServiceProvider](https://learn.microsoft.com/en-us/dotnet/api/system.iserviceprovider 'System\.IServiceProvider') {#Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator.PrivateKeyJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator_,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache,System.IServiceProvider).serviceProvider}

Service provider used to resolve scoped dependencies\.
### Properties

## PrivateKeyJwtAuthenticator\.ClientAuthenticationMethodsSupported Property {#Abblix.Oidc.Server.Features.ClientAuthentication.PrivateKeyJwtAuthenticator.ClientAuthenticationMethodsSupported}

Indicates the client authentication method supported by this authenticator\.
This method uses private keys and JSON Web Tokens \(JWT\) for client authentication,
allowing clients to assert their identity through the use of asymmetric key cryptography\.
It is designed for environments where the client can securely hold a private key\.

```csharp
public override System.Collections.Generic.IEnumerable<string> ClientAuthenticationMethodsSupported { get; }
```

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

#### Property Value
[System\.Collections\.Generic\.IEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
