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

问题描述 投票:0回答:2

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

谢谢你的帮助。

powerbi dashboard
2个回答
12
投票

做到这一点的唯一方法是将报告/仪表板嵌入您的应用程序(例如 Web 应用程序)并使用自定义身份验证限制访问。有关详细信息,请参阅官方文档教程:将 Power BI 内容嵌入到您的客户的应用程序中

首先你要知道嵌入Power BI有两种模式——

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

基本上你需要做以下事情:

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

  • 下一步是从您的应用程序进行身份验证并获取访问令牌。为此使用 Azure Active Directory 身份验证库 (ADAL) - 调用

    acquireToken
    类的一些
    AuthenticationContext
    方法。

  • 使用此访问令牌调用 Power BI REST API 并获取要嵌入的元素的

    embedUrl
    ,例如报告.

  • 使用 Power BI JavaScript 客户端 实际嵌入此元素。您需要初始化一个 embed 配置类 并传递有关元素类型(报告、仪表板、磁贴)、在哪里找到它(embedUrl)、身份验证(访问令牌)、一些其他配置选项(显示或隐藏过滤器窗格、导航)的信息等),要应用的过滤器等。如果您将使用上面获取的访问令牌,请将

    tokenType
    设置为
    AAD
    。此令牌具有许多特权,因此出于安全原因,您可能希望改用
    Embed
    令牌。在这种情况下,使用访问令牌再次调用 REST API(例如Reports GenerateTokenInGroup)。

  • 调用 JavaScript 客户端的

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


0
投票

最简单的选择是通过 Azure Marketplace 或 Appsource 下载和部署安全共享应用程序。推荐 Binokula Instant 应用程序门户,它允许您安全地与没有 Power BI 许可证的已批准用户共享;通过 Microsoft AppSourceAzure Marketplace.

© www.soinside.com 2019 - 2024. All rights reserved.