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

## ValidBackChannelAuthenticationRequest Class

Represents a validated backchannel authentication request, encapsulating the original request model
and the associated client information\.

```csharp
public record ValidBackChannelAuthenticationRequest : System.IEquatable<Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest>
```

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

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

## ValidBackChannelAuthenticationRequest\(BackChannelAuthenticationValidationContext\) Constructor {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext)}

Initializes a new instance of the [ValidBackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Interfaces\.ValidBackChannelAuthenticationRequest') class using
the specified validation context\.

```csharp
public ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext context);
```
#### Parameters

###### `context` [BackChannelAuthenticationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Validation\.BackChannelAuthenticationValidationContext') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext).context}

The validation context containing the original request and client information\.

## ValidBackChannelAuthenticationRequest\(BackChannelAuthenticationRequest, ClientInfo, TimeSpan, JsonWebToken, JsonWebToken, ScopeDefinition\[\], ResourceDefinition\[\], JsonArray\) Constructor {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray)}

Represents a validated backchannel authentication request, encapsulating the original request model
and the associated client information\.

```csharp
public ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest Model, Abblix.Oidc.Server.Features.ClientInformation.ClientInfo ClientInfo, System.TimeSpan ExpiresIn, Abblix.Jwt.JsonWebToken? LoginHintToken, Abblix.Jwt.JsonWebToken? IdToken, Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scope, Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources, System.Text.Json.Nodes.JsonArray? AuthorizationDetails);
```
#### Parameters

###### `Model` [BackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Model\.BackChannelAuthenticationRequest') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).Model}

The original backchannel authentication request that passed validation\.

###### `ClientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).ClientInfo}

The information about the client associated with the request,
            including credentials and other metadata\.

###### `ExpiresIn` [System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).ExpiresIn}

The expiry duration for the backchannel authentication request,
            defining how long the request remains valid\.

###### `LoginHintToken` [JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).LoginHintToken}

The login hint token, if provided,
            which can be used to identify the user in the request\.

###### `IdToken` [JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).IdToken}

The ID token, if provided, used to validate the user's identity in the request\.

###### `Scope` [ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).Scope}

The set of scope definitions applicable to the request,
            indicating the permissions requested by the client\.

###### `Resources` [ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).Resources}

The set of resources requested as part of the authorization process,
            specifying the accessible resources for the client\.

###### `AuthorizationDetails` [System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ValidBackChannelAuthenticationRequest(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan,Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebToken,Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[],System.Text.Json.Nodes.JsonArray).AuthorizationDetails}

RFC 9396 §3 Rich Authorization Requests array
            \(already passed the per\-client allowlist and per\-type validator dispatch\) which the
            downstream processor threads onto the issued grant's AuthorizationContext byte\-exact\.
### Properties

## ValidBackChannelAuthenticationRequest\.AuthorizationDetails Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.AuthorizationDetails}

RFC 9396 §3 Rich Authorization Requests array
            \(already passed the per\-client allowlist and per\-type validator dispatch\) which the
            downstream processor threads onto the issued grant's AuthorizationContext byte\-exact\.

```csharp
public System.Text.Json.Nodes.JsonArray? AuthorizationDetails { get; init; }
```

#### Property Value
[System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray')

## ValidBackChannelAuthenticationRequest\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ClientInfo}

The information about the client associated with the request,
            including credentials and other metadata\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.ClientInfo ClientInfo { get; init; }
```

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

## ValidBackChannelAuthenticationRequest\.ExpiresIn Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.ExpiresIn}

The expiry duration for the backchannel authentication request,
            defining how long the request remains valid\.

```csharp
public System.TimeSpan ExpiresIn { get; init; }
```

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

## ValidBackChannelAuthenticationRequest\.IdToken Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.IdToken}

The ID token, if provided, used to validate the user's identity in the request\.

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

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

## ValidBackChannelAuthenticationRequest\.LoginHintToken Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.LoginHintToken}

The login hint token, if provided,
            which can be used to identify the user in the request\.

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

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

## ValidBackChannelAuthenticationRequest\.Model Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.Model}

The original backchannel authentication request that passed validation\.

```csharp
public Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest Model { get; init; }
```

#### Property Value
[BackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Model\.BackChannelAuthenticationRequest')

## ValidBackChannelAuthenticationRequest\.Resources Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.Resources}

The set of resources requested as part of the authorization process,
            specifying the accessible resources for the client\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources { get; init; }
```

#### Property Value
[ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ValidBackChannelAuthenticationRequest\.Scope Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest.Scope}

The set of scope definitions applicable to the request,
            indicating the permissions requested by the client\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scope { get; init; }
```

#### Property Value
[ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
