我正在构建B2B SaaS应用程序并尝试实施授权。
用户将拥有自己的login
,并且会与至少一个account
相关联。 login
特定于此人,account
特定于组织/结算实体。许多logins
可以是account
的成员,而单个login
可以访问许多accounts
,这是一种简单的多对多关系。
如何使用身份角色和声明进行此操作?
我无法理解的边缘情况是login A
与管理员account A
和account B
作为只读用户关联,然后是我的了解开箱即用身份系统是如何工作的,当login A
在account B
下工作时,他的角色将被错误地报告为管理员,而不是作为角色/声明的只读用户实施不是多租户。
我已经做了很多挖掘,只能找到一个信息/示例,单个用户只能在一个租户下运行(尽管系统中有多个租户)。
有人能指出我正确的方向,还是我试图使用开箱即用的身份系统咆哮错误的树?
答案 0 :(得分:0)
在新身份系统中roles
只是claims
...但在这种情况下,角色不是你的朋友。声称是。当使用登录时,您为帐户A添加x索赔,为帐户B添加y索赔,依此类推。然后在Acccount A
上检查该特定声明并进行适当授权。
示例:
帐户A声明可能就像
over18,canwrite_accountA
帐户B声明可以像
read_only_account_B
这样,用户应根据您授权的声明进行适当的访问。