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

## IAuthorizationRequestProcessor Interface

Defines the interface for processing authorization requests according to OpenID Connect and OAuth 2\.0 specifications\.
It handles the end\-user's authentication, authorization decision, and the issuance of authorization codes and tokens\.

```csharp
public interface IAuthorizationRequestProcessor
```

Derived  
↳ [AuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.AuthorizationRequestProcessor')  
↳ [PushedAuthorizationRequestProcessorDecorator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.PushedAuthorization.PushedAuthorizationRequestProcessorDecorator 'Abblix\.Oidc\.Server\.Features\.PushedAuthorization\.PushedAuthorizationRequestProcessorDecorator')  
↳ [AuthorizationRequestProcessorDecorator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator 'Abblix\.Oidc\.Server\.Features\.SessionManagement\.AuthorizationRequestProcessorDecorator')

### Remarks
The actual authentication methods and the process to obtain the end\-user's authorization decision are
implementation\-specific and not defined by this interface\.
### Methods

## IAuthorizationRequestProcessor\.ProcessAsync\(ValidAuthorizationRequest\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor.ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest)}

Processes a valid authorization request, authenticates the end\-user, obtains an authorization decision,
and issues an authorization code or tokens\.

```csharp
System.Threading.Tasks.Task<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse> ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest request);
```
#### Parameters

###### `request` [ValidAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor.ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest).request}

The valid authorization request to process\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that resolves to an [AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse') containing the outcome
            of the request processing\.
