如何在 Power BI Web App 中应用过滤器
How to apply filter in PowerBI WebApp
我创建了一个托管在 Azure IIS 上的 WebApp。我正在调用 PowerBI 报告和仪表板并将它们呈现到我的 WebApp 中。
我需要应用以下功能,但无法在线找到解决方案。
- 用户可以从 Web 应用程序中使用 PowerBI 中可用的筛选器筛选数据。
- 当我们调用 PowerBI 报表并呈现到网页时,可以应用行级安全性。
不清楚您使用哪种 URL 来嵌入报告。本质上,有 3 个 URL 可用于在您的网络应用程序中显示报告:
- URL 取自您浏览器的地址栏。在这种情况下,您的 Web 应用程序的使用需要登录到 Power BI 服务并被授予查看此报告的权限。缺点之一是在您的 Web 应用程序中,您不会只看到报表,而是整个 Power BI 页面(包括左侧的导航菜单)。
- 当您使用“发布到网络”公开分享此报告时URL。在这种情况下,只有报告会嵌入到您的 Web 应用程序中(菜单将不可见),但您不能对启用 RLS 的数据集的报告执行此操作(因为 RLS 需要用户的身份,而在这种情况下访问是匿名的) .
- embedUrl of the report (or tile, or dashboard) that you can obtain using the Power BI REST API. It is usually used when you have a dedicated capacity assigned to this workspace (Power BI Embedded). In this case there are two scenarios - "User own data" and "App own data". In the first one each of your users must have their own account and rights to see the report (as in #1). In the later scenario, you use one shared "master account" in your web app to get access to the report and there is no need for your users to authenticate themselves. You can take a looks at the samples to see how it works. Essentially, you need the JavaScript Power BI client, one HTML page with a and some JavaScript code to load the report in the (check powerbi.js, ReportLoader.html and ReportLoader.js files from the samples. A good place to start is this article - Tutorial: Embed a Power BI report, dashboard, or tile into an application for your customers.
要将过滤器应用于嵌入式报告,您可以使用最近新推出的 features 之一(如果我没记错的话,它自 2018 年 8 月起可用)并在 URL.我不确定这在案例 #2 中是否有效,但无论如何我都不建议使用它。
案例 #2 无法使用 RLS。在#1 和#3 的情况下,RLS 将简单地工作。对于#3,如果您使用 "app own data" 场景,为了使 RLS 正常工作,您需要在生成令牌以访问报告时传递用户名和角色(因为否则对于所有用户的请求,Power BI 将始终看到的身份您的 "master account" 和 RLS 将没有任何意义)。这是用 EffectiveIdentity 参数指定的。
您还附加了 "power-bi-report-server" 到您的问题,但同时您说您的 Web 应用程序是 运行 在 Azure 中。如果您的所有报告都在本地 Power BI 报告服务器上,那么您也可以通过在报告的 URL 处传递 rs_embed=true 参数来嵌入报告。在这种情况下,要使 RLS 正常工作,您只需要确保您的用户使用他们自己的帐户进行身份验证。 URL 中的传递过滤器也适用于最新版本(它在 2018 年 3 月被破坏,但在 15.0.2.389 中修复)。
我创建了一个托管在 Azure IIS 上的 WebApp。我正在调用 PowerBI 报告和仪表板并将它们呈现到我的 WebApp 中。
我需要应用以下功能,但无法在线找到解决方案。
- 用户可以从 Web 应用程序中使用 PowerBI 中可用的筛选器筛选数据。
- 当我们调用 PowerBI 报表并呈现到网页时,可以应用行级安全性。
不清楚您使用哪种 URL 来嵌入报告。本质上,有 3 个 URL 可用于在您的网络应用程序中显示报告:
- URL 取自您浏览器的地址栏。在这种情况下,您的 Web 应用程序的使用需要登录到 Power BI 服务并被授予查看此报告的权限。缺点之一是在您的 Web 应用程序中,您不会只看到报表,而是整个 Power BI 页面(包括左侧的导航菜单)。
- 当您使用“发布到网络”公开分享此报告时URL。在这种情况下,只有报告会嵌入到您的 Web 应用程序中(菜单将不可见),但您不能对启用 RLS 的数据集的报告执行此操作(因为 RLS 需要用户的身份,而在这种情况下访问是匿名的) .
- embedUrl of the report (or tile, or dashboard) that you can obtain using the Power BI REST API. It is usually used when you have a dedicated capacity assigned to this workspace (Power BI Embedded). In this case there are two scenarios - "User own data" and "App own data". In the first one each of your users must have their own account and rights to see the report (as in #1). In the later scenario, you use one shared "master account" in your web app to get access to the report and there is no need for your users to authenticate themselves. You can take a looks at the samples to see how it works. Essentially, you need the JavaScript Power BI client, one HTML page with a and some JavaScript code to load the report in the (check powerbi.js, ReportLoader.html and ReportLoader.js files from the samples. A good place to start is this article - Tutorial: Embed a Power BI report, dashboard, or tile into an application for your customers.
要将过滤器应用于嵌入式报告,您可以使用最近新推出的 features 之一(如果我没记错的话,它自 2018 年 8 月起可用)并在 URL.我不确定这在案例 #2 中是否有效,但无论如何我都不建议使用它。
案例 #2 无法使用 RLS。在#1 和#3 的情况下,RLS 将简单地工作。对于#3,如果您使用 "app own data" 场景,为了使 RLS 正常工作,您需要在生成令牌以访问报告时传递用户名和角色(因为否则对于所有用户的请求,Power BI 将始终看到的身份您的 "master account" 和 RLS 将没有任何意义)。这是用 EffectiveIdentity 参数指定的。
您还附加了 "power-bi-report-server" 到您的问题,但同时您说您的 Web 应用程序是 运行 在 Azure 中。如果您的所有报告都在本地 Power BI 报告服务器上,那么您也可以通过在报告的 URL 处传递 rs_embed=true 参数来嵌入报告。在这种情况下,要使 RLS 正常工作,您只需要确保您的用户使用他们自己的帐户进行身份验证。 URL 中的传递过滤器也适用于最新版本(它在 2018 年 3 月被破坏,但在 15.0.2.389 中修复)。