Raycynix.Extensions.Security.AspNetCore
1.0.0
dotnet add package Raycynix.Extensions.Security.AspNetCore --version 1.0.0
NuGet\Install-Package Raycynix.Extensions.Security.AspNetCore -Version 1.0.0
<PackageReference Include="Raycynix.Extensions.Security.AspNetCore" Version="1.0.0" />
<PackageVersion Include="Raycynix.Extensions.Security.AspNetCore" Version="1.0.0" />
<PackageReference Include="Raycynix.Extensions.Security.AspNetCore" />
paket add Raycynix.Extensions.Security.AspNetCore --version 1.0.0
#r "nuget: Raycynix.Extensions.Security.AspNetCore, 1.0.0"
#:package Raycynix.Extensions.Security.AspNetCore@1.0.0
#addin nuget:?package=Raycynix.Extensions.Security.AspNetCore&version=1.0.0
#tool nuget:?package=Raycynix.Extensions.Security.AspNetCore&version=1.0.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();
{
"SecurityConfiguration": {
"Jwt": {
"Authority": "https://auth.raycynix.com",
"Issuer": "raycynix-auth",
"Audience": "raycynix-services",
"RequireHttpsMetadata": true
}
}
}
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)
- Microsoft.IdentityModel.Abstractions (>= 8.17.0)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.17.0)
- Microsoft.IdentityModel.Protocols (>= 8.17.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.17.0)
- Raycynix.Extensions.Security (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See the repository changelog and release history for package-specific changes and breaking updates.