Azure 使用Power BI REST API 403生成嵌入令牌错误

Azure 使用Power BI REST API 403生成嵌入令牌错误,azure,azure-active-directory,powerbi,Azure,Azure Active Directory,Powerbi,我们目前正在将Power BI报告嵌入到我们的web应用程序中。为了实现这一目标,我们遵循官方电力bi文件的说明: 我们正在处理“应用程序拥有数据”的案例,因此我们将对用户服务负责人进行调查。还有“使用主帐户访问”选项,但我找不到通过REST API生成令牌的方法,它只能通过提供的.NET示例工作,该示例与out stack不兼容。此外,在我检查过的所有示例中,令牌都是从当前登录用户的安全上下文中检索的(所以不是通过RESTAPI)。因此,“使用主帐户访问”不是我们的选择 我们按照上面链接中的

我们目前正在将Power BI报告嵌入到我们的web应用程序中。为了实现这一目标,我们遵循官方电力bi文件的说明:

我们正在处理“应用程序拥有数据”的案例,因此我们将对用户服务负责人进行调查。还有“使用主帐户访问”选项,但我找不到通过REST API生成令牌的方法,它只能通过提供的.NET示例工作,该示例与out stack不兼容。此外,在我检查过的所有示例中,令牌都是从当前登录用户的安全上下文中检索的(所以不是通过RESTAPI)。因此,“使用主帐户访问”不是我们的选择

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

  • 已注册服务器端web应用程序
  • 在Azure AD中创建了一个安全组,并添加了新的服务器端 此组的web应用程序
  • 为新安全性启用服务主体(作为power bi admin) 我们创建的组
  • 创建并发布了我们的报告
  • 将服务主体作为管理员添加到工作区(新) 工作区),我们已经创建了
  • 在第6步中,我们将报告嵌入到我们的应用程序中,我们遇到了问题。以下是我们的工作:

  • 为服务主体生成访问令牌
  • URL:{$tenantId}/oauth2/v2.0/token
    请求正文:
    授予类型:客户端凭据
    范围:
    客户端id:${clientId}(来自我们创建的服务器端web应用程序)>
    client_secret:${client_secret}(来自我们创建的服务器端web应用程序)
    标题:内容类型: 应用程序/x-www-form-urlencoded
    响应:{ “令牌类型”:“承载者”, “expires_in”:3600, “ext_expires_in”:3600, “访问令牌”:“EYXXXXXXXXXXXXXXXXXX…XXX”}

  • 使用Power BI REST API生成嵌入令牌
  • 网址:
    ${groupId}/reports/${reportId}/GenerateToken(groupId和reportId从我们拥有报告的power bi开发门户获取)
    请求正文:{“accessLevel”:“View”,“allowSaveAs”:“false”}
    标题:内容类型:应用程序/json
    字符集:utf-8接受:应用程序/json
    授权:持票人${access\u token\u from\u step1}
    响应:HTTP 403(表示禁止)

    不幸的是,我们被困在这一点上。我们无法生成用于将报表/仪表板嵌入应用程序的嵌入令牌。虽然我们已经通过了很多在线文档/讨论,但我们无法找到解决方案。这就是我们需要帮助的地方

    注意事项:

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


    -我们遇到了stackoverflow,它声称我们需要使用资源所有者流而不是客户端凭据流。但我认为,power bi文档中指出可以在不使用任何用户/密码的情况下应用服务主体,这与此背道而驰。

    为服务主体生成访问令牌时定义的范围不正确

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


    注意:当使用服务主体时,有很多方法。

    您是否尝试解码您的令牌,或者您的令牌是否包含该权限?让我知道。@Mdfaridudinkiron是的,我知道了。这是一个正确解析的JWT令牌,我定义了obectId作为服务主体。非常感谢!成功了。现在我有一个不同的错误。“创建用于访问数据集59d1101c-06d5-4811-9c71-b2cd830b7a75的嵌入令牌需要提供有效身份”关于这一点有什么想法吗?@selman我不熟悉PowerBI,也许你也可以参考,只是好奇;您在哪个文档中发现我们需要将该值用于范围?@selman您可以找到资源uri
    https://analysis.windows.net/powerbi/api/
    这里。资源参数是针对v1.0端点的,您使用的是v2.0端点,因此范围应该是
    https://analysis.windows.net/powerbi/api/.default
    一直想知道为什么我在处理azure文档时发现自己在stackoverflow上