使用本地 SSAS 作为数据集的带有服务主体的嵌入式 powerbi 报告

Posted

技术标签:

【中文标题】使用本地 SSAS 作为数据集的带有服务主体的嵌入式 powerbi 报告【英文标题】:Embeded powerbi report with service principal using onpremise SSAS as dataset 【发布时间】:2020-04-14 13:16:42 【问题描述】:

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

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

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

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

-通过标识符 = ServicePrincipalObjectId 的 EffectiveIdentity

我可以在开发者工具中看到 https://wabi-north-europe-redirect.analysis.windows.net/powerbi/metadata/models/5330774/?modelOption... 返回 401

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

报告是嵌入的,但是当它加载视觉对象时,我得到 401,我可以看到“https://wabi-north-europe-redirect.analysis.windows.net/explore/querydata” 返回""error":"code":"RLSNotAuthorizedForImpersonation","pbi.error":"code":"RLSNotAuthorizedForImpersonation","parameters":,"details":[],"exceptionCulprit":1"

我尝试过使用不同的用户,手动添加到具有适当角色的 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...

提前致谢

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于使用本地 SSAS 作为数据集的带有服务主体的嵌入式 powerbi 报告的主要内容,如果未能解决你的问题,请参考以下文章

实现 SSAS 多维数据集的 TIME SPAN/PERIOD 维度的方法

SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度

BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

BI之SSAS完整实战教程3 -- 创建第一个多维数据集.docx

SSAS - 维度浏览器显示不同的属性

在 SSAS 中建模多维数据集