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

## RegistrationAccessTokenValidator Class

Default implementation of [IRegistrationAccessTokenValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenValidator')\. Requires a
`Bearer` scheme, validates the JWT signature and lifetime via
[IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator'), then enforces that the token's `typ` is
`registration_access_token` and that its `sub` and `aud` both equal the
requested `client_id`\.

```csharp
public class RegistrationAccessTokenValidator : Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator
```

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

Implements [IRegistrationAccessTokenValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenValidator')
### Constructors

## RegistrationAccessTokenValidator\(IAuthServiceJwtValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.RegistrationAccessTokenValidator(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator)}

Default implementation of [IRegistrationAccessTokenValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenValidator')\. Requires a
`Bearer` scheme, validates the JWT signature and lifetime via
[IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator'), then enforces that the token's `typ` is
`registration_access_token` and that its `sub` and `aud` both equal the
requested `client_id`\.

```csharp
public RegistrationAccessTokenValidator(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator jwtValidator);
```
#### Parameters

###### `jwtValidator` [IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.RegistrationAccessTokenValidator(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).jwtValidator}

JWT validator used for signature and lifetime checks\.
### Methods

## RegistrationAccessTokenValidator\.ValidateAsync\(AuthenticationHeaderValue, string, string\) Method {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue,string,string)}

Validates the bearer token, ensuring it is well\-formed, of the expected type, and
authorized to manage the specified client\.

```csharp
public System.Threading.Tasks.Task<string?> ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue? header, string clientId, string? expectedTokenId);
```
#### Parameters

###### `header` [System\.Net\.Http\.Headers\.AuthenticationHeaderValue](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.headers.authenticationheadervalue 'System\.Net\.Http\.Headers\.AuthenticationHeaderValue') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue,string,string).header}

The HTTP `Authorization` header carrying the bearer token\.

###### `clientId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue,string,string).clientId}

The `client_id` targeted by the management request\.

###### `expectedTokenId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator.ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue,string,string).expectedTokenId}

The jti the token must carry to be accepted — the value stored on the client when its
current registration access token was issued\. When `null` the binding is not enforced
\(statically configured client, or a record predating the stored id\) and only signature,
type and audience are checked\.

Implements [ValidateAsync\(AuthenticationHeaderValue, string, string\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator.ValidateAsync(System.Net.Http.Headers.AuthenticationHeaderValue,string,string) 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenValidator\.ValidateAsync\(System\.Net\.Http\.Headers\.AuthenticationHeaderValue, string, string\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`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.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
`null` when the token is valid for the client; otherwise a human\-readable description
            of the validation failure\.
