【发布时间】:2022-03-16 05:26:12
【问题描述】:
我有一个使用 Active Directory 用户执行以下操作的 C# 应用程序,我正在尝试将其转换为使用 Active Directory 服务主体。我在 Azure 中使用 Power Embedded Workspace with Premium Capacity
- 创建数据集
- 创建报告
- 刷新数据集
但是,当我尝试使用 服务主体 执行相同的操作时遇到了问题。
我尝试了什么
我有以下设置
01.租户设置 -> 开发者选项:
- 在 Azure Active Directory 中创建了应用注册
- 在 Azure Active Directory 中创建了安全组。
- 已将服务主体(在步骤 1 中创建)添加到安全组(在步骤 2 中创建)
- 作为 app.powerbi.com 管理员启用了开发者设置 -> 访问 admin api
- 限制对特定组的访问,并确保我使用的服务主体已添加到此安全组
02.工作区设置:powerbi 工作区 -> 访问控制
- 将服务主体作为“管理员”添加到工作区
03.应用拥有数据工作流
- 使用建议的 github 存储库App Owns Data Solution
- 在
appsettings.json中插入正确的值- 客户 ID,
- 密钥
- 租户 ID
- 工作区 ID
- 报告编号
我收到了错误
Operation returned an invalid status code 'Unauthorized'
at Microsoft.PowerBI.Api.ReportsOperations.GetReportInGroupWithHttpMessagesAsync(Guid groupId, Guid reportId, Dictionary`2 customHeaders, CancellationToken cancellationToken)
at Microsoft.PowerBI.Api.ReportsOperationsExtensions.GetReportInGroupAsync(IReportsOperations operations, Guid groupId, Guid reportId, CancellationToken cancellationToken)
at Microsoft.PowerBI.Api.ReportsOperationsExtensions.GetReportInGroup(IReportsOperations operations, Guid groupId, Guid reportId)
at AppOwnsData.Services.PbiEmbedService.GetEmbedParams(Guid workspaceId, Guid reportId, Guid additionalDatasetId) in C:\Campuslabs\TeamFoundation\PowerBI-Developer-Samples\.NET Core\Embed for your customers\AppOwnsData\Services\PbiEmbedService.cs:line 46
at AppOwnsData.Controllers.EmbedInfoController.GetEmbedInfo() in C:\Campuslabs\TeamFoundation\PowerBI-Developer-Samples\.NET Core\Embed for your customers\AppOwnsData\Controllers\EmbedInfoController.cs:line 45
我的问题是
-
如何解决此问题
-
是否允许服务主体凭据在具有高级容量的 Power Embedded Workspace 上刷新/创建/数据集
【问题讨论】:
-
要刷新数据集,您必须是数据集的所有者。这意味着数据集必须由服务主体创建,或者您必须将所有者更改为服务主体(请参阅Take Over In Group API)。
标签: powerbi-embedded azure-service-principal