使用服务主体调用Power BI UpdateGroupAsAdmin遇未授权问题求助
我有通过程序重命名Power BI工作区的需求,编写了如下C#方法:
public void RenameWorkspace(Guid workspaceId, string workspaceName) { var group = PowerBIClient.Groups.GetGroupAsAdmin(workspaceId); group.Name = workspaceName; PowerBIClient.Groups.UpdateGroupAsAdmin(workspaceId, group); }
我使用服务主体访问Power BI,已完成以下配置:
- 创建Azure应用注册
- 将服务主体加入安全组
- 更新Power BI租户设置,允许该安全组调用Power BI APIs
- 更新Power BI租户设置,允许该安全组调用Power BI Admin只读APIs
- 为安全组和服务主体授予工作区访问权限
目前能成功执行GetGroupAsAdmin方法获取工作区信息,但执行UpdateGroupAsAdmin方法时始终返回未授权结果。此外,该服务主体可正常创建工作区、添加用户及生成嵌入令牌,无权限问题。请问需补充什么配置才能让服务主体执行UpdateGroupAsAdmin方法?
开启Power BI Admin非只读API权限
UpdateGroupAsAdmin属于非只读的管理员API,你当前仅配置了Admin只读API的权限,需要登录Power BI管理员门户,找到租户设置里的**"允许使用Power BI管理员API"**选项(注意区分只读版本),将你的安全组添加到允许列表中。这个设置是管控非只读Admin API调用权限的核心,只读设置仅覆盖查询类接口,不包含更新操作。确认服务主体拥有工作区管理员角色
即便已授予工作区访问权限,UpdateGroupAsAdmin要求服务主体对目标工作区拥有管理员权限(成员或参与者权限不足以支持该操作)。检查目标工作区的权限配置,确保服务主体或其所在安全组被分配为工作区管理员。验证Azure应用注册的API权限范围
检查Azure应用注册的API权限,确认已添加Power BI Service的Workspace.ReadWrite.All或Workspace.Admin应用权限(注意是应用权限类型,而非委托权限),并且已完成管理员同意操作。之前的创建工作区、添加用户等操作仅用到部分权限,重命名工作区的Admin API需要更高级的应用权限支撑。
内容的提问来源于stack exchange,提问作者P. Grote

