Azure 使用Power BI REST API 403生成嵌入令牌错误
我们目前正在将Power BI报告嵌入到我们的web应用程序中。为了实现这一目标,我们遵循官方电力bi文件的说明: 我们正在处理“应用程序拥有数据”的案例,因此我们将对用户服务负责人进行调查。还有“使用主帐户访问”选项,但我找不到通过REST API生成令牌的方法,它只能通过提供的.NET示例工作,该示例与out stack不兼容。此外,在我检查过的所有示例中,令牌都是从当前登录用户的安全上下文中检索的(所以不是通过RESTAPI)。因此,“使用主帐户访问”不是我们的选择 我们按照上面链接中的步骤逐一操作: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)。因此,“使用主帐户访问”不是我们的选择 我们按照上面链接中的
请求正文:
授予类型:客户端凭据
范围:
客户端id:${clientId}(来自我们创建的服务器端web应用程序)>
client_secret:${client_secret}(来自我们创建的服务器端web应用程序)
标题:内容类型: 应用程序/x-www-form-urlencoded
响应:{ “令牌类型”:“承载者”, “expires_in”:3600, “ext_expires_in”:3600, “访问令牌”:“EYXXXXXXXXXXXXXXXXXX…XXX”}
${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上