Einführung

In Schritt 1 zur Integration einer Kachel in eine App (Registrieren eine Web-App in Azure AD) registrieren Sie eine Web-App, damit Ihre App in Azure Active Directory authentifiziert werden kann. In diesem Schritt verwenden Sie ein Zugriffstoken und die Power BI-API, um ein Dashboard abzurufen. Nachdem Sie ein Dashboard abgerufen haben, können Sie noch eine Power BI-Kachel abrufen.

Zum Abrufen eines Power BI-Dashboards verwenden Sie den Vorgang Get Dashboards (Dashboards abrufen), um eine Liste der Power BI-Dashboards abzurufen. Aus dieser Dashboardliste können Sie dann eine Dashboard-ID abrufen. Nachdem Sie eine Dashboard-ID abgerufen haben, können Sie noch eine Power BI-Kachel abrufen.

Damit Sie den Vorgang Get Dashboards (Dashboards abrufen) oder einen anderen Power BI-Vorgang aufrufen können, benötigen Sie ein Azure Active Directory-Authentifizierungszugriffstoken (Zugriffstoken). Über ein Zugriffstoken erhält Ihre App Zugriff auf Power BI-Dashboards und -Kacheln. Weitere Informationen zum Azure Active Directory-Fluss (Azure AD) für Zugriffstoken finden Sie unter Authorization Code Grant-Datenfluss. Im nächsten Abschnitt erfahren Sie, wie Sie in einer Web-App ein Zugriffstoken abrufen.

Abrufen eines Authentifizierungszugriffstokens

Nachstehend wird das Abrufen eines Authentifizierungszugriffstokens zum Aufrufen eines Power BI-Vorgangs erläutert.

Schritt 1: Abrufen eines Autorisierungscodes von Azure AD

Der erste Schritt beim Abrufen eines Zugriffstokens ist das Abrufen eines Autorisierungscodes von Azure AD. Zu diesem Zweck erstellen Sie eine Abfragezeichenfolge mit den folgenden Eigenschaften und leiten diese weiter an Azure AD.

Abfragezeichenfolge für den Autorisierungscode

var @params = new NameValueCollection
{
    //Azure AD will return an authorization code.
    {"response_type", "code"},

    //Client ID is used by the application to identify themselves to the users that they are requesting permissions from.
    //You get the client id when you register your Azure app.
    {"client_id", Settings.Default.ClientID},

    //Resource uri to the Power BI resource to be authorized
    //The resource uri is hard-coded for sample purposes
    {"resource", "https://analysis.windows.net/powerbi/api"},

    //After app authenticates, Azure AD will redirect back to the web app. In this sample, Azure AD redirects back
    //to Default page (Default.aspx).
    { "redirect_uri", Settings.Default.RedirectUri}
};

Nachdem Sie eine Abfragezeichenfolge erstellt haben, leiten Sie diese weiter an Azure AD, um einen Autorisierungscode abzurufen. Im Folgenden finden Sie eine vollständige C#-Methode zum Erstellen einer Abfragezeichenfolge für den Autorisierungscode und leiten diese an Azure AD weiter. Im nächsten Schritt erhalten Sie ein Zugriffstoken mithilfe des Autorisierungscodes.

Abrufen des Autorisierungscodes

public void GetAuthorizationCode()
{
    //NOTE: Values are hard-coded for sample purposes.
    //Create a query string
    //Create a sign-in NameValueCollection for query string
    var @params = new NameValueCollection
    {
        //Azure AD will return an authorization code.
        {"response_type", "code"},

        //Client ID is used by the application to identify themselves to the users that they are requesting permissions from.
        //You get the client id when you register your Azure app.
        {"client_id", Settings.Default.ClientID},

        //Resource uri to the Power BI resource to be authorized
        //The resource uri is hard-coded for sample purposes
        {"resource", "https://analysis.windows.net/powerbi/api"},

        //After app authenticates, Azure AD will redirect back to the web app. In this sample, Azure AD redirects back
        //to Default page (Default.aspx).
        { "redirect_uri", Settings.Default.RedirectUri}
    };

    //Create sign-in query string
    var queryString = HttpUtility.ParseQueryString(string.Empty);
    queryString.Add(@params);

    //Redirect to Azure AD Authority
    //  Authority Uri is an Azure resource that takes a client id and client secret to get an Access token
    //  QueryString contains
    //      response_type of "code"
    //      client_id that identifies your app in Azure AD
    //      resource which is the Power BI API resource to be authorized
    //      redirect_uri which is the uri that Azure AD will redirect back to after it authenticates

    //Redirect to Azure AD to get an authorization code
    Response.Redirect(String.Format("https://login.windows.net/common/oauth2/authorize?{0}", queryString));
}

Schritt 2: Abrufen eines Zugriffstokens über den Autorisierungscode

Im ersten Schritt zum Abrufen eines Autorisierungszugriffstokens erhalten Sie von Azure AD einen Autorisierungscode. Nach der Weiterleitung durch Azure AD mit einem Autorisierungscode an Ihre Web-App verwenden Sie den Autorisierungscode, um ein Zugriffstoken abzurufen. Im Folgenden finden Sie eine C#-Methode zum Abrufen eines Zugriffstokens. Im nächsten Abschnitt rufen Sie ein Dashboard über ein Zugriffstoken ab.

Abrufen eines Zugriffstokens

public string GetAccessToken(string authorizationCode, string clientID, string clientSecret, string redirectUri)
{
    //Redirect uri must match the redirect_uri used when requesting Authorization code.
    //Note: If you use a redirect back to Default, as in this sample, you need to add a forward slash
    //such as http://localhost:13526/

    // Get auth token from auth code       
    TokenCache TC = new TokenCache();

    //Values are hard-coded for sample purposes
    string authority = "https://login.windows.net/common/oauth2/authorize";
    AuthenticationContext AC = new AuthenticationContext(authority, TC);
    ClientCredential cc = new ClientCredential(clientID, clientSecret);

    //Set token from authentication result
    return AC.AcquireTokenByAuthorizationCode(
        authorizationCode,
        new Uri(redirectUri), cc).AccessToken;
}

Abrufen eines Dashboards mit einem Zugriffstoken

Mit diesem Zugriffstoken können Sie den Vorgang Get Dashboards (Dashboards abrufen) aufrufen. Der Vorgang Get Dashboards (Dashboards abrufen) gibt eine Liste von Dashboards zurück. Sie können aus dieser Dashboardliste dann ein Dashboard abrufen. Im Folgenden finden Sie eine vollständige C#-Methode zum Abrufen eines Dashboards. Nachdem Sie ein Dashboard abgerufen haben, können Sie noch eine Kachel abrufen. Siehe Schritt 3: Abrufen einer Power BI-Kachel.

Abrufen von Dashboards

//Get a dashboard id.
protected string GetDashboard(int index)
{
    string dashboardId = string.Empty;

    //Configure tiles request
    System.Net.WebRequest request = System.Net.WebRequest.Create(
        String.Format("{0}Dashboards",
        baseUri)) as System.Net.HttpWebRequest;

    request.Method = "GET";
    request.ContentLength = 0;
    request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));

    //Get dashboards response from request.GetResponse()
    using (var response = request.GetResponse() as System.Net.HttpWebResponse)
    {
        //Get reader from response stream
        using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
        {
            //Deserialize JSON string
            PBIDashboards dashboards = JsonConvert.DeserializeObject<PBIDashboards>(reader.ReadToEnd());

            //Sample assumes at least one Dashboard with one Tile.
            //You could write an app that lists all tiles in a dashboard
            dashboardId = dashboards.value[index].id;
        }
    }

    return dashboardId;
}

//Power BI Dashboards used to deserialize the Get Dashboards response.
public class PBIDashboards
{
    public PBIDashboard[] value { get; set; }
}
public class PBIDashboard
{
    public string id { get; set; }
    public string displayName { get; set; }
}

Nächster Schritt

Um eine Kachel in eine App zu integrieren, müssen Sie zunächst eine Kachel abrufen. Im nächsten Schritt erhalten Sie Informationen zum Abrufen einer Power BI-Kachel.

Nächster Schritt >

Siehe auch

Registrieren bei Power BI
Exemplarische Vorgehensweise zum Integrieren einer Kachel in eine App
Beispiel zum Integrieren einer Kachel
Konfigurieren des Beispiels zum Integrieren einer Kachel
Azure AD-Authorization Code Grant-Datenfluss
Vorgang „Get Dashboards“ (Dashboards abrufen)
Schritt 3: Abrufen einer Power BI-Kachel
Weitere Fragen? Wenden Sie sich an die Power BI-Community