状态:从工作区获取报告时出现未经授权 (401) 错误

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

我已经创建了我的应用程序并通过 https://dev.powerbi.com/Apps 注册为 Native。在 Azure 中,我添加了自己的全局管理员用户,将自己注册为应用程序管理员,并授予了所有 Power BI API 权限。我创建了一个工作区,给自己添加了一个管理员用户。在我的工作区上传了 Power BI 报告。当我在浏览器上时效果很好。

我正在尝试使用 ASP.NET 4.61 MVC 连接我的报告。我的凭据、用户名和密码有效,因此下面的代码没有问题:

var credential = new UserPasswordCredential(Username, Password);

// Authenticate using created credentials
var authenticationContext = new AuthenticationContext(AuthorityUrl);
var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceUrl, ApplicationId, credential);

if (authenticationResult == null)
{
    result.ErrorMessage = "Authentication Failed.";
    return View(result);
}

var tokenCredentials = new TokenCredentials(authenticationResult.AccessToken, "Bearer");

但是,我收到错误:

Status: Unauthorized (401)
位于
GetReportsInGroupAsync(Workspaceid);
行,其中workspaceId与我的工作空间匹配。

// Create a Power BI Client object. It will be used to call Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
   // Get a list of reports.
   var reports = await client.Reports.GetReportsInGroupAsync(WorkspaceId);
 ...
}

因此,由于未经授权错误,我无法访问我的工作区中的报告,并且我无法通过它。我如何授权自己,我已经在 AAD 中作为全局管理员,将自己添加为应用程序所有者,并且在工作区中我已经注册为管理员。

我在下面找到了这个主题,但答案没有解决我的问题:电源报告嵌入未经授权的错误 401

遵循此指南,也不起作用:https://learn.microsoft.com/en-us/power-bi/developer/register-app

如有任何帮助,我们将不胜感激。

azure azure-active-directory powerbi powerbi-embedded power-bi-report-server
1个回答
8
投票

我遇到了完全相同的问题,我检查了 API 调用的标头 X-PowerBI-Error-Info。我发现的是:ServicePrincipalIsNotAllowedByTenantAdminSwitch。

因此,您的租户管理员应打开“允许服务主体与 Power BI API 一起使用”并将其应用到服务主体所在的安全组:

Power BI Admin portal

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