我有一个WebAPI,我已成功使用Azure AD保护 . 当我在本地运行它(通过Visual Studio)时,尝试通过浏览器访问WebAPI endpoints 给了我

Authorization has been denied for this request.

这是我期望的 . 通过具有ADAL库的客户端访问WebAPI可以正常工作 . 弹出窗体登录屏幕,并对我进行身份验证并传回令牌,然后我可以在我的WebAPI请求中使用该令牌 .

如果我将WebAPI部署到IIS服务器并为该站点启用了Windows身份验证,那么我不会发生这种情况 . 当我尝试通过浏览器点击IIS WebAPI endpoints 时,我收到Windows身份验证提示 . 如果我成功验证了Windows身份验证,则WebAPI会为响应提供服务 .

我想我会期望WebAPI会返回相同的“此请求已拒绝授权” . 如果我已将WebAPI配置为使用Azure AD身份验证,则Windows身份验证不应对WebAPI进行身份验证 .

我的问题是,这是预期的行为,如果是,为什么?

我可以从一个角度看到WebAPI可以接受来自我配置的任何方法的身份验证 . 但我的一部分认为,由于Azure AD身份验证是在WebAPI应用程序中配置的,而不是IIS,因此它应该优先 .