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

## IIntrospectionRequestValidator Interface

Authenticates the calling client \(RFC 7662 §2\.1, "the protected resource calls the
introspection endpoint using an HTTP request"\) and validates the supplied `token`\.
Implementations are expected to coerce token problems \(expired, signed by a different
issuer, audience mismatch, issued to another client\) into a non\-disclosing
`active=false` result via [InvalidToken\(IntrospectionRequest, ClientInfo\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo) 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest\.InvalidToken\(Abblix\.Oidc\.Server\.Model\.IntrospectionRequest, Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\)')\.

```csharp
public interface IIntrospectionRequestValidator
```

Derived  
↳ [IntrospectionRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.IntrospectionRequestValidator')
### Methods

## IIntrospectionRequestValidator\.ValidateAsync\(IntrospectionRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Authenticates the caller and validates the introspected token\.

```csharp
System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest introspectionRequest, Abblix.Oidc.Server.Model.ClientRequest clientRequest);
```
#### Parameters

###### `introspectionRequest` [IntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.IntrospectionRequest 'Abblix\.Oidc\.Server\.Model\.IntrospectionRequest') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest).introspectionRequest}

Wire\-level request carrying the `token` to introspect\.

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

Carrier of the client's authentication credentials\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[ValidIntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A [ValidIntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest') on success \(with `Token` set or null\);
an [OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError') only when the caller itself cannot be authenticated\.
