使用this post,我已成功创建了一个控制台应用程序,用于验证数据并将其推送到我自己的PowerBI仪表板。这是在根据说明配置了我自己的应用程序之后的一个ClientId
和RedirectUri
。然而,我遇到了问题,将其转换为我的团队创建的仪表板。使用GroupId对PowerBI仪表板进行身份验证?
我们有几个仪表板位于https://{name}.powerbi.com/groups/{group id}/dashboards/{dashboard id}
。从上面的帖子,代码即可获得一个AAD的道理,由于稍加修改的Microsoft.IdentityModel.Clients.ActiveDirectory
更新的版本,是:
private static string GetToken()
{
string clientID = "{Client_ID}";
string redirectUri = "https://login.live.com/oauth20_desktop.srf";
string resourceUri = "https://analysis.windows.net/powerbi/api";
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
PlatformParameters parameters = new PlatformParameters(PromptBehavior.Never);
string token = authContext.AcquireTokenAsync(resourceUri, ClientId, new Uri(RedirectUri), parameters).Result.AccessToken;
Console.WriteLine(token);
Console.ReadLine();
return token;
}
因为我不知道ClientID的,我已经尝试使用的GroupId,但这失败了。如果我没有可用的ClientId,我怎么能找到它或以其他方式进行身份验证?在这种情况下,我如何知道适当的RedirectUri和ResourceUri?
我在学校做了一个PowerBI项目。你有什么真正的问题?访问已发布的仪表板(我假设您通过PowerBi托管完成此操作)? – Jomasdf
通过编程访问_push_数据到我的仪表板。我可以从我的应用程序中推送数据,当它从连接的帖子中定位到'ClientId' +'RedirectUri'时,但是当试图将数据推送到我的团队的BI仪表板时,我无法向AAD进行身份验证,因为BI没有公开什么ClientId ,RedirectUri和ResourceUri我应该使用。 – user655321
@ user655321使用与之相同的clientID进行身份验证。对于组访问,它不需要有所不同。您可能需要仔细检查您创建的AAD应用程序(为了生成clientID)以确保它请求所有Power BI权限。 – GregGalloway