Azure 应用服务自定义身份验证获取 System.ArgumentNullException:"Value cannot be null" "Parameter name: provider"

Azure App Service custom authentication getting System.ArgumentNullException: "Value cannot be null" "Parameter name: provider"

我有一个简单的点网移动应用程序,按照 (https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend-how-to-use-server-sdk#custom-auth)

中的示例进行自定义身份验证

我有一个用于生成 JWT 令牌的端点 https://test2ixresearcher.azurewebsites.net/.auth/login/custom?username=ade%40ixcompany.com&password=a (用户名和密码不用勾选,随便输入)

这会创建一个令牌,我用它来调用带有 X-ZUMO-AUTH header 中提供的令牌的安全端点:https://test2ixresearcher.azurewebsites.net/api/SecuredData - 使用不正确的令牌或缺少令牌的端点调用 returns 401,如预期的那样 - 使用刚刚创建的令牌调用端点会生成带有以下消息的 500,没有预期

--开始报错信息-- 应用程序:2018-09-22T23:12:20 PID[5520] 严重 System.ArgumentNullException:值不能为空。 应用:参数名称:提供者 申请:在 Microsoft.Azure.AppService.Authentication.EasyAuthTokenStore.d__7.MoveNext() 应用程序:---从先前抛出异常的位置开始的堆栈跟踪结束---

--结束错误信息-- 我还有一个不安全的端点,这没有任何问题。 https://test2ixresearcher.azurewebsites.net/api/UnSecuredData

我已经使用此模型部署了至少 4 个其他应用程序,这是出现此错误的第一个实例。认证出现错误,貌似成功验证token issuer并拉出用户,还没打到我的code就失败了

我的代码可以在 https://github.com/antitheos/publictesting/tree/master/TestAzureCustomLogin

找到

在通过门户或 Visual Studio 创建的新应用服务中发布到 Azure 时会发生这种情况。我有旧的应用程序服务在工作,但我不敢尝试发布给他们,以防我破坏了正在工作的实时应用程序。

如有任何帮助,我们将不胜感激。

好的,Microsoft 发现了问题!

产品团队发现了一个回归错误,现在计划在大约一个月后的下一个版本中修复它。同时,您可以通过以下步骤解决。

  1. 打开 Azure 门户,导航到您的应用服务
  2. 单击资源浏览器边栏选项卡
  3. 在您的站点节点下,展开配置节点,然后单击 authSettings。
  4. 在顶部窗格中,确保选择了 read/write。
  5. 单击编辑按钮
  6. 修改runtimeVersion = 0.0.0
  7. 点击放置
  8. 点击Post
  9. 重新启动您的网站。