Passaggio 2: Ottenere un token di accesso per l'autenticazioneStep 2: Get an authentication access token

Questo articolo è il secondo passaggio della serie Eseguire il push dei dati in un set di dati di Power BI.This article is the second step in the series Push data into a Power BI dataset.

Nel passaggio 1 è stata eseguita la registrazione di un'app client in Azure AD.In step 1, you registered a client app in Azure AD. In questo passaggio si ottiene un token di accesso per l'autenticazione.In this step, you get an authentication access token. Le app di Power BI sono integrate con Azure Active Directory per offrire accesso e autorizzazione sicuri per l'app.Power BI apps are integrated with Azure Active Directory to provide your app with secure sign in and authorization. L'app usa un token per l'autenticazione in Azure AD e per l'accesso alle risorse di Power BI.Your app uses a token to authenticate to Azure AD and gain access to Power BI resources.

Ottenere un token di accesso per l'autenticazioneGet an authentication access token

Prima di iniziare, assicurarsi di aver completato il passaggio precedente della serie Eseguire il push dei dati in un set di dati di Power BI.Before starting, make sure you've completed the previous step in the Push data into a Power BI dataset series.

Questa procedura richiede Visual Studio 2015 o versione successiva.This procedure requires Visual Studio 2015 or later.

  1. In Visual Studio creare un nuovo progetto Applicazione console in C#.In Visual Studio, create a new C# Console Application project.

  2. Installare il pacchetto NuGet Azure AD Authentication Library per .NET.Install the Azure AD Authentication Library for .NET NuGet package. Questo pacchetto viene usato dall'app .NET per ottenere un token di sicurezza per l'autenticazione.Your .Net app needs this package to get an authentication security token.

    a.a. Fare clic su Strumenti > Gestione Pacchetti NuGet > Console di Gestione pacchetti.Select Tools > NuGet Package Manager > Package Manager Console.

    b.b. Immettere Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612Enter Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612

    c.c. In Program.cs aggiungere using Microsoft.IdentityModel.Clients.ActiveDirectory;.In Program.cs, add using Microsoft.IdentityModel.Clients.ActiveDirectory;.

  3. Aggiungere a Program.cs il codice di esempio riportato dopo la procedura.Add the sample code listed after these steps to Program.cs.

  4. Sostituire "{ClientID}", con l'ID Client ottenuto nel precedente articolo della serie quando l'app è stata registrata.Replace "{ClientID}", with the Client ID you got in the previous series article when you registered your app.

  5. Eseguire l'app console e accedere al proprio account di Power BI.Run your console app and sign in to your Power BI account.

    Nella finestra della console dovrebbe essere presente una stringa di token.A token string should appear in the console window.

Codice di esempio per ottenere il token di sicurezza per l'autenticazioneSample code to get authentication security token

Aggiungere questo codice a Program {...}.Add this code to Program {...}.

  • Una variabile token per chiamare le operazioni:A token variable to call operations:

    private static string token = string.Empty;
    
    static void Main(string[] args)
    {
    }
    
  • In static void Main(string[] args):In static void Main(string[] args):

    static void Main(string[] args)
    {
      //Get an authentication access token
      token = GetToken();
    }
    
  • Aggiungere un metodo GetToken():Add a GetToken() method:

       #region Get an authentication access token
       private static async Task<string> GetToken()
       {
           // TODO: Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612
           // and add using Microsoft.IdentityModel.Clients.ActiveDirectory

           //The client id that Azure AD created when you registered your client app.
           string clientID = "{Client_ID}";

           //RedirectUri you used when you register your app.
           //For a client app, a redirect uri gives Azure AD more details on the application that it will authenticate.
           // You can use this redirect uri for your client app
           string redirectUri = "https://login.live.com/oauth20_desktop.srf";

           //Resource Uri for Power BI API
           string resourceUri = "https://analysis.windows.net/powerbi/api";

           //OAuth2 authority Uri
           string authorityUri = "https://login.microsoftonline.net/common/";

           //Get access token:
           // To call a Power BI REST operation, create an instance of AuthenticationContext and call AcquireToken
           // AuthenticationContext is part of the Active Directory Authentication Library NuGet package
           // To install the Active Directory Authentication Library NuGet package in Visual Studio,
           //  run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.

           // AcquireToken will acquire an Azure access token
           // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
           AuthenticationContext authContext = new AuthenticationContext(authorityUri);
           var token = authContext.AcquireTokenAsync(resourceUri, clientID, new Uri(redirectUri)).Result.AccessToken;

           Console.WriteLine(token);
           Console.ReadLine();

           return token;
       }

       #endregion

Dopo avere ottenuto un token di autenticazione, è possibile chiamare qualsiasi operazione di Power BI.After you get an authentication token, you can call any Power BI operation.

L'articolo successivo della serie illustra come creare un set di dati in Power BI.The next article in this series shows you how to Create a dataset in Power BI.

Listato di codice completoComplete code listing

using System;
using Microsoft.IdentityModel.Clients.ActiveDirectory;

namespace walkthrough_push_data
{
    class Program
    {
        private static string token = string.Empty;

        static void Main(string[] args)
        {

            //Get an authentication access token
            token = GetToken();

        }

        #region Get an authentication access token
        private static async Task<string> GetToken()
        {
            // TODO: Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612
            // and add using Microsoft.IdentityModel.Clients.ActiveDirectory

            //The client id that Azure AD created when you registered your client app.
            string clientID = "{Client_ID}";

            //RedirectUri you used when you register your app.
            //For a client app, a redirect uri gives Azure AD more details on the application that it will authenticate.
            // You can use this redirect uri for your client app
            string redirectUri = "https://login.live.com/oauth20_desktop.srf";

            //Resource Uri for Power BI API
            string resourceUri = "https://analysis.windows.net/powerbi/api";

            //OAuth2 authority Uri
            string authorityUri = "https://login.microsoftonline.com/common/";

            //Get access token:
            // To call a Power BI REST operation, create an instance of AuthenticationContext and call AcquireToken
            // AuthenticationContext is part of the Active Directory Authentication Library NuGet package
            // To install the Active Directory Authentication Library NuGet package in Visual Studio,
            //  run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.

            // AcquireToken will acquire an Azure access token
            // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
            AuthenticationContext authContext = new AuthenticationContext(authorityUri);
            var token = authContext.AcquireTokenAsync(resourceUri, clientID, new Uri(redirectUri)).Result.AccessToken;

            Console.WriteLine(token);
            Console.ReadLine();

            return token;
        }

        #endregion

    }
}

Passaggi successiviNext steps

Altre domande?More questions? Provare la community di Power BITry the Power BI Community