【问题标题】:DotNetCore Identity Multi Tenancy with RolesDotNetCore Identity Multi Tenancy with Roles
【发布时间】:2017-06-01 11:05:35
【问题描述】:

我正在构建一个 B2B SaaS 应用程序并尝试实施授权。

用户将拥有自己的login,并将与至少一个account 关联。 login 特定于个人,account 特定于组织/计费实体。许多logins 可以是account 的成员,而单个login 可以访问许多accounts,这是一种简单的多对多关系。

如何使用身份角色和声明进行这项工作?

我无法完全理解的极端情况是,如果login A 与作为管理员的account A 和作为只读用户的account B 相关联,那么根据我对如何退出的理解盒子身份系统正在工作,当login Aaccount B 下工作时,他的角色将被错误地报告为管理员而不是只读用户,因为角色/声明实现不是多租户的。

我对此进行了大量研究,只能找到有关单个用户仅在单个租户下操作的信息/示例(尽管系统中有多个租户)。

谁能指出我正确的方向,或者我是否通过尝试使用开箱即用的身份系统来找错树?

【问题讨论】:

  • 我认为构建自己的系统比解决开箱即用的身份系统花费的时间更少。

标签: c# asp.net-core asp.net-core-mvc asp.net-identity


【解决方案1】:

在新的身份系统中roles 只是claims...但是在这种情况下角色不是你的朋友。索赔是。当使用登录时,您为账户 A 添加 x 个声明,为账户 B 添加 y 个声明,依此类推。然后在Acccount A 上检查该特定声明并适当授权。

例子:

帐户 A 声明可能类似于

18岁以上,可以写账户A

帐户 B 的索赔可以像

read_only_account_B

这样,用户应该根据您授权的声明拥有适当的访问权限。

【讨论】:

  • 所以您正在解析字符串以确定授权?不知何故,这似乎不是一个非常整洁的解决方案!
猜你喜欢
  • 2014-05-28
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多