Azure App Service的本地调试版本中的身份验证结果为401未授权

问题描述:

我正在尝试调试启用了用于数据库API访问的身份验证/授权的Azure App Service .Net后端项目。试图使用它会导致401 Unauthorized。Azure App Service的本地调试版本中的身份验证结果为401未授权

正如其他地方所建议的那样,我已经设置了MobileServiceClient对象的AlternateLoginHost以指向远程Azure服务,以便依赖它。在App Service项目中,我从Kudu设置页面(https://[servicename].scm.azurewebsites.net)复制了SigningKey,并将ValidAudience和ValidIssuer设置为应用服务地址(https://[servicename].azurewebsites.net/)。 ConfigureMobileApp()使用Web.config本地值调用UseAppServiceAuthentication,然后调用UseWebApi。

我已经看过请求和响应与提琴手,他们有X ZUMO-AUTH令牌。我在本地服务和远程服务之间切换,远程服务在本地服务拒绝时接受令牌。

我不确定该从哪里出发。我错过了什么?还有什么要检查?

事实证明,Azure App Service库与System.IdentityModel.Tokens.Jwt v5存在不兼容性。我通过手动使用标记验证方法发现了这一点,它为System.IdentityModel.Tokens.JwtSecurityToken提供了一个TypeLoadException。

不幸的是,在正常调试期间,调试日志中没有出现该异常。

这种不兼容似乎是一个已知问题,但NuGet包中的依赖关系没有注意到它。 (https://github.com/Azure/azure-mobile-apps-net-server/issues/195