Skip to content

Cyaim/AuthorizationSecurity

Repository files navigation

Cyaim.Authentication

现代 .NET 权限框架:RBAC/ABAC 授权引擎 + OAuth 2.0 / OIDC 兼容授权服务器 + 统一登录(SSO)+ 内嵌权限管理面板 + 跨平台客户端 SDK。

NuGet

能做什么

  • 端点权限[RequirePermission("sys.user.read")].RequirePermission(...) 一行保护控制器、Minimal API、WebSocket
  • RBAC + ABAC:角色层级继承(NIST RBAC1)、拒绝优先授权、通配符权限码(sys.user.*sys.**)、命名策略
  • 高性能:每主体权限编译为哈希 + 字典树,命中路径 O(1),实测比 1.x 的线性扫描快多个数量级(见 docs/benchmark-results.md
  • 统一登录:内置授权服务器——授权码 + PKCE、客户端凭据、密码、刷新令牌轮换;SSO 会话;发现文档与 JWKS
  • 管理面板/auth-admin 内嵌 SPA,管理用户/角色/权限/客户端并查看审计日志,零前端构建
  • 全平台客户端:WinForms / WPF / Blazor WASM / 控制台共用一个 SDK,自动刷新令牌、本地权限判断门控 UI
  • 可观测:结构化日志(EventId)、System.Diagnostics.Metrics 指标、审计日志(内存 + JSONL)

包一览

用途 目标框架
Cyaim.Authentication ASP.NET Core 集成(中间件、特性、Minimal API 扩展) net8.0 / net9.0
Cyaim.Authentication.Abstractions 契约与权限匹配引擎,零依赖 netstandard2.0 / net8.0
Cyaim.Authentication.Core 授权引擎、存储、JWT、审计 netstandard2.0 / net8.0 / net9.0
Cyaim.Authentication.Server OAuth2/OIDC 授权服务器 + SSO net8.0 / net9.0
Cyaim.Authentication.AdminPanel 内嵌权限管理面板 net8.0 / net9.0
Cyaim.Authentication.Client 桌面 / WASM / 服务客户端 SDK netstandard2.0 / net8.0
Cyaim.Authentication.EntityFrameworkCore EF Core 共享数据库存储 + 集群版本(多实例集群) net8.0 / net9.0

30 秒上手

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCyaimAuthentication(o =>
{
    o.Issuer = "my-auth";
    o.Audience = "my-api";
    o.HmacSigningKey = "至少32字节的签名密钥..............";
}).AddInMemoryStore();

var app = builder.Build();
app.UseCyaimAuthentication();

app.MapGet("/users", () => ...).RequirePermission("sys.user.read");
app.MapGet("/ping", () => "pong").AllowGuest();

app.Run();

权限语义:./: 分层、大小写不敏感、* 匹配一段、** 匹配任意后代、拒绝优先

更多场景(独立授权服务器、SSO、WPF/WASM 客户端、WebSocket、ABAC 策略)见 docs/getting-started.md

示例

示例 说明
samples/Sample.AuthServer 授权服务器 + SSO + 管理面板
samples/Sample.WebApi 资源 API:Minimal API / 控制器 / WebSocket 三种形态 + 拒绝优先演示
samples/Sample.Wpf WPF 桌面客户端:登录、令牌缓存、按权限启停按钮
samples/Sample.Wasm Blazor WebAssembly:授权码 + PKCE
samples/Sample.Cluster 多实例集群:共享数据库 + 跨实例缓存失效(无 Redis)

文档

📖 文档中心 —— 统一入口,含按角色的阅读路径与完整目录。所有文档从这里索引,不散落。

常用直达:

1.x 兼容

1.x 的 ConfigureAuth / UseAuth / [AuthEndPoint] 全部保留并标记 [Obsolete],可平滑升级,见迁移指南

License

MIT

About

AuthorizationSecurity is based on endpoint authorization framework.You only write database code and mark endpoint can complete the authorization.

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors