Web 窗体 Azure 活动目录:加载资源失败:服务器响应状态为 401

Posted

技术标签:

【中文标题】Web 窗体 Azure 活动目录:加载资源失败:服务器响应状态为 401【英文标题】:Web form Azure Active directory : Failed to load resource: the server responded with a status of 401 【发布时间】:2020-03-30 11:15:10 【问题描述】:

我有一个网站(Web 表单、实体框架)并且我使用 AAD 连接。 我在这个blog

之后做了修改

问题,脚本和 css 未加载。 加载资源失败:服务器响应状态为 401 () for base.css, jquery-3.1.1.min.js...

我在我的 web.config 和 IIS 中设置了身份验证模式,我禁用了所有身份验证(匿名、Windows...)。

我授予了项目文件夹的完全控制权。

然后为了测试,我设置启用匿名身份验证,重新启动站点并且它可以工作。然后我打开另一个浏览器,我有同样丑陋的格式。我不明白。看起来它工作一次然后就不行了。

你能帮帮我吗?我应该更改 IIS 中的某些内容吗?还有什么?

谢谢。

更新:我将一个技术用户对应用程序池标识上的项目文件夹设置了权限,但它需要 azure 广告用户并且他们对此文件夹没有权限。在任何 azure 广告用户连接到网站后,如何强制使用我的技术用户?

【问题讨论】:

你在使用 Owin 库吗? 我使用了 Owin 库,但我最终将我的网站直接部署到 Azure Web App 中。 【参考方案1】:

您是否正在尝试获取 CSS/静态资源?如果他们正在接受身份验证,那么我怀疑 Chrome(或任何其他浏览器)会知道如何使用 OWIN 进行身份验证。

这解释了为什么您可以匿名获取它们。

听起来 OWIN 正在对 XHR 请求进行身份验证,但 chrome 正在尝试直接访问资产 - 并且没有发送正确的身份验证,因此是 401。

【讨论】:

【参考方案2】:

1- 如果您使用 AAD,则根据您提供的信息,如果您使用 Owin 库与 Azure AD 一起使用时,可能会发生这种情况,当您使用手动访问令牌进行沙化并且以某种方式不接受此访问令牌时。

2-

请仔细检查 Web Api 的配置数据。它应该看起来像这样,但基于您的参数:

  "AzureAd": 
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "myportal.onmicrosoft.com",
    "TenantId": "mytenant-guid",
    "ClientId": "https://myportal.onmicrosoft.com/test_core_web_api_spa"
  ,

【讨论】:

以上是关于Web 窗体 Azure 活动目录:加载资源失败:服务器响应状态为 401的主要内容,如果未能解决你的问题,请参考以下文章

Azure 数据工厂复制活动失败。用户登录失败

更新 Azure 应用服务 web.config 以加载 .ttf 字体文件

排查在 Azure 中新建 Windows VM 时遇到的部署问题

仅在 Web 版办公产品上启用 Office 加载项

加载资源失败:http://website.azurewebsites.net/signalr/hubs 服务器响应状态为 404(未找到)

使静态资源在 Azure Web 角色中可用