Azure移动应用服务API密钥

时间:2018-06-29 02:34:42

标签: azure azure-mobile-services

我创建了一个Azure移动应用程序服务,该服务目前可以“匿名”访问

Anonymous access is enabled on the App Service app. Users will not be prompted for login.

为了确保安全,我可以启用App Service Authentication,它会要求用户登录

但这不是我想要的-该应用程序中的数据只能由应用程序访问,而无需每个用户在使用前登录我的应用程序。

因此,您可能会说,在这种情况下,Anonymous access很好,但是我想用至少像API Key这样的东西来限制它,这样我就可以访问我的应用程序可以使用的API访问数据以防止出现随机请求,因为任何人都可以使用Postman并开始获取数据而无需任何身份验证。

简而言之,我不需要个人用户身份验证,但至少需要一个API密钥来确保仅对我的应用程序发出的请求进行身份验证,而别无其他。

我正在我的移动应用程序中使用以下内容创建连接,并且还在进行离线同步等

MobileServiceClient client = new MobileServiceClient(applicationURL);

任何想法我该怎么做?

  

仅供参考。我的服务器端后端在C#中

1 个答案:

答案 0 :(得分:0)

由于您正在使用Azure移动应用程序,因此根据您的要求,您可以利用Custom Authentication构建CustomAuthController来登录并生成特定用户的JWT令牌,而无需用户进行交互。日志记录的核心代码片段如下所示:

MobileServiceClient client = new MobileServiceClient("https://{your-mobileapp-name}.azurewebsites.net/");
client.LoginAsync("custom", JObject.FromObject(new{Username="***",Password="***"}));

注意:如上述教程所述:

  

您必须在App Service中打开“身份验证/授权”。将未验证请求时要采取的操作设置为允许请求(无操作),并且不配置任何受支持的身份验证提供程序。

并且您必须为需要授权访问的控制器/操作显式添加[Authorize]属性。您可以关注的Authentication in the Backend详细信息。