ASP.NET Core Web API Interview Question #64

What is a custom authorization requirement and handler?

Authentication, Authorization, JWT & API Security Mid-Level Intermediate

Quick Interview Answer

A custom authorization requirement represents an authorization condition that cannot be expressed adequately with built-in role or claim checks. An AuthorizationHandler evaluates that requirement using the current authorization context.

Detailed Explanation

A custom authorization requirement represents an authorization condition that cannot be expressed adequately with built-in role or claim checks. An AuthorizationHandler evaluates that requirement using the current authorization context.

Handlers are useful for reusable business-aware permission rules, but they should remain focused on authorization rather than performing unrelated application workflows.

Code Example

public sealed class MinimumAgeRequirement(int age)
    : IAuthorizationRequirement
{
    public int Age { get; } = age;
}

public sealed class MinimumAgeHandler
    : AuthorizationHandler<MinimumAgeRequirement>
{
    protected override Task HandleRequirementAsync(
        AuthorizationHandlerContext context,
        MinimumAgeRequirement requirement)
    {
        // Evaluate trusted claims here.
        return Task.CompletedTask;
    }
}