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 移动服务迁移到 Azure 移动应用:UserId 已更改

如何从 Azure 移动应用服务调用 HTTP(Azure Functions)?

Azure 移动服务 - 多个 azure 活动目录

Azure 移动服务(推送通知)

推送通知 Azure 移动服务(自托管)