#### [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')

## ClientSecretJwtAuthenticator Class

Authenticates client requests using the client\_secret\_jwt authentication method\.
This method is used in scenarios where the client signs a JWT with its secret as a means of authentication\.

```csharp
public class ClientSecretJwtAuthenticator : 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') → ClientSecretJwtAuthenticator
### Constructors

## ClientSecretJwtAuthenticator\(ILogger\<ClientSecretJwtAuthenticator\>, IJsonWebTokenValidator, IClientInfoProvider, IRequestInfoProvider, TimeProvider, IJwtReplayCache\) Constructor {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache)}

Authenticates client requests using the client\_secret\_jwt authentication method\.
This method is used in scenarios where the client signs a JWT with its secret as a means of authentication\.

```csharp
public ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator> logger, Abblix.Jwt.IJsonWebTokenValidator tokenValidator, Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider clientInfoProvider, Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider requestInfoProvider, System.TimeProvider clock, Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache replayCache);
```
#### 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')[ClientSecretJwtAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.ClientSecretJwtAuthenticator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).logger}

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

###### `tokenValidator` [IJsonWebTokenValidator](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.IJsonWebTokenValidator 'Abblix\.Jwt\.IJsonWebTokenValidator') {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).tokenValidator}

Validator for JSON Web Tokens\.

###### `clientInfoProvider` [IClientInfoProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientInfoProvider') {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).clientInfoProvider}

Provider for retrieving client information\.

###### `requestInfoProvider` [IRequestInfoProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IRequestInfoProvider') {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).requestInfoProvider}

Provider for retrieving request information\.

###### `clock` [System\.TimeProvider](https://learn.microsoft.com/en-us/dotnet/api/system.timeprovider 'System\.TimeProvider') {#Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).clock}

Time provider for checking secret expiration\.

###### `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.ClientSecretJwtAuthenticator.ClientSecretJwtAuthenticator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientAuthentication.ClientSecretJwtAuthenticator_,Abblix.Jwt.IJsonWebTokenValidator,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider,Abblix.Oidc.Server.Common.Interfaces.IRequestInfoProvider,System.TimeProvider,Abblix.Oidc.Server.Features.ReplayPrevention.IJwtReplayCache).replayCache}

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

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

Specifies the client authentication method this authenticator supports, which is 'client\_secret\_jwt'\.
This indicates that the authenticator handles client authentication using JSON Web Tokens \(JWT\) for
the client secret, as defined in the OpenID Connect specification\. It involves using JWTs as
client credentials for authentication, where the JWT assertion is signed by the client's secret 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')
