Dosaic.Plugins.Authorization.Abstractions 1.2.8

dotnet add package Dosaic.Plugins.Authorization.Abstractions --version 1.2.8
                    
NuGet\Install-Package Dosaic.Plugins.Authorization.Abstractions -Version 1.2.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dosaic.Plugins.Authorization.Abstractions" Version="1.2.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Dosaic.Plugins.Authorization.Abstractions" Version="1.2.8" />
                    
Directory.Packages.props
<PackageReference Include="Dosaic.Plugins.Authorization.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Dosaic.Plugins.Authorization.Abstractions --version 1.2.8
                    
#r "nuget: Dosaic.Plugins.Authorization.Abstractions, 1.2.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Dosaic.Plugins.Authorization.Abstractions@1.2.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Dosaic.Plugins.Authorization.Abstractions&version=1.2.8
                    
Install as a Cake Addin
#tool nuget:?package=Dosaic.Plugins.Authorization.Abstractions&version=1.2.8
                    
Install as a Cake Tool

Dosaic.Plugins.Authorization.Abstractions

Dosaic.Plugins.Authorization.Abstractions provides shared authorization primitives for the Dosaic plugin ecosystem. It defines a model for role-based authorization policies (AuthPolicy) and a set of extension helpers (PolicyExtensions) that make it straightforward to register pre-built or custom policies with ASP.NET Core's authorization middleware.

Concrete authentication plugins (e.g. Dosaic.Plugins.Authorization.Keycloak) depend on this package to declare and wire up their policies in a uniform way.

Installation

dotnet add package Dosaic.Plugins.Authorization.Abstractions

Or add as a package reference to your .csproj:

<PackageReference Include="Dosaic.Plugins.Authorization.Abstractions" Version="" />

Types

AuthPolicy

Represents a named ASP.NET Core authorization policy that requires the authenticated user to hold one or more roles.

Property Type Description
Name string The policy name used when calling [Authorize(Policy = "...")].
Roles IList<string> The roles the user must possess for the policy to succeed.

PolicyExtensions

A static helper class that exposes two pre-built policies and two extension methods for AuthorizationOptions.

Pre-built policies
Field Type Description
AuthenticatedPolicy AuthorizationPolicy Requires the user to be authenticated (RequireAuthenticatedUser()).
AllowAllPolicy AuthorizationPolicy Allows every request regardless of authentication state (RequireAssertion(_ => true)).
Extension methods
Method Description
AddDefaultPolicy(AuthorizationOptions, AuthorizationPolicy) Sets the supplied policy as both the default policy and registers it under the name "DEFAULT".
AddAuthPolicies(AuthorizationOptions, IEnumerable<AuthPolicy>) Iterates a collection of AuthPolicy objects and registers each one as a named role-based policy.

Usage

Registering the default "authenticated" policy

using Dosaic.Plugins.Authorization.Abstractions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;

services.AddAuthorization(options =>
{
    // Every endpoint that does not specify an explicit policy
    // will require an authenticated user.
    options.AddDefaultPolicy(PolicyExtensions.AuthenticatedPolicy);
});

Registering a permissive (allow-all) policy — useful for development or disabled auth

services.AddAuthorization(options =>
{
    options.AddDefaultPolicy(PolicyExtensions.AllowAllPolicy);
});

Registering role-based policies from configuration

var policies = new List<AuthPolicy>
{
    new AuthPolicy { Name = "AdminOnly", Roles = ["admin"] },
    new AuthPolicy { Name = "ReadWrite", Roles = ["editor", "admin"] },
};

services.AddAuthorization(options =>
{
    options.AddDefaultPolicy(PolicyExtensions.AuthenticatedPolicy);
    options.AddAuthPolicies(policies);
});

Apply the named policy on a controller or endpoint:

[Authorize(Policy = "AdminOnly")]
[ApiController]
[Route("admin")]
public class AdminController : ControllerBase
{
    // Only users with the "admin" role can reach these endpoints.
}

Driving policies from appsettings

When using the Keycloak plugin, AuthPolicy instances are typically loaded from configuration:

keycloak:
  enabled: true
  host: keycloak.example.com
  clientId: my-service
  policies:
    - name: AdminOnly
      roles:
        - admin
    - name: ReadWrite
      roles:
        - editor
        - admin

The Keycloak plugin reads the policies list as IList<AuthPolicy> and passes it to options.AddAuthPolicies(...) during ConfigureServices.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Dosaic.Plugins.Authorization.Abstractions:

Package Downloads
Dosaic.Plugins.Authorization.Keycloak

A plugin-first dotnet framework for rapidly building anything hosted in the web.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.8 17 3/9/2026
1.2.7 75 3/4/2026
1.2.6 100 2/19/2026
1.2.5 88 2/17/2026
1.2.4 119 2/13/2026
1.2.3 109 1/27/2026
1.2.2 299 12/16/2025
1.2.1 278 12/16/2025
1.2.0 427 12/11/2025
1.1.21 471 12/10/2025
1.1.20 436 11/18/2025
1.1.19 321 11/11/2025
1.1.18 214 10/14/2025
1.1.17 223 10/1/2025
1.1.16 228 9/25/2025
1.1.15 218 9/24/2025
1.1.14 220 9/24/2025
1.1.13 225 9/24/2025
1.1.12 350 9/16/2025
1.1.11 174 7/18/2025
Loading failed