【问题标题】:MSAL Web API Authorization has been denied for this request error此请求错误的 MSAL Web API 授权已被拒绝
【发布时间】:2017-06-15 12:33:33
【问题描述】:

我收到消息

{    "Message": "Authorization has been denied for this request." }

当尝试使用来自https://github.com/AzureADQuickStarts/AppModelv2-WebAPI-DotNet 的 API 时,如下面的邮递员屏幕截图所示:

我正在尝试从 js 文件中调用它

$.ajax({
    type: "GET",
    url: window.config.webApi + "TodoList/Get",
    headers: {
        'Authorization': 'Bearer ' + accessToken,
    },
}).done(function (data) {
    logMessage("Web APi returned:\n" + JSON.stringify(data));
})
.fail(function (jqXHR, textStatus) {
    logMessage("Error calling the Web api:\n" + textStatus);
});

【问题讨论】:

  • 您能发布您的 WebAPI 控制器代码吗?还要发布您的 Web API 启动类的代码
  • 您需要在 jwt.io 等服务中检查访问令牌。检查受众声明是否与您的 API 匹配。

标签: asp.net-web-api oauth-2.0 azure-active-directory msal


【解决方案1】:

根据图中的token,您正在使用无法解码的Microsoft Account获取access_token。

AFAIK,在这种情况下,要调用受 Azure AD V2.0 应用程序保护的 Web API,我们可以使用 id_token,其 appid 与您用来保护的应用程序相同网络 API。如果你使用 Fiddler 调试代码并捕获请求,你提到的代码示例也使用 id_token 发送授权请求。

如果它适合你,请随时告诉我。

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 2016-12-22
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2019-07-17
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多