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

Power BI Embedded实现外部用户免登录RLS报表嵌入的剩余步骤咨询

问题解答

场景支持性

该场景完全支持,通过Power BI Embedded的AppOwnsData模式结合自定义身份传递,无需将外部用户加入你的Entra租户,即可实现无登录的RLS过滤报表嵌入。

剩余实现步骤

1. 调整RLS规则适配自定义身份

将原依赖Entra用户的RLS过滤逻辑,替换为基于CUSTOMDATA()函数的规则:

  • 原规则示例(依赖AAD用户):[UserEmail] = USERPRINCIPALNAME()
  • 修改后规则:[UserEmail] = CUSTOMDATA()
  • 确保RLS角色的过滤条件能匹配你将传递的外部用户唯一标识(如邮箱、自定义用户ID)

2. 生成嵌入令牌时注入用户上下文

在后端调用Power BI REST API获取嵌入令牌的请求中,必须携带用户身份参数:

  • 请求体中添加identity字段,指定customData为当前外部用户的标识,同时指定对应的RLS角色名称
  • 简化的请求体示例:
    {
      "datasets": [{"id": "<你的数据集ID>"}],
      "reports": [{"id": "<你的报表ID>"}],
      "targetWorkspaces": [{"id": "<你的工作区ID>"}],
      "identity": {
        "customData": "external.user@example.com",
        "roles": ["你的RLS角色名称"]
      }
    }
    
  • 注意:必须使用服务主体身份调用API获取令牌,确保服务主体已拥有工作区的权限(你已完成相关配置)

3. Web应用端处理流程

  • 你的自定义Web应用自行完成外部用户的身份校验(如通过自有账号系统、临时验证码等)
  • 用户校验通过后,后端生成带有上述用户上下文的嵌入令牌,返回给前端
  • 前端使用Power BI Embedded SDK加载报表时,直接传入该令牌,无需引导用户登录Power BI

4. 验证RLS效果

  • 用不同外部用户标识生成令牌,测试报表是否仅展示对应过滤后的内容
  • 可在报表中添加卡片可视化,显示CUSTOMDATA()的值,确认身份参数传递正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:22:40