【问题标题】:Azure Mobile App and SecurityAzure 移动应用程序和安全性
【发布时间】:2016-12-11 03:00:57
【问题描述】:

我刚刚设置了一个新的 Azure 移动应用(自旧的移动服务以来第一次使用)。

设置应用程序后,您可以使用“快速入门”产品之一创建连接到您的服务的 Xamarin.Forms 应用程序,它们会为您创建一个虚拟 ToDoItem 表。然后您可以下载该应用程序的源代码。

让我摸不着头脑的一点是,以前使用移动服务时,您将拥有您的移动服务 URL 和一个 API 密钥,该密钥是保密的(您可以将其保密到何种程度还有待商榷,因为归根结底,它在您的代码中,并且可能有人可以对 APK 或其他任何东西进行逆向工程并获取它)...但是对于新的移动应用程序服务,似乎没有任何关于这个秘密 API 密钥的概念。我搜索了示例应用源,只能找到应用服务的 URL,没有别的。

所以我的问题是,如何阻止其他人使用我的移动应用服务 URL 并读取/写入(或更糟的是,从中删除)我的 SQL Server 表?

也许我遗漏了什么……如果有人能对这个主题有所了解,那就太好了。

【问题讨论】:

    标签: azure xamarin.forms azure-sql-database azure-mobile-services


    【解决方案1】:

    应用程序密钥作为一种安全机制被丢弃,因为它给人一种虚假的安全感。正如您所提到的,没有什么可以阻止人们通过对应用程序进行逆向工程或捕获网络流量来获取密钥 - 在某些方面,这比没有安全性更糟糕!

    我们强烈建议您将表设置为仅允许经过身份验证的访问。使用社交媒体身份提供程序不会为您提供任何基于角色的访问控制,但使用 Azure Active Directory,您可以相当轻松地设置组。

    您可以在https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-auth/ 找到一些基本信息和教程(包括 Xamarin.Forms)。 https://shellmonger.com/30-days-of-azure-mobile-apps-the-table-of-contents/ 也有大量关于移动应用的信息。

    【讨论】:

    • 谢谢,有道理。我是否正确地认为使用 AAD 登录/验证用户将首先被转发到 Microsoft 登录 Web 视图?我宁愿自己处理注册,这样用户就可以在应用内使用本机注册页面进行注册,然后在注册和登录后通过某种方式验证对移动服务的请求。
    • 在某些方面,在保存到 Azure 之前使用 HTTP GET/POST 请求对我自己的 API 进行编码可能更容易,这样我可以确保只有经过身份验证的用户才能访问 Azure SQL Server 表(并且只有访问他们有权访问的内容)。
    • 您可能想查看自定义身份验证,例如,简单的用户名/密码身份验证设置。在github.com/Azure/azure-mobile-apps-node/tree/master/samples/… 上查看示例。 shellmonger.com/2016/04/08/… 也有使用 auth0 的指南
    • 谢谢,非常有帮助。
    猜你喜欢
    • 2014-04-27
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多