如何保护ASP .NET WebAPI 2.0多租户应用程序?

时间:2018-07-05 09:52:57

标签: asp.net .net rest asp.net-web-api2 asp.net-web-api-routing

我的任务是构建多租户ASP .NET WebAPI服务器(以下称为SERVER),以将其路由公开给多个SPA客户端应用程序(以下称为APPS)。

比方说,服务器端存在路由“ / api / tasks”(以下称为ROUTE)和授权应用程序的列表。该列表包含APP A和APPB。两个APP都是JS SPA。

话虽如此,约束条件如下:

  1. 当APP A调用ROUTE时,它将仅返回APP A可用的资源。
  2. 当APP B调用ROUTE时,它将仅返回APP B可用的资源。
  3. 当未注册的APP C调用ROUTE时,它将获得403响应。
  4. 当然,APP A无法访问APP B的资源。

换句话说,当资源是服务于APP A的资源(即网站)时,无法从任何其他网站(或应用程序)访问它们。这与基于角色的授权或任何人工驱动的身份验证无关。它是关于仅通过特定网站访问特定部分数据的网站。

另一个限制是,APP应该仅是客户端JS SPA或尽可能少的服务器端实现。不幸的是,服务器端渲染不是这种情况。

我在Internet上发现了几种类似情况的场景,但似乎都没有满足这些要求。

我至少需要有关如何解决此问题的提示或一般准则。

1 个答案:

答案 0 :(得分:0)

我认为您所获得的信息很少,因为这不是处理问题的好方法。据我所知,您想按设备或安装实例来标识权限?如果该设备丢失了一个本来不应该访问的人并找到它,或者某人在一段时间内没有监督他们的笔记本电脑,将会发生什么?

您需要通过使用基于帐户的身份验证来验证使用该应用的用户是否应该具有访问权限。