为没有 PowerBi 帐户且不允许共享回来的用户共享仪表板和报告的方法

Posted

技术标签:

【中文标题】为没有 PowerBi 帐户且不允许共享回来的用户共享仪表板和报告的方法【英文标题】:Ways to share dashboards and reports for users without a PowerBi account and not allowing to share it back 【发布时间】:2020-02-14 06:17:34 【问题描述】:

我想与没有 Microsoft/PowerBI 帐户的用户共享一些 PowerBi 仪表板。 我知道我可以在 Sharepoint 在线分享它,但这个解决方案的问题是我们可以在网页按钮上找到的分享按钮(Facebook、Twitter、URL)。我不希望用户能够自己共享报告。那么有没有办法与免费用户共享报告而不允许他们分享回来。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

执行此操作的唯一方法是将报表/仪表板嵌入您的应用程序(例如 Web 应用程序)并使用自定义身份验证限制访问。更多信息请参见官方文档Tutorial: Embed Power BI content into an application for your customers。

首先您需要知道嵌入 Power BI 有两种模式 - user owns dataapp owns data。在第一种模式下,嵌入时,用户将使用自己的 Power BI Pro 帐户进行身份验证,即您的每个用户都需要 Power BI Pro 许可证。使用后一种,您只需要一个“主帐户”,它将用于身份验证。在您的情况下,您需要app owns data

基本上你需要做到以下几点:

注册应用程序 - 转到 dev.powerbi.com/apps 并注册应用程序。选择授予它的权限(如果您不确定,对于您的第一次测试,只需授予所有权限)。复制 guid - 这是应用 ID,也就是客户端 ID。

下一步是从您的应用程序进行身份验证并获取访问令牌。为此使用Azure Active Directory Authentication Library (ADAL) - 调用AuthenticationContext 类的一些acquireToken 方法。

使用此访问令牌调用 Power BI REST API 并获取要嵌入的元素的 embedUrl,例如report.

使用Power BI javascript client 实际嵌入此元素。您需要初始化一个embed configuration class 并传递有关元素类型(报告、仪表板、磁贴)、在哪里找到它(embedUrl)、身份验证(访问令牌)、一些其他配置选项(显示或隐藏过滤器窗格、导航等)的信息.),要应用的过滤器等等。如果您将使用上面获取的访问令牌,请将tokenType 设置为AAD。此令牌具有许多特权,因此出于安全原因,您可能希望改用Embed 令牌。在这种情况下,使用访问令牌再次调用 REST API(例如Reports GenerateTokenInGroup)。

调用 JavaScript 客户端的 powerbi.embed 方法传递嵌入式配置以在您的应用中可视化此 Power BI 元素。

【讨论】:

感谢您的回答,尽管我没有完全理解所有内容(我对 PowerBI 不是很擅长),youtube 上是否有视频或教程可以解释您的想法?跨度> 这需要编程技巧。如需基本了解,请查看 Guy in a Cube 视频,例如this 一。

以上是关于为没有 PowerBi 帐户且不允许共享回来的用户共享仪表板和报告的方法的主要内容,如果未能解决你的问题,请参考以下文章

当用户在设备上没有电子邮件帐户时,在 IOS 上共享文档时出现问题

Azure 中的 Power BI 报告、共享容量和 Pro 许可证

win7共享文件

操作栏隐藏且不回来

Power BI:与免费用户共享 Power BI 应用

Windows共享文件夹无法访问,提示“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接”