我们的 ASP.NET Core Web API 使用 Azure AD 身份验证(它在 IIS 10 上运行)。它在 2 台服务器上运行,但完全相同的代码在其中一台服务器上出现了此错误(我正在从 Postman 调用 API...
我们的 ASP.NET Core Web API 使用 Azure AD 身份验证(它在 IIS 10 上运行)。
它在 2 台服务器上运行,但是完全相同的代码在其中一台服务器上出现了此错误(我正在从 Postman 调用 API):
401 - 未授权:由于凭证无效,访问被拒绝。
您无权使用您提供的凭据查看此目录或页面。
承载令牌是正确的。
它表示“授权:\'Bearer {我的 Bearer 令牌}\',而不是“授权:Bearer null\”。
我属于对 API 应用程序具有“只读”角色的 AD 组。
在代码中,这是我所拥有的:
[Authorize(Roles = "Read Only")]
客户端ID和密钥正确。
所有 3 台服务器中的 IIS 身份验证设置相同。
但是,在两台正常工作的服务器上,IIS 上的 Web API 上的授权规则均设置为“允许”“所有用户”,而在无法正常工作的服务器上,IIS 中缺少授权规则。
在 2 台正常工作的服务器上,服务器管理器中已选中“URL 授权”,而在非正常工作的服务器上,服务器管理器中未选中该选项。
这可能是问题吗?
如果 IIS 中缺少授权规则,那么默认授权是什么?
所有 3 个注册应用程序中的 Azure AD 设置也相同(客户端 ID、机密和 URI 除外)。
什么原因导致此错误,此错误来自 IIS 还是 Azure AD 身份验证?
谢谢