【问题标题】:Transfering backend permissions to clients in asp dotnet core 3在asp dotnet core 3中将后端权限转移给客户端
【发布时间】:2020-02-24 08:58:37
【问题描述】:

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

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

1)镜像ACL(访问控制列表)(似乎与维护相关的最糟糕的一个)。通过镜像,我的意思是在前端有一个硬编码的 acl 副本

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

3) 在此处插入您更好的选择? :)

另一方面,是否有任何与asp dot net core 身份系统集成并无缝集成的javascript库?

【问题讨论】:

  • 您可以创建api方法来获取与菜单项相关的用户acl列表或创建依赖于用户acl的菜单列表项并传递给客户端
  • 是的,这是我现在正在尝试的方法之一。似乎也与资源理念正交。获取权限,或者可能是前端需要的所有用户配置数据。

标签: javascript asp.net-core asp.net-identity acl


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多