【问题标题】:Getting 401 Unauthorized while accessing Power BI API访问 Power BI API 时出现 401 Unauthorized
【发布时间】:2019-03-16 21:17:18
【问题描述】:

这是 Postman 中 API 调用的屏幕截图。我正在获取令牌并在此处使用它。

我收到 401 Unauthoized 没有响应。是不是因为app注册里面的权限?

我对 Power BI 服务和 Windows Azure Active Directory 拥有以下权限:

但是当我点击授予权限时,我得到了错误:

那么,管理员是否需要授予此应用(Web 应用/API)的权限才能运行?

更新

这是我调用来获取访问令牌的 API。

https://login.microsoftonline.com/parkercorp.onmicrosoft.com/oauth2/token

正文:

client_id: app_registration_clientId
client_secret: app_registration_client_secret
grant_type: client_credentials
resource: https://analysis.windows.net/powerbi/api
scope: openid

这是 Tom Sun 建议的解码令牌。

【问题讨论】:

    标签: azure permissions powerbi powerbi-embedded


    【解决方案1】:

    那么,管理员是否需要授予此应用(Web 应用/API)的权限才能运行?

    授予权限失败的根本原因是您需要管理员同意您的管理员才能执行此操作。

    由于你要访问powerBI资源,所以只需要检查PowerBI服务权限。

    但根据您的屏幕截图,您正在尝试调用Get Dashboard API。

    GET https://api.powerbi.com/v1.0/myorg/dashboards/{dashboardKey}

    根据文档,所需范围是 Dashboard.ReadWrite.AllDashboard.Read.All。无需管理员同意。

    401错误意味着没有权限访问资源。

    我们可以使用JWT.io 来解码令牌以检查 aud 和权限。

    如果可能,您可以添加代码如何获取更有用的令牌。

    【讨论】:

    • 我更新了我的问题。我正在使用此端点获取令牌:login.microsoftonline.com/parkercorp.onmicrosoft.com/oauth2/…
    • 尽管我授予此应用程序的所有权限都不需要管理员,但每当我单击授予权限时,我都会收到错误消息说无法授予权限。
    • 您的应用似乎拥有其他需要管理员权限的 API 的权限
    • 我不这么认为。在我提供的屏幕截图中,只有 Power BI Service 和 AD。
    • 根据你的decode token,没有Dashboard.Read.App或者Dashboard.ReadWrite.All的权限,请尝试添加到你的scope中
    【解决方案2】:

    当您选中“需要管理员”的权限时,是的,您需要管理员才能单击授予权限。但是,我认为您在上面的屏幕截图中选择的两个对于您尝试做的事情不是必需的。尝试取消选中它们,授予权限,然后再次运行请求。

    【讨论】:

    • 我取消选中 Power BI 服务中显示“需要管理员”的 2,并尝试单击授予权限,但我收到一条错误消息,提示我无权授予权限。
    • 该应用是否拥有其他需要管理员权限的 API 的权限?
    • 此应用专供 Power BI API 使用。
    • 您的 AAD 租户可能设置了阻止普通用户授予权限的设置。这意味着您的管理员必须这样做。
    • 杰森,请检查我发布的答案。评论太长了。 @juunas
    猜你喜欢
    • 2021-06-07
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2016-02-02
    • 2023-03-23
    相关资源
    最近更新 更多