Web Api - 如何阻止用户访问其他用户的数据

khe*_*eit 5 authorization asp.net-web-api

我一直在对 Web api 上的身份验证和授权进行一些研究。我了解身份验证(用户名/密码)和基于角色的授权,但我感到困惑的是数据授权。

假设您有一个经过身份验证的用户(用户 ID 1),是一名管理员,并且与公司 ABC 关联。我有其他与 ABC 关联的用户,其用户 ID 1 可以更新。现在我想更新与 ABC 关联的用户 id 2 的名称(我也应该有权访问)。我需要传递一些内容来识别用户 2,即放入 /user/2 加上发布数据。我知道在服务器端,用户 1 可以更新用户 2,因为他已经过身份验证并且是管理员。

现在我有与公司 XYZ 关联的用户 100。用户 100 不应该能够更新用户 2。这就是我很难找到相关信息的原因。

有哪些方法/博客/任何内容可以就如何防止用户 100 访问其公司外部的数据提供一些有用的想法。

我的想法是,我可以将登录的用户 ID(我根据身份验证获取服务器端)传递到更新存储过程中,并进行检查以确保用户 ID 与正在更新的用户关联。对我来说,这似乎乏味且丑陋,因为每个存储过程都需要一个用户 id 参数和检查以确保他们可以访问他们正在访问的数据(也许这是正确的)。

我知道如何进行身份验证以及如何检查基于角色的授权,缺少的部分是基于资源的授权。

谢谢您的帮助。

有没有人有任何见解。很难相信基于角色的授权就足够了。

小智 0

使用 authz 的概念,阻止用户查看其他用户的详细信息