Azure 移动应用服务安全
Posted
技术标签:
【中文标题】Azure 移动应用服务安全【英文标题】:Azure Mobile App Service Security 【发布时间】:2018-12-09 07:51:21 【问题描述】:我一直在研究 Azure 移动应用服务,但我吓坏了,因为我认为我完全错了。
我有一个 Azure 移动应用服务,问题是我正在尝试为它实施“自定义”身份验证(自定义身份验证的原因是我有一个使用相同数据库并将 REST 请求发送到移动服务应用程序更新数据库,它们都使用 asp.net 身份)
但是在我在移动应用服务中实现自定义身份验证之前,我无法理解这一点,即使身份验证是自定义的并且我正在手动检查用户,一旦生成令牌并授权用户,用户就有访问表中的所有数据。因此,如果我是 user1 并登录,移动应用服务将对我进行身份验证,一旦我拥有身份验证令牌,我就可以简单地执行 REST 请求来对所有数据执行任何操作。
如何限制生成的令牌仅用于 CRID 仅在我的表中我也有 UserId 列的用户数据。
我很困惑。任何帮助将不胜感激。
【问题讨论】:
那么问题是什么? 嗨@astaykov,我的问题是如何限制生成的令牌仅用于CRID 仅在我的表中我有UserId 列的用户数据。 我的意思是,当生成令牌时,UPDATE 函数可以更新表中的任何数据,我想设置一个条件,即只为生成身份验证令牌的用户更新数据 【参考方案1】:如何限制生成的令牌仅用于 CRID 仅在我的表中我也有 UserId 列的用户数据。
根据我的理解,您可以关注 Per-User Data 并利用以下属性从传入的 Easy Auth 令牌中检索当前 UserID:
public string UserId
get
var principal = this.User as ClaimsPrincipal;
return principal.FindFirst(ClaimTypes.NameIdentifier).Value;
有关处理 CURD 操作的完整教程需要仅限于生成令牌的用户,您可以关注Data Projection and Queries。
【讨论】:
以上是关于Azure 移动应用服务安全的主要内容,如果未能解决你的问题,请参考以下文章
将 Azure 移动服务迁移到 Azure 移动应用:UserId 已更改