gpt4 book ai didi

azure - 使用 Power BI REST API 生成嵌入 token 403 错误

转载 作者:行者123 更新时间:2023-12-04 00:02:44 27 4
gpt4 key购买 nike

我们目前正在致力于将 Power BI 报表嵌入到我们的 Web 应用程序中。为了实现这一目标,我们遵循官方 power bi 文档中的说明:

https://learn.microsoft.com/en-us/power-bi/developer/embed-service-principal#get-started-with-a-service-principal

我们处于“应用程序拥有数据”的情况,因此我们将使用服务主体。还有“使用主帐户访问”选项,但我找不到通过 REST API 生成 token 的方法,它只能通过提供的 .NET 示例工作,与外部堆栈不兼容。此外,在我检查过的所有示例中, token 都是从当前登录用户的安全上下文中检索的(因此不是通过 REST API)。因此“使用主帐户访问”对我们来说不是一个选择。

我们一一按照上面链接中的步骤操作:

  1. 注册了服务器端网络应用程序。
  2. 在 Azure AD 中创建了一个安全组并添加了我们的新服务器端向该组发送网络应用程序。
  3. 为新安全性启用服务主体(作为 power bi admin)我们创建的小组。
  4. 创建并发布了我们的报告。
  5. 将服务主体作为管理员添加到工作区(新我们创建的工作区)。

在将报告嵌入应用程序的第 6 步中,我们遇到了问题。这是我们所做的:

  1. 为服务主体生成访问 token 。

URL: https://login.microsoftonline.com/{$tenantId}/oauth2/v2.0/token
Request Body:
grant_type: client_credentials
scope:https://graph.microsoft.com/.default
client_id:${clientId} (from our created server-side web application) >
client_secret:${client_secret} (from our created server-side web application)
Header: Content-Type: application/x-www-form-urlencoded
Response: { "token_type": "Bearer", "expires_in": 3600, "ext_expires_in": 3600, "access_token": "eyXXXXXXXXXXXXXXXXX....XXX" }

  • 使用 Power BI REST API 生成嵌入 token
  • URL:
    https://api.powerbi.com/v1.0/myorg/groups/${groupId}/reports/${reportId}/GenerateToken (groupId and reportId fetched from power bi dev portal where we have our reports)
    Request Body: { "accessLevel": "View", "allowSaveAs": "false" }
    Header: Content-Type: application/json
    Charset:utf-8 Accept: application/json
    Authorization: Bearer ${access_token_from_step1}
    Response: HTTP 403 (which means forbidden)

    不幸的是,我们现在陷入了困境。我们无法生成嵌入 token ,我们将使用该 token 将报告/仪表板嵌入到我们的应用程序中。尽管我们浏览了大量在线文档/讨论,但仍找不到解决方案。这就是我们需要帮助的地方。

    注释:

    -我们正在使用 Power BI Desktop 和我们的 power bi pro 帐户创建/发布报告。 (尽管我们正在尝试使用服务主体嵌入它们)

    -我们遇到了这个 stackoverflow answer声称我们需要使用资源所有者流程而不是客户端凭据流程。但我相信 Power bi 文档规定可以在不使用任何用户/密码的情况下应用服务主体,这是违反的。

    最佳答案

    您在为服务主体生成访问 token 时定义的范围不正确。

    尝试使用https://analysis.windows.net/powerbi/api/.default而不是https://graph.microsoft.com/.default

    注意:有很多limitations当使用服务主体时。

    关于azure - 使用 Power BI REST API 生成嵌入 token 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330243/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com