使用 GroupId 向 PowerBI 仪表板进行身份验证?
Authenticating to PowerBI dashboard with GroupId?
使用 this post,我成功创建了一个控制台应用程序,用于验证数据并将数据推送到我自己的 PowerBI 仪表板。这是在根据说明使用 ClientId
和 RedirectUri
配置我自己的应用程序之后。但是,我在将其转换为我的团队创建的仪表板时遇到了问题。
我们在 https://{name}.powerbi.com/groups/{group id}/dashboards/{dashboard id}
有几个仪表板。从上面的 post 中,获取 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?
如果您使用用于登录以访问您团队的仪表板的同一帐户登录您的个人仪表板,则您可以在这两种情况下重复使用 ClientID。
用更专业的术语来说:如果您自己的 PowerBI 仪表板和您的团队都绑定了同一个 Azure AD,则可以重复使用客户端 ID。 (如果它们绑定到不同的 Azure AD,那么您可以为每个 Azure AD 注册一个应用程序,或者注册一个应用程序并将多租户开关设置为 true,但希望第一种情况涵盖您并且不需要担心这个。)
PowerBI 权限本身不限于特定仪表板。相反,如果 setup via User Delegation,应用程序将能够对登录用户有权访问的任何数据集执行选定的操作(例如读取和写入所有数据集)。
使用 this post,我成功创建了一个控制台应用程序,用于验证数据并将数据推送到我自己的 PowerBI 仪表板。这是在根据说明使用 ClientId
和 RedirectUri
配置我自己的应用程序之后。但是,我在将其转换为我的团队创建的仪表板时遇到了问题。
我们在 https://{name}.powerbi.com/groups/{group id}/dashboards/{dashboard id}
有几个仪表板。从上面的 post 中,获取 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?
如果您使用用于登录以访问您团队的仪表板的同一帐户登录您的个人仪表板,则您可以在这两种情况下重复使用 ClientID。
用更专业的术语来说:如果您自己的 PowerBI 仪表板和您的团队都绑定了同一个 Azure AD,则可以重复使用客户端 ID。 (如果它们绑定到不同的 Azure AD,那么您可以为每个 Azure AD 注册一个应用程序,或者注册一个应用程序并将多租户开关设置为 true,但希望第一种情况涵盖您并且不需要担心这个。)
PowerBI 权限本身不限于特定仪表板。相反,如果 setup via User Delegation,应用程序将能够对登录用户有权访问的任何数据集执行选定的操作(例如读取和写入所有数据集)。