本文介绍如何在 Power BI 中进行身份验证,以及如何使用客户端 ID 获取访问令牌。 要开始创建 Power BI 应用,请参阅开始创建 Power BI 应用

Power BI REST API 提供对仪表板资源的编程式访问,这些资源包括数据集、表和行。 这些资源受 Azure Active Directory (Azure AD) 保护。 要获取 Power BI 资源的访问权限,你需要在 Azure AD 中对应用程序进行身份验证。

介绍如何在 Power BI 中进行身份验证

Power BI 应用与 Azure Active Directory (Azure AD) 集成,以便为你的应用提供安全的登录和授权。 要将 Power BI 应用与 Azure AD 集成,请使用 Azure 管理门户向 Azure AD 注册应用程序的详细信息。 在 Azure Active Directory 中注册应用程序时,应用程序会将身份验证任务委派给 Azure AD。 在应用程序注册过程中,需向 Azure AD 告知你的应用程序信息,其中包括应用程序的 URL、用于在身份验证后发送回复的 URL 以及用于标识应用程序的 URI。 当在 Azure AD 中注册客户端应用或 Web 应用时,需对应用程序授予 Power BI REST API 的访问权限。

Power BI 应用程序使用客户端 ID 向 Azure AD 标识其自身。 请参阅 Azure 应用客户端 ID。 对于 Web 应用,你还需要客户端密钥。 请参阅 Azure Web 应用客户端密钥

要了解如何注册 Power BI 应用和对其进行身份验证︰

Azure 应用客户端 ID

Azure 应用程序具有客户端 ID,由应用程序用于向其请求权限的用户标识其自身。 可使用客户端 ID 获取身份验证令牌。 要获取 Azure 应用客户端 ID,请参阅如何获取客户端应用 ID

有关如何使用 Azure 客户端 ID 对客户端应用进行身份验证的完整示例,请参阅对客户端应用进行身份验证

例如,以下 C# 代码使用 Azure 应用客户端 ID 获取访问令牌。

  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 Web 应用客户端密钥

注册 Web 应用时,你将收到客户端密钥。 Web 应用程序使用客户端密钥Power BI 服务安全地标识其自身。 要获取 Azure 应用客户端密钥,请参阅如何获取客户端密钥

有关如何使用 Azure 客户端 ID 和客户端密钥对 Web 应用进行身份验证的完整示例,请参阅对 Web 应用进行身份验证

另请参阅

开始创建 Power BI 应用
如何获取 Azure Active Directory 租户
创建 Azure Active Directory 租户
注册客户端应用
注册 web 应用
更多问题? 尝试参与 Power BI 社区