我想知道如何在power bi dashboard
中呈现jsf application
,但不显示代码中的链接供其他人访问。
我看过Google
,但没有发现任何问题。
仅适用于Angular
您必须使用Power BI JavaScript client将报告/仪表板嵌入到Web应用程序中。在服务器端进行身份验证和其他API调用。有关更多信息,请参见官方文档Tutorial: Embed Power BI content into an application for your customers。还有Microsoft的Angular client。
首先,您需要知道有两种嵌入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 Authentication Library (ADAL)-调用acquireToken
类的某些AuthenticationContext
方法。
使用此访问令牌来调用Power BI REST API并获取要嵌入的元素的embedUrl
,例如report。
使用Power BI JavaScript client实际嵌入此元素。您需要初始化一个embed configuration class并传递有关元素类型(报告,仪表板,磁贴),在哪里找到它(embedUrl),身份验证(访问令牌),其他一些配置选项(显示或隐藏过滤器窗格,导航等)的信息。),要应用的过滤器等。如果您将使用上面获得的访问令牌,请将tokenType
设置为AAD
。该令牌具有许多特权,因此出于安全原因,您可能需要使用Embed
令牌。在这种情况下,请使用访问令牌再次调用REST API(例如Reports GenerateTokenInGroup)。这样,主访问令牌将永远不会对客户端可见。但是请注意,这将需要为发布报告的工作区分配专用的容量(即,您需要购买Power BI Premium或Power BI Embedded)。
JavaScript客户端的Call powerbi.embed
方法传递嵌入式配置以在您的应用中显示此Power BI元素。