我创建了一个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#中
答案 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详细信息。