首页 文章

Azure移动应用服务APIkey

提问于
浏览
0

我创建了一个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

    由于您使用的是Azure移动应用程序,因此您可以利用Custom Authentication构建 CustomAuthController 以登录并为特定用户生成JWT令牌而无需用户交互 . 用于记录的核心代码片段如下所示:

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

    Note: 正如上面的教程提到的如下:

    您必须在App Service中启用身份验证/授权 . 将请求未经过身份验证时要执行的操作设置为“允许请求”(无操作),并且不配置任何支持的身份验证提供程序 .

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

相关问题