You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需访问令牌与SSO,嵌入Power BI报表并显示书签窗格可行吗?

可行,且有简化方案

你的需求完全可以实现,核心是通过Power BI JavaScript API的配置强制显示书签窗格,同时让用户自行完成Power BI账号登录,不需要SSO、Azure AD应用注册或你这边做任何认证逻辑。

实现思路

不需要复杂的Rest API令牌生成流程,只需要借助Power BI JS SDK的基础嵌入能力,让用户在嵌入组件内登录自己的Power BI账号,同时通过配置参数强制开启书签窗格:

  • 从Power BI服务中获取报表的组织内嵌入URL(不是"发布到Web"的公共链接,而是需要登录的内部嵌入链接)
  • 用Power BI JS SDK初始化嵌入组件时,设置showBookmarksPane: true参数,用户登录后即可自动显示书签窗格

最简代码示例

<!DOCTYPE html>
<html>
<head>
    <script src="https://microsoft.github.io/PowerBI-JavaScript/dist/powerbi.min.js"></script>
</head>
<body>
    <div id="reportContainer" style="width: 100%; height: 800px;"></div>

    <script>
        // 替换为你的报表嵌入URL(从Power BI服务获取)
        const embedUrl = "https://app.powerbi.com/reportEmbed?reportId=xxx&groupId=xxx";
        
        const config = {
            type: "report",
            embedUrl: embedUrl,
            tokenType: window.powerbi.models.TokenType.Aad,
            settings: {
                showBookmarksPane: true,
                panes: {
                    bookmarks: { visible: true }
                }
            }
        };

        // 获取容器元素并初始化嵌入组件
        const reportContainer = document.getElementById("reportContainer");
        const report = window.powerbi.embed(reportContainer, config);
    </script>
</body>
</html>

关键说明

  1. 为什么必须用JS API?
    书签窗格属于Power BI嵌入组件的可配置UI元素,纯iframe默认嵌入不会显示该窗格,只有通过JS API的settings参数才能强制开启,这是Power BI的UI控制机制决定的,没有更底层的简单开关。
  2. 无需Azure AD应用注册的原因
    认证完全由用户自行完成:嵌入组件会引导用户登录自己的Power BI账号(个人版或商业版均可),登录后Power BI会自动生成会话令牌,你的应用不需要参与任何认证流程。
  3. 嵌入URL获取方式
    在Power BI服务中打开目标报表,点击"文件"→"嵌入报表"→"嵌入到组织",复制生成的嵌入URL即可(不要选"发布到Web",后者是公共访问,无法关联用户权限)。

内容的提问来源于stack exchange,提问作者Hua Deng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:05:10