Krok 2: Získanie overovacieho prístupového tokenu

Tento článok je druhý krok v sérii Presunutie údajov do množiny údajov v službe Power BI.

V kroku 1 ste zaregistrovali klientsku aplikáciu v službe Azure AD. V tomto kroku získate overovací prístupový token. Aplikácie služby Power BI sú integrované so službou Azure Active Directory, čo vašej aplikácii poskytuje bezpečné prihlasovanie a overenie. Aplikácia používa token na overovanie v službe Azure AD a na získanie prístupu k zdrojom služby Power BI.

Získanie overovacieho prístupového tokenu

Skôr ako začnete, uistite sa, že ste absolvovali predchádzajúci krok v sérii Presunutie údajov do množiny údajov v službe Power BI.

Tento postup vyžaduje Visual Studio 2015 alebo novšiu verziu.

  1. Vo Visual Studiu vytvorte nový projekt v jazyku C# pre konzolovú aplikáciu.

  2. Nainštalujte knižnicu overenia Azure AD pre balík .NET NuGet. Ak chcete získať overovací token zabezpečenia, vaša aplikácia .NET bude potrebovať tento balík.

    a. Vyberte položku Nástroje > Správca balíka NuGet > Konzola správca balíka.

    b. Zadajte inštalačný balík Microsoft.IdentityModel.Clients.ActiveDirectory - verzia 2.21.301221612

    c. Do súboru Program.cs, pridajte using Microsoft.IdentityModel.Clients.ActiveDirectory;.

  3. Do súboru Program.cs pridajte vzorový kód uvedený za týmito krokmi.

  4. Nahraďte „{ClientID}“ položkou Client ID, ktorú ste našli v článku predchádzajúcej série, keď ste si registrovali svoju aplikáciu.

  5. Spustite svoju konzolovú aplikáciu a prihláste sa do svojho konta služby Power BI.

    V okne konzoly by sa mal zobraziť reťazec tokenu.

Vzorový kód na získanie overovacieho tokenu zabezpečenia

Tento kód pridajte do súboru Program {...}.

  • Premenná tokenu na zavolanie operácií:

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

    static void Main(string[] args)
    {
      //Get an authentication access token
      token = GetToken();
    }
    
  • Pridajte metódu 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

Po získaní overovacieho tokenu môžete zavolať akúkoľvek operáciu služby Power BI.

Nasledujúci článok v tejto sérii ukazuje, ako Vytvoriť množinu údajov v službe Power BI.

Úplný zoznam kódov

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

    }
}

Ďalšie kroky

Ďalšie otázky. Skúste komunitu služby Power BI