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

## ConfigurationHandler Class

Handles OpenID Connect discovery configuration requests by building metadata response\.
Returns framework\-agnostic discovery metadata without endpoint URLs\.

```csharp
public sealed class ConfigurationHandler : Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IConfigurationHandler
```

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

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

## ConfigurationHandler\(IOptionsSnapshot\<OidcOptions\>, IIssuerProvider, ILogoutNotifier, IClientAuthenticator, IAuthorizationMetadataProvider, IScopesAndClaimsProvider, IJwtAlgorithmsProvider, IEnumerable\<IAuthenticationCompletionHandler\>, IAcrMetadataProvider, IAuthorizationDetailsMetadataProvider\) Constructor {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider)}

Handles OpenID Connect discovery configuration requests by building metadata response\.
Returns framework\-agnostic discovery metadata without endpoint URLs\.

```csharp
public ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot<Abblix.Oidc.Server.Common.Configuration.OidcOptions> options, Abblix.Oidc.Server.Features.Issuer.IIssuerProvider issuerProvider, Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier logoutNotifier, Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator clientAuthenticator, Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider authorizationMetadata, Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider scopesAndClaims, Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider jwtAlgorithms, System.Collections.Generic.IEnumerable<Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler> cibaCompletionHandlers, Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider acrMetadata, Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider authorizationDetailsMetadata);
```
#### Parameters

###### `options` [Microsoft\.Extensions\.Options\.IOptionsSnapshot&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptionssnapshot-1 'Microsoft\.Extensions\.Options\.IOptionsSnapshot\`1')[OidcOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptionssnapshot-1 'Microsoft\.Extensions\.Options\.IOptionsSnapshot\`1') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).options}

###### `issuerProvider` [IIssuerProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Issuer.IIssuerProvider 'Abblix\.Oidc\.Server\.Features\.Issuer\.IIssuerProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).issuerProvider}

###### `logoutNotifier` [ILogoutNotifier](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier 'Abblix\.Oidc\.Server\.Features\.LogoutNotification\.ILogoutNotifier') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).logoutNotifier}

###### `clientAuthenticator` [IClientAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.IClientAuthenticator') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).clientAuthenticator}

###### `authorizationMetadata` [IAuthorizationMetadataProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.IAuthorizationMetadataProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).authorizationMetadata}

###### `scopesAndClaims` [IScopesAndClaimsProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.IScopesAndClaimsProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).scopesAndClaims}

###### `jwtAlgorithms` [IJwtAlgorithmsProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.IJwtAlgorithmsProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).jwtAlgorithms}

###### `cibaCompletionHandlers` [System\.Collections\.Generic\.IEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[IAuthenticationCompletionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces\.IAuthenticationCompletionHandler')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).cibaCompletionHandlers}

###### `acrMetadata` [IAcrMetadataProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.IAcrMetadataProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).acrMetadata}

###### `authorizationDetailsMetadata` [IAuthorizationDetailsMetadataProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider 'Abblix\.Oidc\.Server\.Features\.RichAuthorizationRequests\.IAuthorizationDetailsMetadataProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.ConfigurationHandler(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Issuer.IIssuerProvider,Abblix.Oidc.Server.Features.LogoutNotification.ILogoutNotifier,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAuthorizationMetadataProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IScopesAndClaimsProvider,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IJwtAlgorithmsProvider,System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IAuthenticationCompletionHandler_,Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.IAcrMetadataProvider,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsMetadataProvider).authorizationDetailsMetadata}
### Methods

## ConfigurationHandler\.HandleAsync\(\) Method {#Abblix.Oidc.Server.Endpoints.Configuration.ConfigurationHandler.HandleAsync()}

Handles the configuration request by building discovery metadata\.

```csharp
public System.Threading.Tasks.Task<Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ConfigurationResponse> HandleAsync();
```

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

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[ConfigurationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ConfigurationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.ConfigurationResponse')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
Configuration response with metadata but without resolved endpoint URLs\.
