在Azure应用服务上使用客户端管理的身份验证时禁止使用403

时间:2019-06-24 20:18:12

标签: c# azure authentication azure-ad-b2c azure-app-service-envrmnt

我已经在一个多应用程序项目上工作了几个月,现在使用Azure App Service来存储我的数据库,并使用ADD B2C进行身份验证。此项目中有三个应用程序:一个管理员WPF应用程序,一个客户端Web应用程序和一个员工WPF应用程序。通过从B2C获取令牌并使用该令牌登录到App Service数据库,这三个应用程序均通过B2C租户使用客户端管理的身份验证。一切正常,直到似乎在一夜之间,我不再能够通过应用程序服务进行身份验证。身份验证的结果是显示B2C登录屏幕并获取访问令牌没有问题,但是当我将令牌打包到JObject中并调用“ mobileServiceClient.LoginAsync()”函数时,我得到的只是一个403“禁止”错误。

首先,我尝试查看所有三个项目是否都受到了影响。然后,我尝试回滚到上一次提交。还是一样。然后,我尝试重新克隆以查看是否有任何小怪癖,但结果仍然相同。因为我知道我的Azure资源尚未达到极限,所以我尝试制作一个完全独立的WPF项目,并在应用程序服务上创建了一个允许匿名访问的表。将应用程序服务上的“未验证请求时采取的措施”设置为“允许匿名访问”后,我就可以读写匿名表而没有任何问题。然后,我尝试使这个新项目通过与其他项目相同的方式进行身份验证,以仅获得相同的403错误。检查完所有这些内容后,我可以说几乎完全可以确定客户端应用程序没有问题,而问题必须出在服务器端。

对我来说,最令人困惑的部分是除了向数据库中添加新表之外,我还没有更改服务器的一件事。我已经检查了B2C租户和应用程序服务上的身份验证设置,但似乎与遇到此问题之前没有什么不同。在应用服务中进行了一些调查,我试图找到一些用于处理身份验证的JS代码,以查看是否可以使用控制台输出找到任何有用的信息。我没有找到任何代码,但是每当客户端尝试进行身份验证时,我都确实找到了控制台输出PID[31680] Information Sending response: 403.76 Forbidden

可能有帮助的其他信息是我的请求标头时间戳正确。从研究中我知道,Azure仅允许15分钟的时间来处理传入请求。

对于解决此问题的任何帮助或建议,我们将不胜感激!谢谢!

0 个答案:

没有答案