Skip to main content

ServiceCollectionExtensions Class

Abblix.Oidc.Server

Abblix.Oidc.Server.Features.RichAuthorizationRequests

ServiceCollectionExtensions Class

Service-collection extensions for the RFC 9396 Rich Authorization Requests feature.

public static class ServiceCollectionExtensions

Inheritance System.Object → ServiceCollectionExtensions

Methods

ServiceCollectionExtensions.AddAuthorizationDetailValidator<TValidator>(this IServiceCollection, string) Method

Registers a per-type validator for RFC 9396 authorization_details entries whose type value matches type. The composite IAuthorizationDetailsPolicy dispatches each entry in the authorization_details array to the implementation keyed by the entry's type.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationDetailValidator<TValidator>(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string type)
where TValidator : class, Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailValidator;

Type parameters

TValidator

The per-type validator implementation.

Parameters

services Microsoft.Extensions.DependencyInjection.IServiceCollection

The service collection to register the validator in.

type System.String

The authorization-detail type value the validator handles (RFC 9396 §2.1). Used as the DI key; byte-exact match with the inbound entry's type member.

Returns

Microsoft.Extensions.DependencyInjection.IServiceCollection
The service collection for method chaining.

Remarks

A single keyed registration via Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddKeyedSingleton<>.Extensions.DependencyInjection.IServiceCollection,System.Object) serves both O(1) request-time dispatch (GetKeyedService<IAuthorizationDetailValidator>(type)) and discovery enumeration in slice #132 via GetKeyedServices<IAuthorizationDetailValidator>(KeyedService.AnyKey) (.NET 8+). No TryAddEnumerable parallel slot.

ServiceCollectionExtensions.AddRichAuthorizationRequests(this IServiceCollection) Method

Registers the OAuth 2.0 Rich Authorization Requests (RFC 9396) infrastructure: the composite IAuthorizationDetailsPolicy and the IAuthorizationDetailsMetadataProvider discovery contributor. Called unconditionally from AddFeatures so the server boots cleanly with zero IAuthorizationDetailValidator implementations registered; RAR-bearing requests are rejected with invalid_authorization_details per RFC 9396 §5 until at least one validator is registered via AddAuthorizationDetailValidator<TValidator>(this IServiceCollection, string).

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRichAuthorizationRequests(this Microsoft.Extensions.DependencyInjection.IServiceCollection services);

Parameters

services Microsoft.Extensions.DependencyInjection.IServiceCollection

The service collection to configure.

Returns

Microsoft.Extensions.DependencyInjection.IServiceCollection
The service collection for method chaining.