Эта статья содержит общие сведения о проверке подлинности в службе Power BI и о получении маркера доступа с помощью идентификатора клиента. Чтобы приступить к созданию приложения Power BI, ознакомьтесь со статьей Приступая к созданию приложения Power BI.

REST API Power BI предоставляет программный доступ к таким ресурсам панели мониторинга, как наборы данных, таблицы и строки. Эти ресурсы защищены Azure Active Directory (Azure AD). Для получения доступа к ресурсам Power BI приложение должно пройти проверку подлинности в Azure AD.

Введение в аутентификацию в Power BI

Приложения Power BI интегрированы с Azure Active Directory (Azure AD) для обеспечения безопасного входа и авторизации в приложении. Чтобы интегрировать приложение Power BI с Azure AD, вы регистрируете данные приложения в Azure AD с помощью портала управления Azure. Если приложение зарегистрировано в Azure Active Directory, оно использует механизм аутентификации Azure AD. Регистрация приложения подразумевает передачу в Azure AD информации о приложении, включая его URL-адрес, URL-адрес для отправки ответов после аутентификации и универсальный код ресурса (URI) для идентификации приложения. Регистрируя клиентское приложение или веб-приложение в Azure AD, вы предоставляете ему доступ к REST API Power BI.

Приложение Power BI использует идентификатор клиента для собственной идентификации в службе Azure AD. См. статью Идентификатор клиента приложения Azure. Для веб-приложения также необходим секретный ключ клиента. См. статью Секретный ключ клиента веб-приложения Azure.

Информация о регистрации и аутентификации приложения Power BI:

Идентификатор клиента приложения Azure

У приложения Azure имеется идентификатор клиента, используемый приложением для идентификации себя пользователям, у которых запрашиваются разрешения. Идентификатор клиента используется для получения маркера аутентификации. Чтобы узнать, как получить идентификатор клиента Azure, см. раздел Как получить идентификатор клиентского приложения.

Полный пример использования идентификатора клиента Azure для аутентификации клиентского приложения см. в статье Аутентификация клиентского приложения.

Например, следующий код C# использует идентификатор клиента приложения Azure для получения маркера доступа.

  static string AccessToken()
  {
        //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.

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

        string clientId = {clientIDFromAzureAppRegistration};

        //A redirect uri gives AAD more details about the specific application that it will authenticate.
        //Since a client app does not have an external service to redirect to, this Uri is the standard placeholder for a client app.
        string redirectUri = "https://login.live.com/oauth20_desktop.srf";

        // Create an instance of AuthenticationContext to acquire an Azure access token
        // OAuth2 authority Uri
        string authorityUri = "https://login.windows.net/common/oauth2/authorize";
        AuthenticationContext authContext = new AuthenticationContext(authorityUri);

        // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
        //  AcquireToken takes a Client Id that Azure AD creates when you register your client app.
        //  To learn how to register a client app and get a Client ID, see https://msdn.microsoft.com/en-US/library/dn877542(Azure.100).aspx   
        string token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken;

        return token;
  }

Секретный ключ клиента веб-приложения Azure

При регистрации веб-приложения вы получаете секретный ключ клиента. Секретный ключ клиента используется для безопасной идентификации веб-приложения в службе Power BI. Чтобы узнать, как получить секретный ключ клиента Azure, см. статью Как получить секрет клиента.

Полный пример использования идентификатора клиента Azure и секретного ключа клиента для аутентификации веб-приложения см. в статье Аутентификация веб-приложения.

См. также:

Приступая к созданию приложения Power BI
Как получить клиент Azure Active Directory
Создание клиента Azure Active Directory
Регистрация клиентского приложения
Регистрация веб-приложения
Появились дополнительные вопросы? Ответы на них см. в сообществе Power BI.