服务主体可以访问 PowerBi 服务中的管理门户设置吗?

问题描述 投票:0回答:2

我无法通过使用服务主体登录的 Powershell 命令将容量 ID 分配给工作区。

$workspace = Get-PowerBIWorkspace -name 'XXX-XX-XXXX-XXX'
$workspaceId = $workspace.Id
echo $workspaceId
Set-PowerBIWorkspace -Id $workspaceId -Scope "Organization" -CapacityId "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"

错误信息:

Set-PowerBIWorkspace: Operation returned an invalid status code 'Unauthorized'

我已采取以下步骤: 我已创建一个服务主体并将其分配给 Azure AD 中的安全组。 我在 PowerBi 服务的管理门户中手动添加了此安全组,以允许服务主体与服务交互(在开发人员设置下)。 我已经能够(使用 PowerShell)使用服务主体登录并创建一个工作区。我可以获取所有工作区等... 但是,当我尝试设置工作区容量 ID(将其分配给高级容量)时,我收到未经授权的错误。 我怀疑我无法执行此操作,因为要执行此操作,我必须进入管理门户设置 > 工作区(我需要 PowerBi 服务的管理员权限),因此我试图找到一种方法将这些管理权限授予服务主体。 除此之外,我还有:

  1. 将安全组中的相同服务主体分配给 工作区管理员
  2. 将 AAD 中的 PowerBi 管理员角色分配给该服务主体

但没有任何效果。

有办法执行这些操作吗?还是服务主体的限制? 谢谢你, 若昂

powershell powerbi unauthorized service-principal
2个回答
0
投票

使用服务主体进行身份验证时,通常无法使用管理 API。最近,他们使得使用其中一些成为可能,但不是全部。例如,请查看宣布新的管理 API 和服务主体身份验证以实现更好的租户元数据扫描为只读管理 API 启用服务主体身份验证,您可以在其中查看支持的 API 列表

要为工作区分配容量,请使用 UpdateGroupsAsAdmin API,该 API 目前未列为受支持的 API,并且记录仅用于“正常”身份验证:

权限

用户必须具有管理员权限(例如 Office 365 全局管理员或 Power BI 服务管理员)。

而对于其他 API(GetGroupsAsAdminPostWorkspaceInfo),明确记录它们可以与服务主体一起使用:

权限

用户必须具有管理员权限(例如 Microsoft 365 全局管理员或 Power BI 服务管理员)或使用服务主体进行身份验证。

因此,您要么必须等待 Microsoft 实施服务主体身份验证(并且不能保证他们会这样做),要么您必须更改身份验证(以使用 AAD 帐户)。


0
投票

只是想知道您是否能够找到解决方案。我们还尝试使用 powershell 在 Fabric 中执行类似的操作,但最终遇到了相同的错误。

如果您有解决方案,请在此发布。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.