我无法通过使用服务主体登录的 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 服务的管理员权限),因此我试图找到一种方法将这些管理权限授予服务主体。 除此之外,我还有:
但没有任何效果。
有办法执行这些操作吗?还是服务主体的限制? 谢谢你, 若昂
使用服务主体进行身份验证时,通常无法使用管理 API。最近,他们使得使用其中一些成为可能,但不是全部。例如,请查看宣布新的管理 API 和服务主体身份验证以实现更好的租户元数据扫描和为只读管理 API 启用服务主体身份验证,您可以在其中查看支持的 API 列表。
要为工作区分配容量,请使用 UpdateGroupsAsAdmin API,该 API 目前未列为受支持的 API,并且记录仅用于“正常”身份验证:
权限
用户必须具有管理员权限(例如 Office 365 全局管理员或 Power BI 服务管理员)。
而对于其他 API(GetGroupsAsAdmin、PostWorkspaceInfo),明确记录它们可以与服务主体一起使用:
权限
用户必须具有管理员权限(例如 Microsoft 365 全局管理员或 Power BI 服务管理员)或使用服务主体进行身份验证。
因此,您要么必须等待 Microsoft 实施服务主体身份验证(并且不能保证他们会这样做),要么您必须更改身份验证(以使用 AAD 帐户)。
只是想知道您是否能够找到解决方案。我们还尝试使用 powershell 在 Fabric 中执行类似的操作,但最终遇到了相同的错误。
如果您有解决方案,请在此发布。谢谢。