最终用户可以看到Power BI配置

时间:2019-03-04 18:02:15

标签: javascript asp.net asp.net-mvc asp.net-core powerbi-embedded

我们正在使用Power BI API使用Power BI Javascript库将报告嵌入到我们的asp.net核心MVC应用程序中。我们只有一个拥有Power BI帐户的主用户,并且我们将使用其凭据来获取所有登录用户的报告。报告还将具有可由用户从UI应用的过滤器以及根据用户的权限嵌入报表时,将应用默认过滤器。我们正尝试按照此处的建议使用Javascript API过滤报告:PowerBI Reports Filter Using Javascript API,并且我们正在遵循Microsoft的PowerBI Embedded Reports Demo将报告嵌入到我们的视图中。但是问题在于,包括访问令牌和过滤器在内的所有配置在浏览器的开发人员工具中都是可见的,如下所示:

PowerBI JS In Chrome Inspector

现在,基于用户的角色和权限限制了在UI上提供给用户的过滤器,因此他们只能将某些过滤器应用于报表,并且仅显示经过过滤的报表数据,但是如果访问令牌和过滤器在开发人员工具中清晰可见,他们可以删除过滤器并使用任何工具(例如邮递员)查看不需要的完整报告。我们确实知道会出现此问题,因为我们仅使用一个PowerBI主帐户,但无法为所有用户提供PowerBI订阅。因此,有没有一种方法

  • 在服务器端应用配置,过滤并生成PowerBI报告,然后将生成的svg返回到类似于角度服务器端渲染的“视图”?

或者还有其他方法可以使用PowerBIClient类从服务器向PowerBI发送参数并在电源两端过滤报告吗?

2 个答案:

答案 0 :(得分:1)

报告过滤器不是安全功能。 您应该尝试这种方法: https://docs.microsoft.com/en-us/power-bi/developer/embedded-row-level-security

答案 1 :(得分:0)

尝试了一切之后,我们仍然无法实现完全的安全性,但是我们能够通过在服务器端添加参数作为查询字符串来更改嵌入url,而不是在客户端使用过滤器。我们按照此msdn文章来实现: PowerBI API Query String Filters MSDN

尽管这还不能完全证明,因为一旦服务器将带有参数的嵌入url返回给浏览器,则浏览器必须做出最终请求以启动bi saas服务,这可以在浏览器网络标签或使用提琴手中轻松看到,但我们避免了过滤器很容易在html脚本部分中看到。让我们知道是否有人对此问题有更好的解决方案。