web api保护对角色数据的单独访问

时间:2016-06-06 18:35:00

标签: sql database azure authentication asp.net-web-api

我不确定这是编程问题还是数据库问题

我正在制作一个web api,我使用不记名令牌认证,而且它的工作非常好,我可以登录获取资源并注销,我可以添加用户和用户可以添加下一个不好解释的用户。

我有3个主要角色,CompanyAdmin(首先创建帐户的用户),CompanyUser(用户公司admins make)和StandardUser(公司用户制作的用户)

每个人在用户表中都有一行用于登录,现在当用户登录时我不希望他们加载提琴手并通过操纵网址查看其他用户数据,我想确保公司看不到其他公司的数据,用户无法从同一个或另一个公司看到其他用户的数据。

我使用的是WebAPI MVC,SQL azure数据库,该网站由我的托管服务提供商托管。所有可以登录到站点并访问api的帐户在users表中都有一行,其中只有几个表主要用于声明,角色,配置文件,公司数据等。

任何帮助,正确方向的指示都会有所帮助,谢谢

1 个答案:

答案 0 :(得分:0)

通过简单地传递请求有效负载来获取对数据的访问意味着客户端和数据库之间的代理中没有安全性。有一些方法可以保护存在和主动使用的访问权限,例如,其中一种方法是简单的基本身份验证,其中setting the context by passing credentials,(dis)优势在上面的同一页面中描述。或者使用token-based authenticationmore detailed walkthrough)。 因此,请避免通过Web API直接传递请求。

您也可以检查old but good book创建多租户解决方案,并为Azure上的客户/租户划分数据库。有些标题已经不可用(例如:联盟),但是如何对SQL数据库和一些代码示例进行分区的示例应该有效。