gpt4 book ai didi

azure - PowerBI 客户端不适用于 Azure AD 服务主体

转载 作者:行者123 更新时间:2023-12-05 07:35:30 27 4
gpt4 key购买 nike

我正在尝试从 PowerBI API 获取数据(使用 Microsoft.PowerBI.Api.V2 客户端 dll)。下面是我的代码:

private static async Task getEmbedTokens(string accessToken)
{
var tokenCredentials = new TokenCredentials(accessToken, "Bearer");
var client = new PowerBIClient(new Uri("https://api.powerbi.com/"), tokenCredentials);
var reports = await client.Reports.GetReportsInGroupAsync("<groupid here>");
// Get the first report in the group.
var report = reports.Value.FirstOrDefault();
if (report != null)
{
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
var tokenResponse = await client.Reports.GenerateTokenInGroupAsync("<group id here>", "<report id here>", generateTokenRequestParameters);
if (tokenResponse != null)
{
// Generate Embed Configuration.
var embedConfig = new EmbedConfig()
{
EmbedToken = tokenResponse,
EmbedUrl = report.EmbedUrl,
Id = report.Id
};
}

}
}

现在我使用 ADAL 生成不记名 token ,并尝试了以下 2 个场景:

场景1:使用UserCredentials(服务帐户)生成不记名 token

这里我使用服务帐户来生成不记名 token 。服务帐户有权访问 powerbi 仪表板。

var credential = new UserPasswordCredential("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="deabadbbacb0bfb3bb9eaabbb0bfb0aab0bfb3bbf0b1b0b3b7bdacb1adb1b8aaf0bdb1b3" rel="noreferrer noopener nofollow">[email protected]</a>", "password");

场景 2:使用 ClientCredentials(服务主体)获取不记名 token

这里我使用客户端 id ,即服务主体的客户端 key 。服务主体已被授予 Azure AD 应用注册面板中 Power BI API 的所有权限。

var clientCred = new ClientCredential(clientId, clientSecret);

场景 1 工作正常,但场景 2 我收到未经授权的错误。我尝试检查是否有任何方法可以通过 power bi 门户授予主体访问仪表板的权限,但找不到任何方法。我更喜欢使用服务主体,但是可以使用服务主体吗?

最佳答案

目前 Power BI 不支持服务主体/仅限应用 token 。

关于azure - PowerBI 客户端不适用于 Azure AD 服务主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49519378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com