Tutorial: Embed Power BI paginated reports into an application for your organization
In Power BI, you can embed paginated reports into an application for your organization by using the user owns data scenario.
Paginated reports are reports designed for high-quality printing. Usually these reports contain a lot of data, rendered in a way that makes it fit printed pages. To understand how Power BI supports paginated reports, see What are paginated reports in Power BI Premium?
User owns data lets your application extend the Power BI service so it can use embedded analytics. This tutorial demonstrates how to integrate a paginated report into an application.
In this tutorial, you learn the following tasks:
- Register an application in Azure.
- Embed a Power BI paginated report into an application using your Power BI tenant.
To get started, you're required to have:
You need to have your own Azure Active Directory tenant setup.
At least a P1 capacity. See What size Premium capacity do I need for paginated reports?
If you're not signed up for Power BI Pro, sign up for a free trial before you begin.
Set up your Power BI environment
Follow the instructions in this section to set up Power BI for embedding your paginated reports.
Register a server-side web application app
Follow the instructions in Register an Azure AD application to use with Power BI to register a server-side web application app.
When registering the app, make sure to do the following:
- Get the application secret
- Apply the Report.ReadAll permissions (scope) to your app.
Create a dedicated capacity
By creating a dedicated capacity, you can take advantage of having a dedicated resource for the content in your app workspace. For paginated reports, you must back your app workspace with at least a P1 capacity. You can create a dedicated capacity by using Power BI Premium.
The following table lists the Power BI Premium SKUs that can be used to create a dedicated capacity for paginated reports in Microsoft Office 365:
|Capacity node||Total vCores
(back end + front end)
|Back-end vCores||Front-end vCores||DirectQuery/live connection limits|
|P1||8 vCores||4 vCores, 25 GB of RAM||4 vCores||30 per second|
|P2||16 vCores||8 vCores, 50 GB of RAM||8 vCores||60 per second|
|P3||32 vCores||16 vCores, 100 GB of RAM||16 vCores||120 per second|
|P4||64 vCores||32 vCores, 200 GB of RAM||32 vCores||240 per second|
|P5||128 vCores||64 vCores, 400 GB of RAM||64 vCores||480 per second|
Enable paginated reports workload
You need to enable the paginated report workload on your dedicated capacity.
Sign into Power BI > Admin portal > Capacity settings.
Select the capacity that has the workspace you want to upload the paginated report to.
Activate the paginated reports workload.
Assign an app workspace to a dedicated capacity
After you create a dedicated capacity, you can assign your app workspace to that dedicated capacity. To complete this process, follow these steps:
Within the Power BI service, expand workspaces and select More for the workspace you're using for embedding your content. Then select Workspace settings.
Select Premium and enable Dedicated capacity. Select the dedicated capacity you created. Then select Save.
After you select Save, you should see a diamond next to the app workspace name.
Create and publish your Power BI paginated reports
You can create your paginated reports by using the Power BI Report Builder. Then you can upload the report to an app workspace assigned to at least a P1 capacity, and turn on the paginated reports workload. The end user uploading the report must have a Power BI Pro license to publish to an app workspace.
Embed your content by using the sample application
This sample is deliberately kept simple for demonstration purposes.
Follow the steps below to start embedding your content using the sample application.
Download PowerBI-Developer-Samples, and open .NET Framework > Embed for your organization > integrate-web-app > PBIWebApp.
Open the Cloud.config file in the sample application, and fill in the following fields to run your application:
Fill in the applicationId information with the Application ID from Azure. The applicationId is used by the application to identify itself to the users from which you're requesting permissions.
To get the applicationId, follow these steps:
Sign into the Azure portal.
In the left-hand navigation pane, select All Services, and select App Registrations.
Select the application that needs the applicationId.
There's an Application ID that is listed as a GUID. Use this Application ID as the applicationId for the application.
Fill in the workspaceId information with the app workspace (group) GUID from Power BI. You can get this information either from the URL when signed into the Power BI service or using PowerShell.
Get-PowerBIworkspace -name "User Owns Embed Test"
Fill in the reportId information with the report GUID from Power BI. You can get this information either from the URL when signed into the Power BI service or using PowerShell.
Get-PowerBIworkspace -name "User Owns Embed Test" | Get-PowerBIReport -Name "Sales Paginated Report"
Fill in the AADAuthorityUrl information with the URL that either allows you to embed within your organizational tenant or embed with a guest user.
For embedding with your organizational tenant, use the URL - https://login.microsoftonline.com/common/oauth2/authorize.
For embedding with a guest, use the URL - https://login.microsoftonline.com/report-owner-tenant-id - where you add the tenant ID of the report owner in replacement of report-owner-tenant-id.
Run the application
Select Run in Visual Studio.
Then select Embed Report. Depending on which content you choose to test with - reports, dashboards or tiles - then select that option in the application.
Now you can view the report in the sample application.
In this tutorial, you learned how to embed Power BI paginated reports into an application by using your Power BI organization account.
If you have more questions, try asking the Power BI Community.