首页 > 解决方案 > 使用本地 SSAS 作为数据集的服务主体嵌入 powerbi 报告

问题描述

我有一个本地 SSAS 实例,它使用网关在 powerbi 中配置,配置是正确的,因为使用来自 app.powebi 的 SSAS 数据集的报告甚至来自嵌入式报告,如果使用用户名/密码流请求令牌。

出于安全原因,我们的客户要求引入服务主体,它已打开,在工作区设置为管理员,我使用 powerbi 数据集 api 将“ReadOverrideEffectiveIdentity”添加到服务主体。

目前,当我使用 clientSecret(服务主体)请求嵌入令牌时,它需要传递 EffectiveIdentity(之前在此路径中未传递)。

我测试了两种不同的方法:

- 通过 EffectiveIdentity,标识符 = ServicePrincipalObjectId

- 传递当前记录的用户 ID(这通常传递给直接指向数据库的其他数据集):

我尝试过使用不同的用户,手动添加到具有适当角色的 SSAS 安全窗格中,网关是最新的可能版本。在网关日志中有关于请求的信息,一些处理但在它不起作用的情况下没有报告 sql 执行。

你有什么想法我接下来应该检查什么以及有什么问题吗?

我的工作主要基于:

https://prologika.com/power-bi-embedded-service-principals-and-ssas/

https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-row-level-security#on-premises ...

https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-row-level-security#working-wit ...

提前致谢

标签: powerbissasimpersonationpowerbi-embedded

解决方案


https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-row-level-security#on-premises-data-gateway-with-service-principal

您需要在用于连接到本地 SSAS 数据集的数据网关上将服务主体添加为管理员。您可能需要将服务主体添加到 Azure AD 组,使该组成为网关管理员。

  1. PowerBI.COM
  2. 点击右上角的齿轮
  3. 单击管理网关
  4. 单击左侧树上用于连接到您的本地 SSAS 数据库的网关
  5. 点击网关
  6. 单击并从“网关群集设置”选项卡更改为“管理员”选项卡。
  7. 以管理员身份添加服务主体

您还确定您正在生成具有所需身份的嵌入式令牌吗?SSAS 数据源将需要有效的身份。

"identities": [
    {
      "username": "user@my-app.com",
      "roles": [
        "report-rls-role-name"
      ],
      "datasets": [
        "my-dataset-id-xxxxx-xxxxx-xxxxx"
      ]
    }
]

推荐阅读