Asp.net SaaS应用程序中基于声明的身份验证,用户多至2多至租户

Asp.net SaaS应用程序中基于声明的身份验证,用户多至2多至租户,asp.net,asp.net-web-api,asp.net-identity,multi-tenant,claims-based-identity,Asp.net,Asp.net Web Api,Asp.net Identity,Multi Tenant,Claims Based Identity,我正在构建一个多租户SaaS系统,其中系统中的用户是独立于租户实体的实体。IE:客户1可以让用户User1、User2与特定角色关联,客户2可以让用户2、User3与特定其他角色关联 用户可以使用特殊菜单选项在租户之间切换,或在登录时提前提示选择租户 使用Web API和新的身份框架 问:如果用户只需点击一个按钮就可以切换租户,我如何对角色进行建模?用户可以关联的租户/客户数量没有限制,因此我不能简单地将所有可能的租户/角色都粘贴到索赔集合中,因为据我所知,索赔集合位于cookie中,最大可达4

我正在构建一个多租户SaaS系统,其中系统中的用户是独立于租户实体的实体。IE:客户1可以让用户User1、User2与特定角色关联,客户2可以让用户2、User3与特定其他角色关联

用户可以使用特殊菜单选项在租户之间切换,或在登录时提前提示选择租户

使用Web API和新的身份框架

问:如果用户只需点击一个按钮就可以切换租户,我如何对角色进行建模?用户可以关联的租户/客户数量没有限制,因此我不能简单地将所有可能的租户/角色都粘贴到索赔集合中,因为据我所知,索赔集合位于cookie中,最大可达4k


然而,我不确定我能用Identity Framework的内置索赔基础设施做些什么。我们的做法是,我们只对当前租户进行索赔。切换租户始终意味着通过注销然后重新注册到另一个租户来删除当前会话,以便发出新令牌并在依赖方端创建新cookie

就我个人而言,我从未考虑过其他选择。正如你所说,如果有许多租户扮演不同的角色,但你仍然想要一个单一的身份(用户名/密码),那么在最坏的情况下,试图发布所有可能的声明在技术上是不可能的


有一个安全警告,我们还必须发布一个包含租户名称的索赔,以便依赖方在每次请求时都对其进行验证。

您可以将租户的索赔放入索赔集合中。如果大小超过cookie所能容纳的大小,则使用cookie分块(多个cookie存储数据)。看