应通过 iFrame 嵌入在现有 Web 应用程序中向具有 RLS 的客户显示报告。
客户在通过 B2C AAD 登录 Web 应用程序时对自己进行身份验证,我们希望使用此现有身份验证,同时使用 Power BI 对客户进行身份验证。
作为示例,我们选择了 Microsoft 示例 ([https://www.youtube.com/watch?v=yNF-_l2f7w0) 中的代码来生成嵌入令牌。不幸的是,尽管输入了所需的参数(租户 ID、组 ID、报告 ID、数据集 ID、客户端 ID、客户端密钥),我们收到超时错误消息。
我们还存在一个问题,即我们不知道如何在创建嵌入令牌后将其合并到 iFrame 链接中。我们在网上找到了以下代码片段:
=&groupId=&embedToken="frameborder=""allowFullScreen="true">< /iframe>
语法正确还是我们必须根据我们的用例更改它?
我们尝试通过 Power BI Api 获取嵌入令牌。不幸的是这不起作用。
我们能够使用 Power Shell 模块 MicrosoftPowerBIMgmt.Profile 生成令牌。 不幸的是,Power BI Embedded Playground 中的显示无法使用生成的令牌。这里你只能看到Power BI加载符号
需要使用 Power BI 客户端 REST API 来嵌入报表,而不是通过在 iframe 中作为参数传递。最终报告被嵌入到 iframe 中。
请参阅为客户嵌入文档,了解为客户嵌入报告的步骤。
此外,您还可以参考PowerBI-Developer Samples为使用.NET应用程序的客户嵌入报告。
对于使用 RLS 嵌入报告,在生成嵌入令牌时,您需要将请求中的 RLS 身份传递给 API 调用。请参阅使用 RLS 嵌入报告了解更多详细信息。
请注意,带有RLS的嵌入报告仅适用于应用程序自己的数据(为客户场景嵌入)
对于嵌入令牌在 Playground 中不起作用的问题,请确保您更改了
tokenType: models.Tokentpye.Embed
并且它应该可以工作。