具有角色的DotNetCore身份多租户

时间:2017-06-01 11:05:35

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

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

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

如何使用身份角色和声明进行此操作?

我无法理解的边缘情况是login A与管理员account Aaccount B作为只读用户关联,然后是我的了解开箱即用身份系统是如何工作的,当login Aaccount B下工作时,他的角色将被错误地报告为管理员,而不是作为角色/声明的只读用户实施不是多租户。

我已经做了很多挖掘,只能找到一个信息/示例,单个用户只能在一个租户下运行(尽管系统中有多个租户)。

有人能指出我正确的方向,还是我试图使用开箱即用的身份系统咆哮错误的树?

1 个答案:

答案 0 :(得分:0)

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

示例:

帐户A声明可能就像

  

over18,canwrite_accountA

帐户B声明可以像

  

read_only_account_B

这样,用户应根据您授权的声明进行适当的访问。