Raycynix.Extensions.Security.AspNetCore
0.3.0
See the version list below for details.
dotnet add package Raycynix.Extensions.Security.AspNetCore --version 0.3.0
NuGet\Install-Package Raycynix.Extensions.Security.AspNetCore -Version 0.3.0
<PackageReference Include="Raycynix.Extensions.Security.AspNetCore" Version="0.3.0" />
<PackageVersion Include="Raycynix.Extensions.Security.AspNetCore" Version="0.3.0" />
<PackageReference Include="Raycynix.Extensions.Security.AspNetCore" />
paket add Raycynix.Extensions.Security.AspNetCore --version 0.3.0
#r "nuget: Raycynix.Extensions.Security.AspNetCore, 0.3.0"
#:package Raycynix.Extensions.Security.AspNetCore@0.3.0
#addin nuget:?package=Raycynix.Extensions.Security.AspNetCore&version=0.3.0
#tool nuget:?package=Raycynix.Extensions.Security.AspNetCore&version=0.3.0
Raycynix.Extensions.Security.AspNetCore
Raycynix.Extensions.Security.AspNetCore adds ASP.NET Core JWT authentication, dynamic authorization policies, and shared authorization-attribute integration for Raycynix security.
What it contains
AddRaycynixAspNetCoreSecurity(...)UseRaycynixSecurity(this IApplicationBuilder app)- per-request
ClaimsPrincipaltoISecurityContextmapping - dynamic API policies for
authenticated,permission:*,role:*, andsubject:* - MVC convention support for shared security attributes from
Raycynix.Extensions.Security.Abstractions - endpoint-builder helpers through
RequireRaycynixAuthorization(...) - consistent
401 Unauthorizedand403 ForbiddenJSON responses
Usage
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRaycynixAspNetCoreSecurity(builder.Configuration, options =>
{
options.Jwt.Authority = "https://auth.raycynix.com";
options.Jwt.Issuer = "raycynix-auth";
options.Jwt.Audience = "raycynix-services";
});
var app = builder.Build();
app.UseRaycynixSecurity();
app.Run();
Use authorization policies with standard names:
using Raycynix.Extensions.Security.AspNetCore.Authorization;
[Authorize(Policy = SecurityPolicies.Permission("users.read"))]
[Authorize(Policy = SecurityPolicies.AnyPermission("users.read", "users.write"))]
[Authorize(Policy = SecurityPolicies.AllPermissions("users.read", "users.export"))]
[Authorize(Policy = SecurityPolicies.Role("admin"))]
[Authorize(Policy = SecurityPolicies.AnyRole("admin", "support"))]
[Authorize(Policy = SecurityPolicies.AllRoles("manager", "auditor"))]
[Authorize(Policy = SecurityPolicies.Authenticated)]
[Authorize(Policy = SecurityPolicies.ServiceOnly)]
Or use the shared security attributes and let the package translate them into standard ASP.NET Core authorization policies:
using Raycynix.Extensions.Security.Abstractions.Attributes;
[RequireAuthenticatedSubject]
[RequireSubjectType(SecuritySubjectType.Service)]
[RequirePermission("users.read")]
public sealed class UsersController : ControllerBase
{
}
For minimal APIs or endpoint builders, use the helper extension:
app.MapGet("/users/{id}", HandleUserAsync)
.RequireRaycynixAuthorization(
new RequireAuthenticatedSubjectAttribute(),
new RequirePermissionAttribute("users.read"));
The package expects JWT access tokens with:
subsubject_typerolespermissions
subject_type is mapped to SecuritySubjectType, allowing both User and Service request subjects to use the same ISecurityContext.
Authentication and authorization failures return safe JSON responses without exposing internal policy details.
| Product | Versions 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. |
-
net10.0
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.5)
- Raycynix.Extensions.Security (>= 0.2.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.