将后端权限转移到 asp dotnet core 3 中的客户端

Transfering backend permissions to clients in asp dotnet core 3

我有一个 dotnet asp 核心 3 后端,它为我的 WebAPI 定义了角色和权限。现在我需要在前端 (javascript) 获得这些权限以向用户显示正确的 UI 等

你通常是如何完成这项任务的?我有 2 个选项,但不知道哪个更适合或更易于维护:

1) 镜像ACL(Access control list)(貌似最差的维护相关)。通过镜像,我的意思是在前端

中硬编码 acl 的副本

2) 用户初次登录时发送ACL?

3) 在这里插入你更好的选择? :)

另一方面,是否有任何 javascript 库与 asp dot net 核心身份系统集成并无缝地做到这一点?

我必须为与旧版身份验证方案集成的应用程序执行此操作,因此我没有使用任何内置的身份验证系统,如 .NET Core Identity 包。我所做的是将 ACL 打包成一个加密的身份验证令牌(我们有 800 多个二进制权限,我实际上将其减少为单个位),但我也以未加密的形式将其作为登录响应的一部分发送。

这样客户端可以只读取未加密的数据来构造UI,后端可以在每次请求时解密令牌来决定是否允许请求而不需要从数据库中读取权限数据。

目前我不知道有任何方案可以减轻必须为 UI 和后端编写代码以检查权限的麻烦;一种是可破解的,因为它仅用于 UI 目的,另一种是安全的,用于身份验证目的。