2

我刚刚安装了一个新的Azure移动应用程序(自第一次使用旧移动服务以来)。Azure移动应用程序和安全

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

我留下的伤痕之处在于,之前在移动服务中,您将拥有移动服务的URL和一个保密的API密钥(您可以保留这个秘密是多么的秘密)一天结束的时候它在你的代码中,可能有人可以对APK进行反向工程,或者得到它)......但是对于新的移动应用服务,似乎没有任何关于这个秘密API密钥的概念。我围绕示例应用程序源搜索,只能找到应用程序服务的URL,没有别的。

所以我的问题是,什么是阻止其他人使用我的移动应用服务的URL和读/写(或更糟糕的是,删除)我的SQL Server表?

也许我错过了一些东西......如果任何人都可以对这个主题感兴趣,那就太好了。

回答

3

应用程序密钥作为安全机制被丢弃,因为它给人一种错误的安全感。正如你所提到的,没有什么能阻止人们通过逆向工程或捕获网络流量来获得密钥 - 在某些方面,它比没有安全性更糟!

我们强烈建议您设置您的表格以仅允许通过身份验证的访问。使用社交媒体标识提供程序不会为您提供任何基于角色的访问控制,但通过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/上也有大量关于移动应用程序的信息。

+0

谢谢,这很有道理。我是否认为使用AAD登录/认证用户将首先被转发到Microsoft登录Web视图?我宁愿亲自处理注册,以便用户可以在应用程序中注册本机注册页面,然后在注册并登录后通过一些方式向移动服务认证请求。 – xceed

+0

在某些方面,它可能更容易代码使用HTTP GET/POST请求到我自己的API,然后保存到Azure,这样我就可以确保只有经过身份验证的用户访问Azure SQL Server表(并且只访问他们有权访问的内容)。 – xceed

+1

您可能想查看自定义身份验证,例如,简单的用户名/密码身份验证设置。通过https://github.com/Azure/azure-mobile-apps-node/tree/master/samples/custom-authentication查看示例。还有一个使用https://shellmonger.com/2016/04/08/30-days-of-zumo-v2-azure-mobile-apps-day-5-custom-authentication/ –