【问题标题】:PowerBI authentication C#PowerBI 身份验证 C#
【发布时间】:2015-12-05 12:14:07
【问题描述】:

我想知道是否有人可以帮助我,我遇到了 power bi 问题。我想做的是将一些数据推送到 Power BI 中。我发现很难找到一种方法,即用户可以在那里输入用户名和密码,然后我就可以将数据推送到 Power BI 帐户中。

我遇到了获取访问令牌的第一个障碍。我只是保持不好的要求。我也尝试过 dotnet 入门,但由于某种奇怪的原因,我也无法开始工作。

给出的错误是:远程服务器返回错误:(401) Unauthorized。

注册为 Web 应用程序

public class PowerBICreds
{
    public string resourceUri  { get; set; }
    public string clientID     { get; set; }
    public string grantType    { get; set; }
    public string username     { get; set; }
    public string password     { get; set; }
    public string scope        { get; set; }
    public string clientSecret { get; set; }
    public string loginAddress { get; set; }
    public string baseurl      { get; set; }
}

public static string AccessToken(PowerBICreds Creds)
{

    StringBuilder Httpbody = new StringBuilder();
    Httpbody.Append("resource=" + HttpUtility.UrlEncode(Creds.resourceUri));
    Httpbody.Append("&client_id=" + HttpUtility.UrlEncode(Creds.clientID));
    Httpbody.Append("&grant_type=" + HttpUtility.UrlEncode(Creds.grantType));
    Httpbody.Append("&username=" + HttpUtility.UrlEncode(Creds.username));
    Httpbody.Append("&password=" + HttpUtility.UrlEncode(Creds.password));
    Httpbody.Append("&scope=" + HttpUtility.UrlEncode(Creds.scope));
    Httpbody.Append("&client_secret=" + HttpUtility.UrlEncode(Creds.clientSecret));

    using (WebClient web = new WebClient())
    {
        web.Headers.Add("client-request-id", Guid.NewGuid().ToString());
        web.Headers.Add("return-client-request-id", "true");

        string jsonstring = web.UploadString(Creds.loginAddress, Httpbody.ToString());

        dynamic result = JsonConvert.DeserializeObject(jsonstring);

        try
        {
            return result.access_token;
        }
        catch
        { 


        }
        return null;
    }
} 

当我尝试示例以显示如何使用 Mircosoft 在此处提供的 Power BI API 时进行更新https://github.com/PowerBI/getting-started-for-dotnet

其他技术信息: 相关 ID:f1281ec2-4e09-41e6-8847-3acfd3eb7922 时间戳:2015-12-04 22:48:58Z AADSTS65005:客户端应用程序已请求访问资源“https://analysis.windows.net/powerbi/api”。此请求失败,因为客户端未在其 requiredResourceAccess 列表中指定此资源。

【问题讨论】:

  • 几个问题可以帮助我们更多地了解您的问题。 1)您收到的详细错误消息是什么? 2) 您是如何注册您的应用程序的 - 它是客户端应用程序还是 Web 应用程序?

标签: c# azure active-directory oauth-2.0 powerbi


【解决方案1】:

您在使用我们的示例应用程序时遇到的错误可能意味着您在 AAD 中注册的应用程序未请求 Power BI 的任何权限。尝试使用我们的新应用注册页面http://dev.powerbi.com/apps。如果你只是想将数据推送到 Power BI,你只需要数据集的读/写权限。

【讨论】:

  • 好的,但是当我创建应用程序时,这些应用程序没有显示在 Azure 门户中,我该如何查看它们..?
  • 如果您使用注册时使用的同一帐户登录 Azure 门户,您应该会在 Azure AD 部分的某处看到这些应用程序。如果找不到旧应用,您可以随时创建新应用。
  • @JoshCaplan-MSFT 嗨,乔希!使用 dev.powerbi.com/apps 我只能在我有“工作”或“学生”帐户的情况下注册,但我是 gmail 的 ISV。我有这个帐户的天蓝色订阅。我可以创建一个 Power bi 工作区集合。我想应该可以在 Azure 门户中注册我的应用以获得 Power BI 的权限。 AAD -> App registrations 然后我猜这些权限应该添加到应用程序注册清单中,但是......但是应该在那里添加什么?
  • 好的,我明白了 :)(不是那么容易...)您需要至少拥有一个订阅 power bi 的组织帐户 - 否则您无法通过以下方式获得 power bi 服务所需的访问权限。还有一件事要考虑 - 像某些与帐户相关的东西这样的接缝不能通过新的 Azure 门户获得,应该通过 Classic 门户完成
猜你喜欢
  • 1970-01-01
  • 2022-10-07
  • 2021-01-04
  • 1970-01-01
  • 2015-10-16
  • 1970-01-01
  • 2021-02-27
  • 2021-06-13
  • 1970-01-01
相关资源
最近更新 更多