【发布时间】:2020-04-08 16:37:31
【问题描述】:
目前我有以下情况。我在 Power BI 中有一份报告,该报告从包含所有公司数据的数据集中读取。在我的 ASP .NET MVC 应用程序中,用户将选择要为其显示报告的公司,并且使用 Power BI Embedded,应用程序通过 JS 中定义的嵌入配置(从服务器传递的过滤器参数)按公司 ID 过滤报告。
我正在使用应用程序拥有数据方法,其中我有一个主帐户,并且为主帐户生成了嵌入令牌。 访问报告的用户没有对所有公司的访问权限,这是在服务器端处理的。但是,使用这种方法,用户可以轻松更改 JS 中的嵌入配置并显示他无权访问的公司的报告。
我研究了行级安全性,发现以下方法 https://community.powerbi.com/t5/Developer/PowerBi-Embedded-API-Works-with-RLS/td-p/231064 每个公司都存在一个角色,并且为该特定公司生成嵌入令牌。这将是一种理想的方法,但在我的场景中,这些公司不是预先定义的,可以随时创建。因此,我需要为每个公司创建一个角色。然而,这无法以编程方式实现,因为 Power BI 不提供自动创建角色的方法。
我能想到的唯一方法是为每个新公司克隆一份报告,并创建一个特定于该报告的数据集,该数据集仅包含该特定公司的数据。那么生成的嵌入令牌将只对那个特定的报告有效。
有没有人也经历过这种困境?有什么建议我应该在这种情况下做什么?
【问题讨论】:
标签: azure powerbi powerbi-embedded row-level-security azure-security