Azure 移动应用中的应用程序身份验证。如何?

Application identity authentication in Azure Mobile app. How?

我根据以下 this 文章对 Azure 移动应用程序使用自定义身份验证。

客户端应用程序是 Cordova App

我执行的步骤:

  1. 开启应用服务身份验证
  2. 添加 Microsoft.Azure.Mobile.Server.Login NuGet 包
  3. 创建自定义身份验证端点
  4. 将服务配置为需要身份验证
  5. 在客户端使用令牌

它与操作 methods/controllers 上的 [授权] 属性配合使用效果很好。

但是Username/password认证对我来说还不够。我想要的是确保只有我的移动应用程序(客户端)可以使用托管在 Azure 端点上的移动应用程序,而不是来自 Web 的其他应用程序(username/password 除外)。因此,某种 app_id 需要在双方进行验证,可能基于某种基于哈希的消息身份验证。

我找到的所有文章都描述了使用 username/password 或通过 Azure AD 租户进行的自定义身份验证。但是一个坏了另一个,而且我不需要Azure AD。

我怎样才能做到这一点?是否有一些内置方法?

应用服务在使用自定义身份验证时不为此提供任何内置支持。最接近的是使用 Azure Active Directory (AAD) 服务主体身份验证。 AAD 支持应用程序身份,您可以在登录时在签名令牌中检查应用程序的身份。但是,您将无法使用自定义 username/password.

否则,我认为您最好的选择是在客户端和服务器上拥有一些共享密钥,以验证只有您的应用程序在访问该服务。但是,这不被认为是安全的做法。下载您的移动应用程序的任何人理论上都可以提取此秘密并从他们想要的任何应用程序中使用它,因此如果您出于安全原因需要限制访问,则不建议这样做。