Power Bi Developer Embedded
Power Bi Developer Embedded
Get started
b GET STARTED
h WHAT'S NEW
Multitenancy solutions
i REFERENCE
Client APIs
h WHAT'S NEW
g TUTORIAL
c HOW-TO GUIDE
i REFERENCE
Y ARCHITECTURE
Capacity planning
p CONCEPT
Power BI permissions
h WHAT'S NEW
Playground
i REFERENCE
Developer center
Power BI libraries
Learn
d TRAINING
i REFERENCE
Power BI embedded analytics allows you to embed your Power BI items such as reports,
dashboards and tiles, in a web application or in a website. You can:
Deliver compelling data experiences for your end users, enabling them to take
action based on insights from your solutions data.
Secure embed
Secure embed is the simplest no-code way to embed a report into any portal that
accepts a URL or iFrame. The viewer of the report must have the proper Power BI license.
The viewer can interact with the report, but not edit, save, or make any changes to it.
Secure embed is available in the Power BI service.
For more advanced solutions that give your users more flexibility and control, use one of
the Power BI embedded analytics solutions described in this article.
ノ Expand table
Also known as app owns data Also known as user owns data
To authenticate app users, use your own App users authenticate against Microsoft
authentication method Entra ID
App users don't need a license Each app user needs a Power BI license
Non-interactive authentication. Your app uses a Interactive authentication. Your app uses the
service principal or a master user to authenticate app user's credentials to authenticate
Tip
) Important
Free trial tokens are limited to development testing only. Once going to
production, a capacity must be purchased. Until a capacity is purchased, the Free
trial version banner will continue to appear at the top of the embedded report.
There are two types of Power BI embedded analytics offerings. Each offer includes a
different type of SKU that you use to buy a Power BI capacity:
For more information about the differences between the Embedded and Premium SKUs,
see Capacity and SKUs in Power BI embedded analytics.
Related content
Capacity and SKUs in Power BI embedded analytics
Tutorial: Embed Power BI content using a sample embed for your customers
application
Tutorial: Embed Power BI content using a sample embed for your organization
application
Power BI embedded analytics setup tool
Feedback
Was this page helpful? Yes No
Each experience within Microsoft Fabric supports unique operations. An operation's consumption rate is what
converts the usage of the experience's raw metrics into Compute Units (CU).
The Microsoft Fabric Capacity Metrics app's compute page provides an overview of your capacity's
performance and lists Fabric operations that consume compute resources.
This article lists these operations by experience, and explains how they consume resources within Fabric.
Interactive operations
On-demand requests and operations that can be triggered by user interactions with the UI, such as data
model queries generated by report visuals, are classified as interactive operations. They're usually triggered by
user interactions with the UI. For example, an interactive operation is triggered when a user opens a report or
clicks on a slicer in a Power BI report. Interactive operations can also be triggered without interacting with the
UI, for example when using SQL Server Management Studio (SSMS) or a custom application to run a DAX
query.
Background operations
Longer running operations such as semantic model or dataflow refreshes are classified as background
operations. They can be triggered manually by a user, or automatically without user interaction. Background
operations include scheduled refreshes, interactive refreshes, REST-based refreshes and XMLA-based refresh
operations. Users aren't expected to wait for these operations to finish. Instead, they might come back later to
check the status of the operations.
Operation – The name of the operation. Visible in the Microsoft Fabric Capacity Metrics app.
Item – The item that this operation can apply to. Visible in the Microsoft Fabric Capacity Metrics app.
Azure billing meter – The name of the meter on your Azure bill that shows usage for this operation.
Type – Lists the type of the operation. Operations are classified as interactive or background operations.
When more details regarding the consumption rate are available, a link to the document with this information
is provided.
Fabric operations by experience
This section is divided into Fabric experience. Each experience had a table that lists its operations.
) Important
Consumption rates are subject to change at any time. Microsoft will use reasonable efforts to provide
notice via email or through in-product notification. Changes shall be effective on the date stated in
Microsoft's Release Notes or Microsoft Fabric blog . If any change to a Microsoft Fabric Workload
Consumption Rate materially increases the Capacity Units (CU) required to use a particular workload,
customers might use the cancellation options available for the chosen payment method.
Copilot in Fabric
Copilot operations are listed in this table. You can find the consumption rates for Copilot in Copilot
consumption.
ノ Expand table
Copilot in Compute cost associated with input prompts and output Multiple Copilot in Fabric Background
Fabric completion CU
Data Factory
The Data Factory experience contains operations for Dataflows Gen2 and Pipelines.
Dataflows Gen2
You can find the consumption rates for Dataflows Gen2 in Dataflow Gen2 pricing for Data Factory in Microsoft
Fabric.
ノ Expand table
Dataflow Gen2 Refresh Compute cost associated with Dataflow Dataflows Standard Background
dataflow Gen2 refresh Gen2 Compute Capacity
operation Usage CU
High Scale Dataflow Compute - Usage related to the dataflow Warehouse High Scale Dataflow Background
SQL Endpoint Query Gen2 staging warehouse SQL Compute Capacity
endpoint Usage CU
Pipelines
You can find the consumption rates for Pipelines in Data pipelines pricing for Data Factory in Microsoft Fabric.
ノ Expand table
DataMovement The amount of time used by the copy activity in a Pipeline Data Movement Background
Data Factory pipeline divided by the number of data Capacity Usage CU
integration units
ActivityRun A Data Factory data pipeline activity execution Pipeline Data Orchestration Background
Capacity Usage CU
Data Warehouse
One Synapse Data Warehouse core (unit of compute for Data Warehouse) is equivalent to two Fabric Capacity
Units (CUs).
ノ Expand table
Warehouse Compute charge for all user generated and system Warehouse Data Warehouse Background
Query generated T-SQL statements within a Warehouse Capacity Usage CU
SQL Endpoint Compute charge for all user generated and system Warehouse Data Warehouse Background
Query generated T-SQL statements within a SQL Endpoint Capacity Usage CU
ノ Expand table
Query Compute charge for all generated GraphQL queries GraphQL API for GraphQL Query Interactive
(reads) and mutations (writes) by clients within a GraphQL Capacity Usage CU
API
OneLake
One Lake compute operations represent the transactions performed on One Lake items. The consumption rate
for each operation varies depending on its type. For more details, refer to One Lake consumption.
ノ Expand table
OneLake Read via Redirect OneLake Read via Redirect (Multiple) OneLake Background
Read
Operations
Operation Description Item Azure Type
Billing
Meter
Capacity
Usage CU
OneLake Read via Proxy OneLake Read via Proxy (Multiple) OneLake Background
Read
Operations
via API
Capacity
Usage CU
OneLake Write via Redirect OneLake Write via Redirect (Multiple) OneLake Background
Write
Operations
Capacity
Usage CU
OneLake Write via Proxy OneLake Write via Proxy (Multiple) OneLake Background
Write
Operations
via API
Capacity
Usage CU
OneLake Iterative Write via Redirect OneLake Iterative Write via Redirect (Multiple) OneLake Background
Iterative
Write
Operations
OneLake Iterative Read via Redirect OneLake Iterative Read via Redirect (Multiple) OneLake Background
Iterative
Read
Operations
Capacity
Usage CU
OneLake Other Operations via Redirect OneLake Other Operations via Redirect (Multiple) OneLake Background
Other
Operations
via API
Capacity
Usage CU
OneLake Iterative Write via Proxy OneLake Iterative Write via Proxy (Multiple) OneLake Background
Iterative
Write
Operations
via API
Capacity
Usage CU
OneLake Iterative Read via Proxy OneLake Iterative Read via Proxy (Multiple) OneLake Background
Iterative
Operation Description Item Azure Type
Billing
Meter
Read
Operations
via API
Capacity
Usage CU
OneLake BCDR Read via Proxy OneLake BCDR Read via Proxy (Multiple) OneLake Background
BCDR
Read
Operations
via API
Capacity
Usage CU
OneLake BCDR Write via Proxy OneLake BCDR Write via Proxy (Multiple) OneLake Background
BCDR
Write
Operations
via API
Capacity
Usage CU
OneLake BCDR Read via Redirect OneLake BCDR Read via Redirect (Multiple) OneLake Background
BCDR
Read
Operations
Capacity
Usage CU
OneLake BCDR Write via Redirect OneLake BCDR Write via Redirect (Multiple) OneLake Background
BCDR
Write
Operations
Capacity
Usage CU
OneLake BCDR Iterative Read via Proxy OneLake BCDR Iterative Read via Proxy (Multiple) OneLake Background
BCDR
Iterative
Read
Operations
via API
Capacity
Usage CU
OneLake BCDR Iterative Read via Redirect OneLake BCDR Iterative Read via Redirect (Multiple) OneLake Background
BCDR
Iterative
Read
Operations
Capacity
Usage CU
OneLake BCDR Iterative Write via Proxy OneLake BCDR Iterative Write via Proxy (Multiple) OneLake Background
BCDR
Iterative
Write
Operations
Operation Description Item Azure Type
Billing
Meter
via API
Capacity
Usage CU
OneLake BCDR Iterative Write via Redirect OneLake BCDR Iterative Write via Redirect (Multiple) OneLake Background
BCDR
Iterative
Write
Operations
Capacity
Usage CU
OneLake BCDR Other Operations OneLake BCDR Other Operations (Multiple) OneLake Background
BCDR
Other
Operations
Capacity
Usage CU
OneLake BCDR Other Operations Via Redirect OneLake BCDR Other Operations Via Redirect (Multiple) OneLake Background
BCDR
Other
Operations
via API
Capacity
Usage CU
Power BI
The usage for each operation is reported in CU processing time in seconds. Eight CUs are equivalent to one
Power BI v-core.
7 Note
The term Semantic model replaces the term dataset. You may still see the old term in the UI until it is
completely replaced.
ノ Expand table
Background query Queries for refreshing tiles and creating report Semantic Power BI Background
snapshots model Capacity
Usage CU
Dataflow DirectQuery Connect directly to a dataflow without the need to Dataflow Power BI Interactive
import the data into a semantic model Gen1 Capacity
Usage CU
Operation Description Item Azure billing Type
meter
Semantic model on- A background semantic model refresh initiated by Semantic Power BI Background
demand refresh the user, using the service, REST APIs, or public model Capacity
XMLA endpoints Usage CU
Semantic model A scheduled background semantic model refresh, Semantic Power BI Background
scheduled refresh performed by the service, REST APIs, or public XMLA model Capacity
endpoints Usage CU
Full report email A PDF or PowerPoint copy of an entire Power BI Report Power BI Background
subscription report, attached to an email subscription Capacity
Usage CU
Interactive query Queries initiated by an on-demand data request Semantic Power BI Interactive
from a user. For example, loading a model when model Capacity
opening a report, or user interaction with a report Usage CU
PublicApiExport A Power BI report exported with the export report to Report Power BI Background
file REST API Capacity
Usage CU
Web modeling read A data model read operation in the semantic model Semantic Power BI Interactive
web modeling user experience model Capacity
Usage CU
Web modeling write A data model write operation in the semantic model Semantic Power BI Interactive
web modeling user experience model Capacity
Usage CU
XMLA read XMLA read operations initiated by the user, for Semantic Power BI Interactive
queries and discoveries model Capacity
Usage CU
XMLA write A background XMLA write operation that changes Semantic Power BI Background
the model model Capacity
Usage CU
Real-Time Intelligence
The Real-Time Intelligence experience contains operations for Event streams and KQL Database and KQL
Queryset.
Event streams
You can find the consumption rates for Event streams in Monitor capacity consumption for Microsoft Fabric
event streams.
ノ Expand table
Eventstream Per Hour Ingestion or processing for Event eventstream Capacity Usage CU Background
Event Stream Stream
Eventstream Data Traffic Data Ingress and Egress Event eventstream Data Traffic per GB Background
per GB Stream Capacity Usage CU
ノ Expand table
KustoUpTime Measure of the time that the KQL KQL Database or KQL KQL Database Capacity Interactive
database is Active Queryset Usage CU
Spark
Two Spark VCores (a unit of computing power for Spark) equals one capacity unit (CU). To understand how
Spark operations consume CUs, refer to spark pools.
ノ Expand table
Lakehouse Users preview table in the Lakehouse Lakehouse Spark Memory Optimized Background
operations explorer Capacity Usage CU
Lakehouse table Users load delta table in the Lakehouse Lakehouse Spark Memory Optimized Background
load explorer Capacity Usage CU
Notebook run Synapse Notebook runs manually by Synapse Spark Memory Optimized Background
users Notebook Capacity Usage CU
Notebook HC run Synapse Notebook runs under the high Synapse Spark Memory Optimized Background
concurrency Spark session Notebook Capacity Usage CU
Notebook Synapse Notebook runs triggered by Synapse Spark Memory Optimized Background
scheduled run notebook scheduled events Notebook Capacity Usage CU
Notebook Synapse Notebook runs triggered by Synapse Spark Memory Optimized Background
pipeline run pipeline Notebook Capacity Usage CU
Notebook VS Synapse Notebook runs in VS Code. Synapse Spark Memory Optimized Background
Code run Notebook Capacity Usage CU
Operation Description Item Azure billing meter Type
Spark job run Spark batch job runs initiated by user Spark Job Spark Memory Optimized Background
submission Definition Capacity Usage CU
Spark job Synapse batch job runs triggered by Spark Job Spark Memory Optimized Background
scheduled run notebook scheduled events Definition Capacity Usage CU
Spark job Synapse batch job runs triggered by Spark Job Spark Memory Optimized Background
pipeline run pipeline Definition Capacity Usage CU
Spark job VS Synapse Spark job definition submitted Spark Job Spark Memory Optimized Background
Code run from VS Code Definition Capacity Usage CU
Related content
What is the Microsoft Fabric Capacity Metrics app?
Feedback
Was this page helpful? Yes No
The Power BI enhanced report format (PBIR) for Power BI Project files (PBIP) marks a
milestone in achieving the primary goal of Power BI Desktop developer mode. It
provides source-control friendly file formats to unblock codevelopment and enhance
development efficiency.
Power BI Projects (PBIP) support saving the report and semantic model into a folder
using source-control friendly formats:
The PBIR file format simplifies tracking changes and resolving merge conflicts. It uses
properly formatted JSON and organizes each visual, page, bookmark, and so on, in
separate individual files within a folder structure.
How to enable it
PBIR is currently in preview. You can only create or convert existing Power BI project files
to PBIR by using Power BI Desktop. You must first enable the feature in Power BI
Desktop preview features.
1. Go to File > Options and settings > Options > Preview features.
2. Check the box next to Store reports using enhanced metadata format (PBIR).
During preview, Fabric Git Integration and Fabric REST APIs continue to use PBIR-legacy
(report.json) when exporting the report definitions. However, if the report is imported
into Fabric using PBIR format, then both features start exporting the report definition
using PBIR format. At general availability (GA), PBIR will become the default report
format.
Limitations
Initially, the PBIR format has some service restrictions, such as these:
Next steps
Power BI embedded analytics overview
The Power BI embedded analytics playground
Feedback
Was this page helpful? Yes No
The Power BI embedded analytics playground makes it easy for you to learn, explore,
and try out Power BI embedded analytics. It’s also where you can keep up with all the
new features and updates of Power BI embedded.
The playground gives you hands-on coding experience. It also lets you embed your own
reports and interact with Power BI client APIs that give you instant results.
Developer sandbox
Explore the APIs
Showcases
Learning center
Developer sandbox
Go to the developer sandbox for hands-on experience using the client APIs. You can use
the APIs with the sample report or with your own report.
Drag and drop code snippets into the report or type them directly into the code editor
area to see how they work.
You can choose between JavaScript and TypeScript for writing your code. All API code
snippets then update based on your selection. The last language you use saves for next
time.
Explore our APIs
You can interact with code snippets and embed reports, dashboards, Q&As, and more in
Explore our APIs.
Showcases
The interactive showcases let you see how to apply these features in your applications.
Each showcase presents an application that demonstrates what you can do with one or
more of the client APIs.
The showcases code is open-sourced, and you can find the code behind all of them in
our GitHub repository .
Embedded Demo
The Embedded Demo is a great way for developers to quickly and easily get an idea
how Power BI Embedded would look and feel in their own apps without any need for
prior setup or configuration. First, go through the demo to generate your code and run
it in your app. Then, when you're ready, select the best solution for your needs and get
started with development.
Learning center
The Learning center is a collection of Power BI embedded analytics resources. It's where
you can dive into the documentation, learn about the APIs, find developer samples and
videos, and learn where to get help.
Related content
Explore the embedded analytics playground
Feedback
Was this page helpful? Yes No
This article shows you how to create a new Microsoft Entra tenant to use when creating
a custom app that calls Power BI REST APIs.
Once you have a Microsoft Entra tenant, you can define an application and assign it
permissions so it can call Power BI REST APIs.
Your organization may already have a Microsoft Entra tenant that you can use for your
app, or you can create a new tenant specifically for your app. This article shows how to
create a new tenant.
Follow the directions in Quickstart: Create a new tenant in Microsoft Entra ID to create a
new Microsoft Entra ID.
Provide the relevant Organization name, Initial domain name and Country/Region.
7 Note
Your initial domain is part of onmicrosoft.com. You can add other domain names
later. A tenant directory can have multiple domains assigned to it.
Create Microsoft Entra tenant users
When you create a new Microsoft Entra tenant, you become the first user of that tenant.
As the first user, you're automatically assigned the Global Admin role. Add new users by
navigating to the Users page.
Create a master user to use as your master embedding account. You can think of the
master user account as a service account.
1. In the home page of the Azure portal, select the Microsoft Entra ID tab.
5. Sign up for Power BI with the user account that you created in step 4. Go to
powerbi.com and select Try Power BI for free.
When you sign up, you're prompted to try Power BI Pro free for 60 days. You can
opt into that to become a Pro user, which gives you the option to start developing
an embedded solution.
7 Note
Make sure you sign up with your user account's email address.
Related content
Now that you have a Microsoft Entra tenant, you can use this tenant to test items within
Power BI. You can also embed Power BI dashboards and reports in your app. For more
information, see How to embed your Power BI dashboards, reports, and tiles.
Register an app
Quickstart: Set up a dev environment
Feedback
Was this page helpful? Yes No
If you want to start using Power BI Embedded to share your reports with others, use the
Power BI embedded analytics setup tool to get started. This article shows you how.
To use Power BI embedded analytics, you need to register a Microsoft Entra application
in Azure. The Microsoft Entra app establishes permissions for Power BI REST resources,
and allows access to the Power BI REST APIs.
Prerequisite
To set up a Power BI embedded analytics environment, you need one of the following:
For more about the two solutions, see What are the Power BI embedded analytics
solutions?.
If you prefer to manually set up your environment, skip the steps in the following
sections. Instead, follow the steps in Manual registration, later in this article.
) Important
To use the tool to set up your environment, go to the Power BI embedded analytics
setup tool . Select the embedding option that you want.
7 Note
If you're already signed in, verify that you're signed in with the user you want
to use to create the Microsoft Entra app. To change users, select sign out.
After the tool restarts, sign in with the correct user.
1. To register your application for your customers, fill in the following fields:
API access - Select the Power BI APIs (also known as scopes) that your
application needs. You can select Select all to select all the APIs. For
more information about Power BI access permissions, see Permissions
and consent in the Microsoft identity platform endpoint.
2. Select Register.
To create a workspace, enter a name for your workspace, and then select Create
workspace. Your workspace name and ID appear in the Summary box. Copy these
values for later use.
Tip
For the embedded analytics sample app to work as expected, you have to
use the tool to create a workspace.
If you have your own Power BI app, you can select Skip.
If you want to create a sample Power BI app by using a sample report, select
Sample Power BI report, and then select Import.
If you want to create a sample Power BI app by using your own report, select
Upload a .pbix file, browse for your file, and then select Import.
7 Note
If you skipped the optional stages, you can still download a sample Power BI app.
However, the code in the downloaded app lacks the properties that get filled in
during registration. For example, if you don't create a workspace, the sample app
doesn't include the workspace ID.
Make sure you copy all the information in the Summary box. Your Power BI embedding
environment is ready to use.
Manual registration
If you didn't use the Power BI embedded analytics setup tool, use the procedure in this
section to manually register a Microsoft Entra app. But take these steps only if you're
creating one of the following solutions:
An embed-for-your-organization application
An embed-for-your-customers application with a service principal
For more information about how to register applications in Microsoft Entra ID, see
Register an application with the Microsoft identity platform.
2. Select your Microsoft Entra tenant by selecting your account in the upper-right
corner of the page.
3. Select App registrations. If you don't see this option, search for it.
7. Select Register. After your app is registered, you're directed to your app's overview
page, where you can obtain the Application ID.
Related content
More questions? Try asking the Power BI Community .
Feedback
Was this page helpful? Yes No
To configure credentials programmatically for Power BI, follow the steps in this article.
Configuring credentials programmatically also allows you to encrypt credentials.
7 Note
The calling user must be a semantic model owner or a gateway admin. You
can also use a service principal. For example, the service principal can be the
semantic model owner.
Cloud data sources and their corresponding credentials are managed at the
user level.
C#
// Select a datasource
var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
var datasource = datasources.First();
2. Build the credentials string according to the Update Datasource Examples. The
contents of the credentials string depends on the type of credentials.
.NET SDK v3
C#
If you're using cloud data sources, don't follow the next steps in this section.
Call Update Datasource to set the credentials by using the gateway ID and
data source ID that you obtained in step 1.
C#
.NET SDK v3
C#
.NET SDK v3
Use the AsymetricKeyEncryptor class with the public key retrieved in Step 3.
C#
C#
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value,
datasource.DatasourceId.Value, new
UpdateDatasourceRequest(credentialDetails));
Configure a new data source for a data
gateway
1. Install the On-premises data gateway on your machine.
C#
// Select a gateway
var gateways = pbiClient.Gateways.GetGateways().Value;
var gateway = gateways.First();
3. Build credential details by following the procedure that is described in the update
credentials flow for data sources section by using the gateway public key that you
retrieved in step 2.
C#
C#
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Credential types
When you call Create Datasource or Update Datasource from the Power BI REST API on
an enterprise on-premises gateway, encrypt the credentials value by using the gateway
public key.
7 Note
.NET SDK v3 can also run the following .NET SDK v2 examples.
.NET SDK v3
C#
// Windows credentials
var credentials = new WindowsCredentials(username: "john", password:
"*****");
// Or
// Basic credentials
var credentials = new BasicCredentials(username: "john", password:
"*****");
Key credentials
.NET SDK v3
C#
OAuth2 credentials
.NET SDK v3
C#
Anonymous credentials
.NET SDK v3
C#
Troubleshooting
After you create the semantic model, an automatic binding is created between the
semantic model and a suitable gateway, which contains matching data sources for all
connections. The automatic binding fails if there's no suitable gateway or gateways.
If you're using on-premises semantic models, create the missing on-premises data
sources, and bind the semantic model to a gateway manually by using Bind To Gateway.
Related content
Power BI REST APIs
Feedback
Was this page helpful? Yes No
When you register your Microsoft Entra app, you grant it permission to access various
APIs. As your needs change, you might want to adjust these permissions. This article
shows you how.
7 Note
Microsoft Entra app permissions are only applicable for these scenarios:
Azure portal
In the Azure portal, you can view your app and make changes to its permissions.
2. Select your Microsoft Entra tenant by selecting your account in the upper right
corner of the page.
3. Select App registrations. If you can't see this option, search for it.
4. From the Owned applications tab, select your app. The application opens in
the Overview tab, where you can review the Application ID.
7. To add permissions, follow these steps (note that the first step is different for
GCC apps):
7 Note
For GCC apps, Select the APIs my organization uses tab, and search
for either Microsoft Power BI Government Community Cloud OR
fc4979e5-0aa5-429f-b13a-5d1365be5566.
Feedback
Was this page helpful? Yes No
To embed content from an app, the user needs access to the app that contains the
content to embed. If the app isn't installed, the embedding will fail. To make embedding
content from an app easier, you can set up automatic app installation in PowerBI.com
for your organization. Defining automatic app installation is a tenant level action and
applies to all apps.
Secure embedding
To use automatic application installation, the app creator must install the app. Then the
app creator must go to the app on PowerBI.com, navigate to the report, and get the link.
All other users with access to the app that can use the link can embed the report.
This article provides recommendations for faster rendering of reports, dashboards, and
tiles in your application.
7 Note
Remember that loading time mainly depends on elements relevant to the report
and data itself, including visuals, the size of the data, and the complexity of the
queries and measures. For more information, see the Power BI optimization guide.
Initialize embedding
Preload
Use powerbi.preload() to improve the end-user performance. The method
powerbi.preload() downloads JavaScript, css files, and other items, which are used later
to embed a report.
Call powerbi.preload() if you're not embedding the report immediately. For example, if
the embedded Power BI content doesn't appear in the home page, use
powerbi.preload() to download and cache the items that are used for embedding the
content.
parameters are available. The bootstrap API prepares and initializes the iFrame. When
using the bootstrap API, it's still required to call powerbi.embed(element, config) on the
same HTML element.
For example, one of the use cases for this feature, is to run the iFrame bootstrap and the
back-end calls for embedding, in parallel.
Tip
Use the bootstrap API when possible to generate the iFrame before it's visible to
the end user.
When embedding a report or other Power BI items, make sure that the embed container
is part of the DOM and that the display CSS attribute is not set to none as this can cause
unexpected behaviors. If you want to hide the embed container, consider using the
visibility CSS attribute.
Embed parameters
The powerbi.embed(element, config) method receives an element and a config
parameter. The config parameter includes fields that have performance implications.
Embed URL
Avoid generating the embed URL yourself. Instead, make sure you get the Embed URL
by calling Get reports, Get dashboards, or Get tiles API. The config parameter in the URL
is used for performance improvements.
Permissions
Provide View permissions if you don't intend to embed a report in edit mode. This way,
time isn't spent initializing components that are only used in edit mode.
If you embed reports with the same filters, bookmarks, and slicers, save the report with
the filters, bookmarks, and slicers already applied. When you save the report this way, it
renders using the cached data that includes the filters, bookmarks, and slicers, which
improves performance.
7 Note
Embedding reports using embed for your customers (also known as an 'app owns
data' scenario), requires the use of an embed token with permissions to all reports
and semantic models. For more information, see the generate token API.
Multiple visuals
When embedding several visuals from the same report, don't generate a new iFrame for
each visual. Use a single iFrame to render the report with the specified visuals.
When embedding multiple visuals into a single iFrame, consider the following points:
Power BI uses iFrames to embed a report. Sometimes you might want to add more
content between the visuals (for example, text or graphics that don't come from
the report). In that case, you might need a different iFrame to render different
visuals. For best performance, try and arrange the visuals so that you use the
fewest iFrames possible. To reduce the number of iFrames, consider using the
custom-layout feature.
If you have visuals from different reports or different semantic models, consider
joining the semantic models and creating a new report so that you can include all
the visuals in the same iFrame.
Another alternative, if you have noncontiguous regions, or data from multiple
semantic models, is to create a dashboard and pin the visuals to it. This allows you
to:
Embed the individual tiles into noncontiguous iFrames. Dashboard tiles are
lighter than reports and load faster.
Embed the entire dashboard into one iFrame. This allows you to have visuals
from different reports or semantic models in one iFrame without creating a new
report.
Keep in mind, however, that dashboard tiles aren't interactive and don't refresh
with the same frequency as visuals.
Query caching
Organizations with Power BI Premium capacity or Power BI Embedded capacity can take
advantage of query caching to speed up reports associated with a semantic model.
Measure performance
Performance events
To measure embedded performance, you can use two events:
1. Loaded event: The time until the report is initialized (the Power BI logo disappears
when the load is finished).
2. Rendered event: The time until the report is fully rendered, using the actual data.
The rendered event is fired each time the report is re-rendered (for example, after
applying filters). To measure a report, make sure you do the calculations on the
first raised event.
Performance Analyzer
To examine the performance of the report elements, you might use the Performance
Analyzer in Power BI Desktop. The Performance Analyzer allows you to see and record
logs that measure how each of your report elements performs.
Learn more about Performance Analyzer.
7 Note
Related content
Power BI optimization guide
How to troubleshoot Power BI embedded analytics issues
Power BI embedded analytics FAQ
Feedback
Was this page helpful? Yes No
When you have critical applications and business processes that rely on Azure resources,
you want to monitor those resources for their availability, performance, and operation.
This article describes the monitoring data that Microsoft Power BI Embedded generates
and how you can use the features of Azure Monitor to analyze and set alerts for this
data.
Tip
You can also use the Microsoft Fabric Capacity Metrics app to monitor your
capacity.
Resource group: The resource group the Power BI Embedded instance belongs to
Status: The status of the Power BI Embedded instance
Location: The location of the Power BI Embedded instance
Subscription: The name of the Power BI Embedded instance subscription
Subscription ID: The ID of the Power BI Embedded instance subscription
Resource name: The name of the Power BI Embedded instance
SKU: The SKU that the Power BI Embedded instance uses
Resource mode: The mode of the Power BI Embedded resource
For more information, see Monitor Azure resources with Azure Monitor to learn about:
Azure Monitor and how it's integrated into the portal for other Azure services
The types of data collected by Azure Monitor for Azure resources
Azure Monitor tools that are used to collect and analyze data
The following sections build on this article by describing the specific data gathered for
Power BI Embedded and provide examples for configuring data collection and analyzing
this data with Azure tools.
Monitoring data
Resources from different Azure services all generate monitoring data in the same format
so that you can use the same Azure Monitor tools to analyze them. Power BI Embedded
creates monitoring data in the same format as these other Azure resources.
For information on the metrics and logs metrics that Power BI Embedded creates, see
the Power BI Embedded monitoring data reference.
Resource logs aren't collected and stored until you create at least one diagnostic setting
and route it to a location. When you create a diagnostic setting, you specify which
categories of resource logs to collect. The categories for Power BI Embedded are listed
in the Power BI Embedded monitoring data reference.
For more information about how to create and configure diagnostic settings by using
the Azure portal, Azure CLI, or Azure PowerShell, see Diagnostic settings in Azure
Monitor.
Azure PowerShell
Set-AzDiagnosticSetting -ResourceId [your resource id] -
StorageAccountId [your storage account id] -Enabled $true
The storage account ID is the resource ID for the storage account where you want
to send the logs.
Azure PowerShell
Azure PowerShell
Azure PowerShell
Get the resource ID of your Log Analytics workspace with the following command:
Azure PowerShell
(Get-AzOperationalInsightsWorkspace).ResourceId
The metrics and logs you can collect are discussed in the following sections.
Analyze metrics
You can analyze metrics for Power BI Embedded with metrics from other Azure services
that use Azure Monitor metrics explorer by selecting Metrics from the Azure Monitor
menu. For information about this tool, see Get started with metrics explorer.
For a list of the platform metrics collected for Power BI Embedded, see the Monitoring
Power BI Embedded data reference.
Analyze logs
Data in Azure Monitor Logs is stored in tables where each table has its own set of
unique properties.
All resource logs available through Azure Monitor share a common top-level schema
and each service has its own service-specific schema. For information about the schema
for Power BI Embedded resource logs, see the Power BI Embedded Data Reference.
The Azure Monitor activity log is an Azure platform log that provides insight into
subscription-level events. You can view it independently or route it to Azure Monitor
Logs, where you can do much more complex queries using Log Analytics.
For a list of the types of resource logs collected for Power BI Embedded, see Resource
logs.
For a list of the tables used by Azure Monitor Logs and queryable by Log Analytics, see
Supported metrics with Azure Monitor
) Important
When you select Logs from the Power BI Embedded menu, Log Analytics opens
with the query scope set to the current Power BI Embedded resource. This means
that log queries will only include data from that resource. If you want to run a query
that includes data from another Power BI Embedded resource or data from other
Azure services, select Logs from the Azure Monitor menu. For more information,
see Log query scope and time range in Azure Monitor Log Analytics.
Here's an example of a query that completes in less than five minutes (300,000
milliseconds):
Kusto
search *
| where Type == "AzureDiagnostics"
| where ( OperationName == "QueryEnd" )
| where toint(Duration_s) < 300000
Alerts
Azure Monitor alerts proactively notify you when important conditions are found in your
monitoring data. These alerts allow you to identify and address issues in your system
before your customers notice them. You can set alerts on metrics, logs, and the activity
log.
Related content
Learn more about monitoring data:
Feedback
Was this page helpful? Yes No
Service principal is an authentication method that can be used to let an Microsoft Entra
application access Power BI service content and APIs.
When you create a Microsoft Entra app, a service principal object is created. The service
principal object, also known simply as service principal, allows Microsoft Entra ID to
authenticate your app. After it's authenticated, the app can access Microsoft Entra
tenant resources.
To authenticate, the service principal uses the Microsoft Entra app's application ID and
one of the following:
A certificate
An application secret
7 Note
We recommend that you secure your back-end services by using certificates, rather
than secret keys.
Learn more about getting access tokens from Microsoft Entra ID by using
secret keys or certificates.
To secure your solution by using a certificate, complete the instructions in this
article and then follow the steps described in Embed Power BI content with
service principal and a certificate.
Method
To use service principal and an application ID for embedded analytics, you take the
following steps. Subsequent sections describe these steps in detail.
These steps are described in step 1. For more information about creating a
Microsoft Entra app, see create a Microsoft Entra app.
) Important
5. Select Register.
6. After you register your app, the Application ID is available from the Overview tab.
Copy and save the Application ID for later use.
7. Select Certificates & secrets.
7 Note
After you leave this window, the client secret value is hidden, and you can't
view or copy it again.
After the script runs, make a note of the following information in the script output:
PowerShell
7 Note
If you want to enable service principal access for the entire organization, skip this
step.
Before you run the script, replace <app-client-ID> with the client ID that you
recorded earlier for your new app.
After you run the script, make a note of the object ID of the new security group,
which you can find in the script output.
PowerShell
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"
In the Power BI Admin portal, go to Tenant settings, and scroll down to Developer
settings.
Enable Embed content in apps either for the entire organization or for the specific
security group you created in Microsoft Entra ID.
Enable Allow service principals to use Power BI APIs either for the entire
organization or for the specific security group you created in Microsoft Entra ID.
) Important
Service principals have access to any tenant settings they're enabled for.
Depending on your admin settings, this includes specific security groups or
the entire organization.
To restrict service principal access to specific tenant settings, allow access only
to specific security groups. Alternatively, you can create a dedicated security
group for service principals, and exclude it from the desired tenant settings.
Step 4 - Add the service principal to your
workspace
Your Microsoft Entra app can access your Power BI reports, dashboards, and semantic
models only when it has access to your Power BI workspace. You provide that access by
adding the app's service principal or its security group to your workspace as a member
or admin.
There are three ways to add a service principal or its security group to your workspace:
Manually
Use PowerShell
Use the Groups - add group user API
2. In the Access pane, under Add admins, members, or contributors, add one of the
following:
Your service principal. The name of your service principal is the Display name
of your Microsoft Entra app, as it appears in your Microsoft Entra app's
overview tab.
The security group that includes your service principal.
4. Select Add.
PowerShell
PowerShell
7 Note
To secure your content by using a certificate, follow the steps described in Embed
Power BI content with service principal and a certificate.
Related content
Register an app
Power BI Embedded for your customers
Application and service principal objects in Microsoft Entra ID
Feedback
Was this page helpful? Yes No
Using this method of authentication allows managing certificates from a central place
using the certificate authority (CA) for rotation or revocation.
You can learn more about certificates in Microsoft Entra ID in the Client credential
flows GitHub page.
Method
1. Embed your content with service principal.
2. Create a certificate.
7 Note
If you already have content that's embedded using a service principal, skip this step
and advance to step 2.
This section describes creating a certificate using Azure Key Vault, and downloading the
.cer file, which contains the public key.
4. Select Certificates.
5. Select Generate/Import.
Percentage Lifetime - 80
7. Select Create. The newly created certificate is disabled by default. It can take up to
five minutes to become enabled.
9. Select Download in CER format. The downloaded file contains the public key.
Refer to the code example for reading the certificate from Azure Key Vault. If you want
to use Visual Studio, refer to Configure Visual Studio to use MSI.
C#
certificate =
keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/
", certName).Result;
secret =
keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Resul
t;
return new X509Certificate2(Convert.FromBase64String(secret.Value));
}
To connect and read the certificate from Azure Key Vault, refer to the following code
sample.
7 Note
If you already have a certificate created by your organization, upload the .pfx file to
Azure Key Vault.
C#
.WithCertificate(certificate)
.WithAuthority(tenantSpecificURL)
.Build();
return await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
}
7 Note
The user that signs into Visual Studio requires Azure Key Vault permissions to get
the certificate.
Related content
Set up Power BI Embedded
Tutorial: Embed Power BI content using a sample embed for your customers'
application
Application and service principal objects in Microsoft Entra ID
Embed a report on an on-premises SQL Server Analysis Services (SSAS)
Feedback
Was this page helpful? Yes No
Embedded analytics and Power BI Embedded (the Azure offer) allow you to embed
Power BI content such as reports, dashboards, and tiles, into your application.
To use your application, your users don't need to sign in to Power BI or have a Power BI
license.
We recommend using the embed for your customers method to embed your Power BI
content, if you're an independent software vendor (ISV) or a developer, who wants to
create applications for third parties.
) Important
If you are embedding content for a national/regional cloud, the first few steps of
this tutorial are different. See Embed content for national/regional clouds for
details.
.NET Framework
.NET Core
Java
Node JS
Python
The code samples support the following browsers:
Microsoft Edge
Google Chrome
Mozilla Firefox
Prerequisites
Before you start this tutorial, verify that you have the following the Power BI and code
dependencies:
Power BI dependencies
To authenticate your app against Power BI, you need one of the following:
Power BI Pro license - This is your master user and your app uses it to
authenticate to Power BI.
A Power BI Premium Per User (PPU) license - This is your master user and
your app uses it to authenticate to Power BI.
7 Note
Code dependencies
.NET Core
Visual Studio
The following table describes a few key differences between the service principal and
master user authentication methods.
ノ Expand table
Mechanism Your Microsoft Entra app's Your Microsoft Entra app uses the
service principal object allows credentials (username and password) of a
Microsoft Entra ID to Power BI user, to authenticate against
authenticate your embedded Power BI.
solution app against Power BI.
Power BI service You can't access Power BI You can access Power BI service with your
access service with a service principal. master user credentials.
License Doesn't require a Pro license. Requires a Power BI Pro or Premium Per
You can use content from any User (PPU) license.
workspace that you're a
member or an admin of.
To register your application with Microsoft Entra ID, follow the instructions in Register
your application.
7 Note
2. Select Workspaces.
Tip
If you already have a workspace with a report, you can skip this step.
To download a sample report and publish it to your workspace, follow these steps:
Before you embed your content, make sure you have all the values listed below. Some
of the values might differ, depending on the authentication method you're using.
ノ Expand table
Client ID
Workspace ID
Report ID
Client secret
Power BI username
Parameter Service principal Master user
Power BI password
Client ID
Tip
To get the client ID GUID (also know as application ID), follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
Workspace ID
Tip
3. Copy the GUID from the URL. The GUID is the number between /groups/ and
/reports/.
Alternatively, you can find the workspace ID in the Admin portal settings by selecting
Details next to the workspace name.
Report ID
Tip
3. Copy the GUID from the URL. The GUID is the number between /reports/ and
/ReportSection.
Client secret
Tip
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
6. In the Add a client secret pop-up window, provide a description for your
application secret, select when the application secret expires, and select Add.
7. From the Client secrets section, copy the string in the Value column of the newly
created application secret. The client secret value is your client ID.
7 Note
Make sure you copy the client secret value when it first appears. After navigating
away from this page, the client secret will be hidden and you'll not be able to
retrieve its value.
Tenant ID
Tip
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
Tip
Applies to: Service principal Master user
Obtain the username and password of the Power BI user you're using as your master
user. This is the same user you used to create a workspace and upload a report to, in
Power BI service.
Tip
This step is only relevant if you're using the service principal authentication method.
If you're using a master user, skip this step and continue with Step 7 - Enable
workspace access.
For a Microsoft Entra app to be able to access the Power BI content and APIs, a Power BI
admin needs to enable service principal access in the Power BI admin portal. If you're
not the admin of your tenant, get the tenant's admin to enable the Tenant settings for
you.
3. Expand Service principals can use Fabric APIs, and enable this option.
7 Note
When using a service principal, it's recommended to limit its access to the tenant
settings using a security group. To learn more about this feature, see these sections
in the service principal article:
3. In the Access pane, depending on which authentication method you're using, copy
the service principal or master user to the Enter email address text box.
7 Note
If you're using a service principal, its name is the name you gave your
Microsoft Entra app.
4. Select Add.
Follow these steps to modify the embed for your customers sample application, to
embed your Power BI report.
4. Depending on the language you want your app to use, open one of these folders:
.NET Core
.NET Framework
Java
Node JS
Python
7 Note
The embed for your customers sample applications only support the
frameworks listed above. The React sample application only supports the
embed for your organization solution.
.NET Core
6. Open the embed for your customers sample app using one of these methods:
ノ Expand table
ClientId Your Microsoft Entra app client Your Microsoft Entra app
ID client ID
If you're using Visual Studio Code, select Run > Start Debugging.
When you're ready, review the move to production requirements. You'll also need a
capacity, and should review the capacity planning article to establish which SKU best
suits your needs.
) Important
If you used free embed trial tokens for development, you must buy a capacity for
production. Until a capacity is purchased, the Free trial version banner will continue
to appear at the top of the embedded report.
Related content
Move to production
Embed for your organization
Embed paginated reports
Feedback
Was this page helpful? Yes No
Power BI embedded analytics allows you to embed Power BI content, such as reports,
dashboards and tiles, into your application.
To use your application, your users will need to sign in to Power BI.
The embed for your organization solution is typically used by enterprises and large
organizations, and is intended for internal users.
) Important
If you are embedding content for a national/regional cloud, the first few steps of
this tutorial are different. See Embed content for national/regional clouds for
details.
.NET Framework
.NET Core
React TypeScript
7 Note
The .NET Core and the .NET Framework samples allow the end user to view any
Power BI dashboard, report or tile they have access to in the Power BI service. The
React TypeScript sample lets you embed only one report that your end user already
has access to in the Power BI service.
Microsoft Edge
Google Chrome
Mozilla Firefox
Prerequisites
Before you start this tutorial, verify that you have both the following Power BI and code
dependencies:
Power BI dependencies
Power BI Pro
7 Note
Code dependencies
.NET Core
Visual Studio
Visual Studio Code
Method
To create an embed for your organization sample app, follow these steps:
To register your application with Microsoft Entra ID, follow the instructions in Register
your application.
Tip
2. Select Workspaces.
Tip
If you already have a workspace with a report, you can skip this step.
To download a sample report and publish it to your workspace, follow these steps:
3. Extract the downloaded ZIP and navigate to the Samples Reports folder.
Client ID
Client secret
Workspace ID
Report ID
Client ID
Tip
To get the client ID GUID (also know as application ID), follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
Client secret
Tip
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
6. In the Add a client secret pop-up window, provide a description for your
application secret, select when the application secret expires, and select Add.
7. From the Client secrets section, copy the string in the Value column of the newly
created application secret. The client secret value is your client ID.
7 Note
Make sure you copy the client secret value when it first appears. After navigating
away from this page, the client secret will be hidden and you'll not be able to
retrieve its value.
Workspace ID
Tip
3. Copy the GUID from the URL. The GUID is the number between /groups/ and
/reports/.
Report ID
Tip
3. Copy the GUID from the URL. The GUID is the number between /reports/ and
/ReportSection.
Follow these steps to modify the embed for your organization sample application, to
embed your Power BI report.
4. Open one of the following folders depending on the language you want your
application to use:
.NET Core
.NET Framework
React-TS
7 Note
The embed for your organization sample applications only support the
previously listed frameworks. The Java, Node JS and Python sample
applications, only support the embed for your customers solution.
.NET Core
2. Select App registrations. If you can't see this option, search for it.
5. In Platform configurations, open your Web platform and in the Redirect URIs
section, add https://localhost:5000/signin-oidc .
7 Note
If you don't have a Web platform, select Add a platform and in the
Configure platforms window, choose Web.
2. Open the embed for your organization sample app using one of these
methods:
If you're using Visual Studio Code, select Run > Start Debugging.
7 Note
During your first sign in, you'll be prompted to allow Microsoft Entra
permissions for the app.
3. When the embedding sample application loads, select the Power BI content
you want to embed and then select Embed.
Related content
Tutorial: Embed Power BI content using a sample embed for your customers'
application
Learn how to embed analytical content within your business process applications for the
national/regional cloud. Use the Power BI .NET SDK with the Power BI JavaScript API to
embed a report, dashboard, or tile, into your web applications.
To get started with this walkthrough, you need a Power BI account. If you don't have an
account set up, depending on the type of government or country/region, you can
choose the right national/regional cloud for you. Sign up for a U. S. government Power
BI account, or a Power BI for China cloud account .
7 Note
Are you looking to embed a dashboard for your organization instead? See
Integrate a dashboard into an app for your organization.
To integrate a dashboard into a web app, use the Power BI API and a Microsoft Entra
authorization access token to get a dashboard. Load the dashboard using an embed
token. The Power BI API provides programmatic access to specific Power BI resources.
For more information, see Power BI REST API, Power BI .NET SDK, and the Power BI
JavaScript API .
) Important
You can only embed Power BI content from a Government Community Cloud (GCC)
with a Microsoft 365 SKU. Other national/regional cloud customers can use
Microsoft 365 or Azure SKUs.
Government Community Cloud (GCC):
XML
<add key="authorityUrl"
value="https://login.microsoftonline.com/organizations/" />
<add key="scopeBase"
value="https://analysis.usgovcloudapi.net/powerbi/api/.default" />
<add key="urlPowerBiServiceApiRoot"
value="https://api.powerbigov.us/" />
XML
<add key="authorityUrl"
value="https://login.microsoftonline.us/organizations/" />
<add key="scopeBase"
value="https://high.analysis.usgovcloudapi.net/powerbi/api/.defaul
t" />
<add key="urlPowerBiServiceApiRoot"
value="https://api.high.powerbigov.us/" />
Military (DoD):
1. In the Web.config file, update applicationId (Native app applicationId ),
workspaceId , the username (your master user), and password.
XML
<add key="authorityUrl"
value="https://login.microsoftonline.us/organizations/" />
<add key="scopeBase"
value="https://mil.analysis.usgovcloudapi.net/powerbi/api/.default
" />
<add key="urlPowerBiServiceApiRoot"
value="https://api.mil.powerbigov.us/" />
XML
<add key="authorityUrl"
value="https://login.chinacloudapi.cn/organizations/" />
<add key="scopeBase"
value="https://analysis.chinacloudapi.cn/powerbi/api/.default" />
<add key="urlPowerBiServiceApiRoot"
value="https://api.powerbi.cn/" />
You can see examples of these access tokens within each content item task in the
Controllers\HomeController.cs file.
Related content
Embedding for your customers sample
In this tutorial, you learn how to embed a Power BI report in a .NET 5.0 application, as
part of the embed-for-your-customers (also known as an app-owns-data) solution. In an
embed-for-your-customers solution, your app users don't need to sign in to Power BI or
have a Power BI license.
" A Power BI report.
" In an embed-for-your-customers app.
" By using a service principal.
" By using .NET 5.0.
" With the Microsoft.Identity.Web library (this library is also supported in .NET Core).
7 Note
The full solution used in this tutorial is available from the DOTNET5-
AppOwnsData-Tutorial GitHub repository.
Prerequisites
A Power BI Pro or Premium Per User (PPU) license
Visual Studio .
Power BI REST Reports API, to embed the URL and retrieve the embed token.
Method
To embed Power BI content in an embed-for-your-customers solution, follow these
steps:
Follow the service principal instructions to create a Microsoft Entra app and enable the
app's service principal to work with your Power BI content.
7 Note
To embed content for a user on a different tenant (guest user), you need to adjust
the authorityUri parameter.
Client ID
To get the client ID GUID (also know as application ID), follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
Client secret
To get the client secret, follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
7. From the Client secrets section, copy the string in the Value column of the newly
created application secret. The client secret value is your client ID.
7 Note
Make sure you copy the client secret value when it first appears. After navigating
away from this page, the client secret will be hidden and you'll not be able to
retrieve its value.
Workspace ID
To get the workspace ID GUID, follow these steps:
3. Copy the GUID from the URL. The GUID is the number between /groups/ and
/reports/.
7 Note
Report ID
To get the report ID GUID, follow these steps:
3. Copy the GUID from the URL. The GUID is the number between /reports/ and
/ReportSection.
7 Note
To get the report ID programmatically, use the Get Reports In Group API.
In Visual Studio, navigate to Tools > NuGet Package Manager > Package
Manager Console and type in the following code.
PowerShell
ノ Expand table
File Use
7 Note
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using AppOwnsData.Services;
namespace AppOwnsData
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add
services to the container.
public void ConfigureServices(IServiceCollection services) {
services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches();
services.AddScoped(typeof(PowerBiServiceApi));
services.AddControllersWithViews(options => {
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
services.AddRazorPages()
.AddMicrosoftIdentityUI();
}
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
}
}
JSON
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "yourtenant.onMicrosoft.com",
"TenantId": "",
"ClientId": "",
"ClientSecret": "",
"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc"
},
"PowerBi": {
"ServiceRootUrl": "https://api.powerbi.com/"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
3. Fill in the embedding parameter values obtained from Step 2 - Get the embedding
parameter values.
different in other clouds, such as the government cloud. Therefore, the custom
configuration value is stored as a project configuration value, so you can change it
as needed.
Get the Microsoft Entra access token and call the Power
BI service
In order to embed Power BI content like reports and dashboards, your app needs to get
an Microsoft Entra token. To get the token, you need a configuration object.
The code in this section uses the .NET Core dependency injection pattern. When your
class needs to use a service, you can add a constructor parameter for that service. The
.NET Core runtime takes care of passing the service instance at run time. In this case, the
constructor injects an instance of the .NET Core configuration service by using the
IConfiguration parameter, which is used to retrieve the PowerBi:ServiceRootUrl
The RequiredScopes field holds a string array that contains a set of delegated
permissions supported by the Power BI service API. When your application calls across
the network to acquire a Microsoft Entra token, it passes this set of delegated
permissions so that Microsoft Entra ID can include them in the access token it returns.
7 Note
Verify that your Microsoft Entra app is configured with the scopes required by your
web app. For more information, see Change your Microsoft Entra app's
permissions.
C#
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Identity.Web;
using Microsoft.Rest;
using Microsoft.PowerBI.Api;
using Microsoft.PowerBI.Api.Models;
using Newtonsoft.Json;
namespace AppOwnsData.Services {
}
}
From the Controllers folder, open the HomeController.cs file and add the following code
to it:
C#
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using AppOwnsData.Models;
using AppOwnsData.Services;
namespace AppOwnsData.Controllers
{
[Authorize]
public class HomeController : Controller
{
private PowerBiServiceApi powerBiServiceApi;
[AllowAnonymous]
public IActionResult Index()
{
return View();
}
return View(viewModel);
}
[AllowAnonymous]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None,
NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId =
Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
ノ Expand table
File Use
Embed.cshtml Contains your app's document object model (DOM) and a DIV for embedding the
report
HTML
@model AppOwnsData.Services.EmbeddedReportViewModel;
@section Scripts {
<!-- This script specifies the location of the embed.js file -->
<script src="~/js/embed.js"></script>
}
In this tutorial, you create a JavaScript file named embed.js with a configuration object
for embedding your report that uses the variable models .
The powerbi.embed function uses the models configuration object to embed your report.
JavaScript
$(function () {
// 1 - Get DOM object for the div that's the report container.
var reportContainer = document.getElementById("embed-container");
var config = {
type: 'report',
id: reportId,
embedUrl: embedUrl,
accessToken: token,
permissions: models.Permissions.All,
tokenType: models.TokenType.Embed,
viewMode: models.ViewMode.View,
settings: {
panes: {
filters: { expanded: false, visible: true },
pageNavigation: { visible: false }
}
}
};
});
) Important
If you used free embed trial tokens for development, you must buy a capacity for
production. Until a capacity is purchased, the Free trial version banner continues to
appear at the top of the embedded report.
When your app is ready, you can move your embedded app to production.
Related content
Embedded analytics application tokens
Feedback
Was this page helpful? Yes No
This tutorial explains how to embed a Power BI report in a .NET 5.0 application, as part
of the embed for your organization (also known as user owns data) solution. In an embed
for your organization solution, your app users need to authenticate against Power BI
with their own credentials.
" A Power BI report
" In an embed for your organization app
" Using .NET 5.0
" With the Microsoft.Identity.Web library (this library is also supported in .NET Core)
7 Note
The full solution used in this tutorial, is available from the DOTNET5-
UserOwnsData-Tutorial GitHub repository.
Prerequisites
A Power BI Pro or Premium Per User (PPU) license.
7 Note
Resources
In this tutorial, you use:
Power BI REST Reports API - to embed the URL and retrieve the embed token.
Microsoft Identity Web authentication library.
Power BI embedded analytics Client APIs - to embed the report.
Method
To embed Power BI content in an embed for your organization solution, follow these
steps:
If you don't have a Microsoft Entra app, create one using the instructions in Register a
Microsoft Entra application to use with Power BI.
To configure your Microsoft Entra app, follow the instructions in Configure your
Microsoft Entra app.
Domain
Tenant ID
Client ID
Client secret
Workspace ID
Report ID
7 Note
To embed content for a user on a different tenant (a guest user), you need to
adjust the authorityUri parameter.
Client ID
To get the client ID GUID (also know as application ID), follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
Client secret
To get the client secret, follow these steps:
2. Search for App registrations and select the App registrations link.
3. Select the Microsoft Entra app you're using for embedding your Power BI content.
7. From the Client secrets section, copy the string in the Value column of the newly
created application secret. The client secret value is your client ID.
7 Note
Make sure you copy the client secret value when it first appears. After navigating
away from this page, the client secret will be hidden and you'll not be able to
retrieve its value.
Workspace ID
To get the workspace ID GUID, follow these steps:
3. Copy the GUID from the URL. The GUID is the number between /groups/ and
/reports/.
7 Note
Report ID
To get the report ID GUID, follow these steps:
3. Copy the GUID from the URL. The GUID is the number between /reports/ and
/ReportSection.
7 Note
To get the report ID programmatically, use the Get Reports In Group API.
In Visual studio, navigate to Tools > NuGet Package Manager > Package Manager
Console and type in the following code.
PowerShell
PowerShell
ノ Expand table
File Use
Modify the code in Startup.cs to properly initialize the authentication service provided
by Microsoft.Identity.Web .
7 Note
C#
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.TokenCacheProviders;
using Microsoft.Identity.Web.TokenCacheProviders.InMemory;
using Microsoft.Identity.Web.UI;
using UserOwnsData.Services;
namespace UserOwnsData {
services
.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi(PowerBiServiceApi.RequiredScopes)
.AddInMemoryTokenCaches();
mvcBuilder.AddMicrosoftIdentityUI();
services.AddRazorPages();
}
}
}
JSON
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "",
"TenantId": "",
"ClientId": "",
"ClientSecret": "",
"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc"
},
"PowerBi": {
"ServiceRootUrl": "https://api.powerbi.com"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
3. Fill in the embedding parameter values obtained from Step 2 - Get the embedding
parameter values.
ClientId - Client ID
ClientSecret - Client secret
7 Note
different in other clouds such as the government cloud. Therefore, this value is
stored as a project configuration value so it is easy to change when required.
Get the Microsoft Entra access token and call the Power
BI service
In order to embed Power BI content (such as reports and dashboards), your app needs
to get an Microsoft Entra token. To get the token, you need a configuration object.
The code in this section uses the .NET Core dependency injection pattern. When your
class needs to use a service, you can add a constructor parameter for that service and
the .NET Core runtime takes care of passing the service instance at run time. In this case,
the constructor is injecting an instance of the .NET Core configuration service using the
IConfiguration parameter, which is used to retrieve the PowerBi:ServiceRootUrl
configuration value from appsettings.json. The ITokenAcquisition parameter, which is
named tokenAcquisition holds a reference to the Microsoft authentication service
provided by the Microsoft.Identity.Web library and is used to acquire access tokens
from Microsoft Entra ID.
The RequiredScopes field holds a string array containing a set of delegated permissions
supported by the Power BI service API. When your application calls across the network
to acquire a Microsoft Entra token, passes this set of delegated permissions so that
Microsoft Entra ID can include them in the access token it returns.
7 Note
Verify that your Microsoft Entra app is configured with the scopes required by your
web app. For more information, see Change your Microsoft Entra app's
permissions.
C#
using Microsoft.Identity.Web;
using Microsoft.PowerBI.Api;
using Microsoft.PowerBI.Api.Models;
using Microsoft.Rest;
using Newtonsoft.Json;
namespace UserOwnsData.Services {
constructor, and the .NET Core runtime takes care of creating a PowerBiServiceApi
instance and passing it to the constructor.
From the Controllers folder, open the HomeController.cs file and add it to the following
code snippet:
C#
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using UserOwnsData.Models;
using UserOwnsData.Services;
namespace UserOwnsData.Controllers {
[Authorize]
public class HomeController : Controller {
[AllowAnonymous]
public IActionResult Index() {
return View();
}
[AllowAnonymous]
[ResponseCache (Duration = 0, Location = ResponseCacheLocation.None,
NoStore = true)]
public IActionResult Error() {
return View (new ErrorViewModel { RequestId =
Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
File Use
Embed.cshtml Contains your app's document object model (DOM), and a DIV for embedding
the report
HTML
@model UserOwnsData.Services.EmbeddedReportViewModel;
@section Scripts {
<!-- This script specifies the location of the embed.js file -->
<script src="~/js/embed.js"></script>
}
In this section, you create a JavaScript file named embed.js with a configuration object
for embedding your report, using the variable models .
The powerbi.embed function uses the models configuration object to embed your report.
JavaScript
$(function(){
// 1 - Get DOM object for div that is report container
let reportContainer = document.getElementById("embed-container");
});
When your app is ready, you can move your embedded app to production.
Related content
Embedded analytics application tokens
Feedback
Was this page helpful? Yes No
With Power BI embedded analytics, you can create Power BI content that displays
paginated reports in a fully integrated and interactive application. Embed paginated
reports using the solution that works best for you, embed for your customers or embed
for your organization.
This article describes how to embed paginated reports using the embedding sample
tutorials.
Prerequisites
To get started, you need:
A service principal
A capacity
If you don't have an Azure subscription, create a free account before you begin.
Method
To embed a paginated report using the sample app, follow these steps:
1. Create a workspace.
2. Create a capacity.
As you're using a service principal to sign into your application, you need to create
a workspace.
Before you import or upload a paginated report to embed, you must assign the
workspace containing the report to a capacity. There are two types of capacity you
can choose from:
The following table describes the resources and limits of each SKU. To determine
which capacity best fits your needs, see the which SKU should I purchase for my
scenario table.
ノ Expand table
EM1/A1 1 2.5
EM2/A2 2 5
EM3/A3 4 10
P1/A4 8 25
P2/A5 16 50
P3/A6 32 100
Step 3 - Assign a workspace to a capacity
Embed for your customers
Once you create a capacity, assign your app workspace to that capacity.
To assign a capacity to a workspace using a service principal, work with the Power BI
REST API. When you're using the Power BI REST APIs, make sure to work with the
service principal object ID.
7 Note
You can also import paginated reports into a workspace using the Power BI
REST APIs.
7 Note
The person who uploads the paginated report needs a Power BI Pro or Premium
Per User (PPU) license to publish to a workspace.
Follow the steps in the embed content for your customers tutorial. Skip Step 4 -
Create and publish a Power BI report and work with the paginated report you
uploaded, instead of the sample report suggested in the tutorial.
For more information on embedding tokens, see Embedded analytics access tokens.
For a full list of supported datasets and their authentication methods, see
Supported data sources for Power BI paginated reports.
You must use a service principal. You can't have a master user.
You can't work with a Premium Per User (PPU).
When you embed a paginated report with a Power BI semantic model, two
conditions apply:
The paginated report and the Power BI semantic model must reside in a
Premium per capacity or Embedded workspace (they can reside in two
different workspaces).
The person who generates the embed token must have Write permissions
in the workspaces of both the report and the semantic model.
You can't currently embed a paginated report connected to Azure Analysis
Services with single sign-on (SSO) enabled.
Related content
Tutorial: Embed a Power BI report in an application for your organization
Capacity and SKUs in Power BI embedded analytics
Considerations when generating an embed token
Embed Power BI content in Salesforce
Article • 06/03/2024
This article links to two samples that show how to develop by using Power BI embedded
analytics in a Salesforce environment. The two developer samples demonstrate two
different solutions that enable embedding Power BI content in Salesforce: the embed for
your customers solution and the embed for your organization solution.
Prerequisites
You must be familiar with both Power BI and Salesforce. It's helpful to have experience
developing with Power BI embedded analytics and be familiar with the Salesforce
environment, preferably with the Salesforce Developer Experience (SFDX).
Apex class
The Salesforce embed for your customers solution uses a service principal and is built on
top of an Apex class named PowerBiEmbedManager .
with a specific Power BI Workspace ID and Report ID. This design makes it possible to
add multiple instances of the powerBiReportAura component, and configure each
instance to embed a different Power BI report.
index.html
app.css
app.js
Client-side libraries
In the Salesforce embed for your organization Salesforce solution, powerbi.js is used to
access the Power BI embedded analytics Client APIs.
Embed for your organization solution Salesforce
developer sample
To embed Power BI content that uses the embed for your organization solution, follow
the instructions in the SalesforceUserOwnsDataEmbedding GitHub repository.
Related content
Embed Power BI content into an application for your customers
Feedback
Was this page helpful? Yes No
Power BI embedded analytics offers you a way to incorporate Q&A into an application.
Your users can ask questions using natural language, and receive immediate answers in
the form of visuals like charts or graphs.
There are two modes for embedding Q&A within your application: interactive and result
only. Interactive mode allows you to type in questions and have them displayed within
the visual. If you have a saved question, or a set question you want to display, you can
use the result only mode by populating the question in your embed config.
JavaScript
Set question
If you use result mode with a set question, you can inject more questions into the
frame. The answer to the new question will immediately replace the previous result. A
new visual is rendered matching the new question.
One example of this usage would be a frequently asked question list. The user could go
through the questions and have them answered within the same embedded part.
JavaScript
Listening to the visualRendered event allows you to save questions for use later.
Embed token
Create an embed token from a semantic model to start a Q&A part. For more
information, see the generate token operation.
Related content
Try out Q&A embedding with the JavaScript embed sample
Feedback
Was this page helpful? Yes No
With the Embed option for Power BI reports, you can easily and securely embed reports
in internal web portals. These portals can be cloud-based or hosted on-premises, such
as SharePoint 2019. Embedded reports respect all item permissions and data security
through row-level security (RLS) and Analysis Services tabular model object-level
security (OLS). They provide no-code embedding into any portal that accepts a URL or
iframe.
The Embed option supports URL filters and URL settings. It allows you to integrate with
portals by using a low-code approach that requires only basic HTML and JavaScript
knowledge.
) Important
Due to ongoing Chromium security updates, the Embed option no longer works
exactly as it used to, and users may be asked to authenticate more than once. To
address this, consider creating your own Power BI embedded solution.
4. Whether a user opens a report URL directly, or one that's embedded in a web
portal, report access requires authentication. The following screen appears if a user
hasn't signed in to Power BI in their browser session. When they select Sign-In, a
new browser window or tab should open. Have them check for pop-up blockers if
they don't get prompted to sign in.
5. After the user has signed in, the report opens, showing the data and allowing page
navigation and filter setting. Only users with view permission can see the report in
Power BI. All row-level security (RLS) rules are also applied. The users need to be
correctly licensed. They need a Power BI Pro or Premium Per User (PPU) license, or
the content needs to be in a workspace that's in a Power BI Premium capacity.
Users need to sign in each time they open a new browser window. However, after
they're signed in, other reports load automatically.
6. When you use an iframe, you might need to edit the height, and width values to
have it fit in your portal's web page.
Licensing
To view the embedded report, you need either a Power BI Pro or Premium Per User
(PPU) license. Or, the content needs to be in a workspace that's in a Power BI Premium
capacity (EM or P SKU).
ノ Expand table
Property Description
pageName You can use the pageName query string parameter to set which report page to
open. You can find this value at the report URL's end when you view a report in the
Power BI service, as shown later in this article.
URL Filters You can use URL Filters in the embed URL that you received from the Power BI UI to
filter the embed content. This way you can build low-code integrations with only
basic HTML and JavaScript experience.
1. Open the report from the Power BI service in your web browser, and then copy the
address bar URL.
2. Append the pageName property and its value to the end of the URL.
Filter report content by using URL filters
You can use URL Filters to provide different report views. For example, the following URL
filters the report to show data for the energy industry.
Using the combination of pageName and URL Filters can be powerful. You can build
experiences using basic HTML and JavaScript.
HTML
When selected, the button calls a function to update the iframe with an updated URL,
which includes the Energy industry filter.
JavaScript
report.src = newUrl;
You can add as many buttons as you'd like to create a low-code custom experience.
Considerations and limitations
Paginated reports are supported with secure embed scenarios, and paginated
reports with URL parameters are also supported. For more information, see Pass a
report parameter in a URL for a paginated report in Power BI.
The secure embed option works for reports that are published to the Power BI
service.
To host securely embedded content, users must use HTTPS for their top-level
page. Using an unsecured host page to access securely embedded content isn't
supported.
The user needs to sign in to view the report whenever they open a new browser
window or tab.
If users have successfully accessed reports in the past but are now encountering
issues, they should clear their browser cache.
Some browsers require you to refresh the page after sign-in, especially when you
use InPrivate or Incognito modes.
You might encounter issues if you use unsupported browser versions. For a list of
browsers that Power BI supports, see Supported browsers for Power BI.
The classic SharePoint Server isn't supported, because it requires Internet Explorer
versions earlier than 11, or enabling the compatibility view mode.
To achieve a single sign-on experience, use the Embed in SharePoint Online option,
or build a custom integration by using the user-owns-data embedding method.
The automatic authentication capabilities provided with the Embed option don't
work with the Power BI JavaScript API. They are blocked in PBI embedded client
SDK starting with the version 2.10.4. For the Power BI JavaScript API, use the user-
owns-data embedding method.
The automatic authentication capabilities don't work when they're embedded in
applications, including in mobile and desktop applications.
Related content
Ways to share your work in Power BI
Filter a report using query string parameters in the URL
Embed with report web part in SharePoint Online
Publish to web from Power BI
Feedback
Was this page helpful? Yes No
Consuming Power BI content (such as reports, dashboards and tiles) requires an access
token. Depending on your solution, this token can be either an Microsoft Entra token, an
embed token, or both.
In the embed for your customers solution, the application generates an embed token
that grants your web users access to Power BI content.
7 Note
When you use the embed for your customers solution, you can use any
authentication method to allow access to your web app.
In the embed for your organization solution, your web app users authenticate against
Microsoft Entra ID by using their own credentials. Your customers have access to the
Power BI content that they have permission to access on the Power BI service.
In the embed for your customers solution, the Microsoft Entra token is used to
generate the embed token.
In the embed for your organization solution, the Microsoft Entra token is used to
access Power BI.
You can acquire a Microsoft Entra token in one of the following ways:
Use the external Postman tool to acquire a token. For more information, see this
Power BI Community thread . The request URL for a service principal must be
https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token , but for a
https://login.microsoftonline.com/common/oauth2/token .
Follow the sample solutions at PowerBI-Developer-Samples . For example:
For Embed for your customers see this AadService.cs file . Find the
authorityUrl and scopeBase at AppOwnsData/Web.config .
For Embed for your organization see this OwinOpenIdConnect.cs file . Find
authorityUrl at UserOwnsData/Web.config .
7 Note
You can find the authorityUrl and scopeBase values for some sovereign
clouds in Embed content in your app for government and national/regional
clouds.
Embed token
When you use the embed for your customers solution, your web app needs to know
which Power BI content a user can access. Use the embed token REST APIs to generate
an embed token, which specifies the following information:
Authentication flows
This section describes the different authentication flows for the embed for your
customers and embed for your organization solutions.
The embed for your customers solution uses a non-interactive authentication flow. In
an embed for your customers solution, users don't sign in to Microsoft Entra ID to
access Power BI. Instead, your web app uses a reserved Microsoft Entra identity to
authenticate against Microsoft Entra ID and generate the embed token. The
reserved identity can be either a service principal or a master user:
Service principal Your web app uses the Microsoft Entra service principal
object to authenticate against Microsoft Entra ID and get an app-only
Microsoft Entra token. This app-only authentication method is recommended
by Microsoft Entra ID.
When using a service principal, you need to enable Power BI APIs access in the
Power BI service admin settings. Enabling access allows your web app to
access the Power BI REST APIs. To use API operations on a workspace, the
service principal needs to be a member or an admin of the workspace.
Master user Your web app uses a user account to authenticate against
Microsoft Entra ID and get the Microsoft Entra token. The master user account
needs to have a Power BI Pro or a Premium Per User (PPU) license.
When you use a master user account, you need to define your app's
delegated permissions (also known as scopes). The master user or tenant
admin has to give consent to use these permissions when using the Power BI
REST APIs.
After successful authentication against Microsoft Entra ID, your web app generates
an embed token to allow its users to access specific Power BI content.
7 Note
To embed by using the embed for your customers solution, you need a
capacity with an A, EM, or P SKU.
To move to production, you need a capacity.
The following diagram shows the authentication flow for the embed for your
customers solution.
1. The web app user authenticates against your web app with your
authentication method.
2. Your web app uses a service principal or a master user to authenticate against
Microsoft Entra ID.
3. Your web app gets an Microsoft Entra token from Microsoft Entra ID and uses it
to access Power BI REST APIs. The authentication method you choose gives
access to the Power BI REST APIS, which depends on if the authentication
method is either a service principal or a master user.
4. Your web app calls an Embed Token REST API operation and requests the
embed token. The embed token specifies which Power BI content can be
embedded.
5. The REST API returns the embed token to your web app.
6. The web app passes the embed token to the user's web browser.
7. The web app user uses the embed token to access Power BI.
Related content
Considerations when generating an embed token
Capacity and SKUs in Power BI embedded analytics
Feedback
Was this page helpful? Yes No
Generate token is a REST API that lets you generate a token for embedding a Power BI
report or semantic model in a web app or a portal. It can generate a token for a single
item or for multiple reports or semantic models. The token is used to authorize your
request against the Power BI service.
The generate token API uses a single identity (a master user or service principal) to
generate a token for an individual user, depending on that user's credentials in the app
(effective identity).
7 Note
Generate token is the newer, version 2 API that works for both reports and
semantic models, and single or multiple items. It's preferred over the legacy version
1 APIs. For dashboards and tiles use the V1 Dashboards GenerateTokenInGroup
and Tiles GenerateTokenInGroup.
We recommend using workspace-based isolation with profiles, but if you want to use
the RLS approach, review the RLS section at the end of this article.
Access Level
Use the allowEdit parameter to grant the user viewing or editing permissions.
Add the workspace ID to the embed token to allow the user to create new reports
(either SaveAs or CreateNew) in that workspace.
If you're using RLS, you can sometimes leave out the user's identity (the EffectiveIdentity
parameter). When you don't use the EffectiveIdentity parameter, the token has access to
the entire database. This method can be used to grant access to users such as admins
and managers, who have permission to view the entire semantic model. However, you
can't use this method in every scenario. The table below lists the different RLS types, and
shows which authentication method can be used without specifying a user's identity.
The table also shows the considerations and limitation applicable to each RLS type.
ノ Expand table
RDL (paginated ✖ Master user You can't use a master user to generate an embed
reports) ✔ Service principal token for RDL.
Analysis Services ✔ Master user The user generating the embed token also needs
(AS) on premises ✖ Service principal one of the following permissions:
live connection Gateway admin permissions
Datasource impersonate permission
(ReadOverrideEffectiveIdentity)
Analysis Services ✔ Master user The identity of the user generating the embed
(AS) Azure live ✖ Service principal token can't be overridden. Custom data can be
connection used to implement dynamic RLS or secure filtering.
RLS type Can I generate an Considerations and limitations
embed token without
specifying the
effective user ID?
Single Sign On ✔ Master user An explicit (SSO) identity can be provided using the
(SSO) ✖ Service principal identity blob property in an effective identity
object
SSO and cloud ✔ Master user You must provide the following:
RLS ✖ Service principal Explicit (SSO) identity in the identity blob
property in an effective identity object
Effective (RLS) identity (username)
7 Note
In the Power BI portal, set the XMLA endpoint to Read Only or Read Write as
described in enable read-write for a Premium capacity. You only need to do this
once per capacity.
Generate a multi-resource embed token
Specify all dataset IDs in the request.
Set the XmlaPermissions to Read Only for each semantic model in the request.
For each Single Sign-on (SSO) enabled data source, provide the identity blob for
the data source in the DatasourceIdentity.
Edit - Grant the user viewing and editing permissions (only applies when
generating an embed token for a report).
Create - Grant the user permissions to create a new report (only applies when
generating an embed token for creating a report). For report creation, you must
also supply the datasetId parameter.
Use the allowSaveAs boolean to let users save the report as a new report. This
setting is set to false by default, and only applies when generating an embed token
for a report.
If the semantic model and item to be embedded are in two different workspaces,
the service principal or master user must be at least a member of both workspaces.
Related content
Register an app
Power BI Embedded for your customers
Embed Power BI content with service principal
Feedback
Was this page helpful? Yes No
When a report is connected to a semantic model, you can use dynamic binding. The
connection between the report and the semantic model, is known as binding. When the
binding is determined at the point of embedding, as opposed to being predetermined
earlier, the binding is known as dynamic binding.
When embedding a Power BI report using dynamic binding, you can connect the same
report to different semantic models depending on the user's credentials.
This means that you can use one report to display different information, depending on
the semantic model it's connected to. For example, a report showing retail sale values
can be connected to different retailer semantic models, and produce different results,
depending on the semantic model of the retailer it's connected to.
The report and the semantic model don't need to reside in the same workspace. Both
workspaces (the one containing the report, and the one containing the semantic model)
must be assigned to a capacity.
As part of the embedding process, make sure you generate a token with sufficient
permissions, and adjust the config object.
ノ Expand table
Embedding for User owns Access The user whose Microsoft Entra token is used,
your data token for must have appropriate permissions for all items
organization Power BI (reports, semantic models, etc.).
users
Scenario Data Token Requirements
ownership
Embedding for App owns Access Must include permissions for both the report and
your customers data token for the dynamically bound semantic model. Use the
non-Power API for generating an embed token for multiple
BI users items, to generate an embed token that supports
multiple items.
7 Note
The maximum number of data sources allowed per user is 1000. This limit implies
that the combined number of datas sources used in the dynamic binding between
reports and semantic modelts by this user cannot exceed 1000.
Related content
If you're new to embedding in Power BI, review these tutorials to learn how to embed
your Power BI content.
Feedback
Was this page helpful? Yes No
The exportToFile API enables exporting a Power BI report by using a REST call. The
following file formats are supported:
.pptx (PowerPoint)
.pdf
.png
When you export to a .png, a report with multiple pages is compressed into a
.zip file
Each file in the .zip represents a report page
The page names are the same as the return values of the Get Pages or Get
Pages in Group APIs
7 Note
Exporting a Power BI report to a file using the exportToFile API is not supported for
Premium Per User (PPU).
Usage examples
You can use the export feature in several ways. Here are a couple of examples:
Send to print button - In your application, create a button that when clicked on
triggers an export job. The job can export the viewed report as a .pdf or a .pptx.
When it's complete, the user can receive the file as a download. Using bookmarks
you can export the report in a specific state, including configured filters, slicers,
and other settings. As the API is asynchronous, it may take some time for the file to
be available.
Email attachment - Send an automated email at set intervals, with an attached .pdf
report. This scenario can be useful if you want to automate sending a weekly
report to executives. For more information, see Export and email a Power BI report
with Power Automate
License requirements
The report you're exporting must reside in a workspace backed by a Premium,
Embedded, or Fabric capacity.
The exportToFile API, is not supported for Premium Per User (PPU).
Admin settings
Before using the API, verify that the following admin tenant settings are enabled:
"Rendering" events
To make sure the export doesn't begin before the visual finishes rendering use the
"Rendering" events API and only begin the export when rendering is finished.
Polling
The API is asynchronous. When the exportToFile API is called, it triggers an export job.
After triggering an export job, use polling to track the job, until it's complete.
During polling, the API returns a number that represents the amount of work
completed. The work in each export job is calculated based on the total of exports in the
job. An export includes exporting a single visual, or a page with or without bookmarks.
All exports have the same weight. If for example, your export job includes exporting a
report with 10 pages, and the polling returns 70, it means the API processed seven out
of the 10 pages in the export job.
When the export is complete, the polling API call returns a Power BI URL for getting the
file. The URL is available for 24 hours.
Supported features
This section describes how to use the following supported features:
Depending on the type of export, you need to pass different attributes to the
ExportReportPage object. The following table specifies which attributes are required for
each export job.
7 Note
Exporting a single visual has the same weight as exporting a page (with or without
bookmarks). This means that in terms of system calculations, both operations carry
the same value.
ノ Expand table
pageName Use the GetPages REST API or the getPages client API.
visualName There are two ways to get the name of the visual:
Use the getVisuals client API.
Listen and log the visualClicked event, which is triggered
when a visual is selected. For more information, see How to
handle events
.
Bookmarks
Bookmarks can be used to save a report in a specific configuration, including applied
filters and the state of the report's visuals. You can use the exportToFile API to
programmatically export a report's bookmark, in two ways:
To export an existing report bookmark, use the name property, a unique (case
sensitive) identifier, which you can get using the bookmarks JavaScript API .
To export the current state of the report, use the state property. For example, you
can use the bookmark's bookmarksManager.capture method to capture the changes
a specific user made to a report, and then export it in its current state using
capturedBookmark.state .
7 Note
Filters
Using reportLevelFilters in PowerBIReportExportConfiguration, you can export a
report in a filtered condition.
To export a filtered report, insert the URL query string parameters you want to use as
your filter, to ExportFilter. When you enter the string, you must remove the ?filter=
part of the URL query parameter.
The table includes a few syntax examples of strings you can pass to ExportFilter .
ノ Expand table
A distinct value in one field, and Table/Field1 eq 'value1' Store/Territory eq 'NC' and
a different distinct value in and Table/Field2 eq Store/Chain eq 'Fashions Direct'
another field 'value2'
Authentication
You can authenticate using a user (or master user) or a service principal.
Write and reshare permissions for the semantic model the report is connected to
Workspace member or admin of the workspace where the report resides
Data protection
The .pdf and .pptx formats support sensitivity labels. If you export a report with a
sensitivity label to a .pdf or a .pptx, the exported file displays the report with its
sensitivity label.
A report with a sensitivity label can't be exported to a .pdf or a .pptx using a service
principal.
Localization
When using the exportToFile API, you can pass your desired locale. The localization
settings affect the way the report is displayed, for example by changing formatting
according to the selected local.
Dynamic binding
To export a report while it's connected to a semantic model other then the default
semantic model, specify the required dataset ID in the datasetToBind parameter when
calling the API. Read more about dynamic binding.
Concurrent requests
The exportToFile API supports a limited number of concurrent requests. The maximum
number of concurrent requests supported is 500 per capacity. To avoid exceeding the
limit and getting a Too Many Requests (429) error, either distribute the load over time or
across capacities. Only five pages of a report are processed concurrently. For example, if
you're exporting a report with 50 pages, the export job is processed in 10 sequential
intervals. When optimizing your export job, you may want to consider executing a few
jobs in parallel.
Code examples
When you create an export job, there are four steps to follow:
C#
};
var exportRequest = new ExportReportRequest
{
Format = format,
PowerBIReportConfiguration = powerBIReportExportConfiguration,
};
// Save the export ID, you'll need it for polling and getting the
exported file
return export.Id;
}
Step 2 - polling
After you send an export request, use polling to identify when the export file you're
waiting for is ready.
C#
return httpMessage;
}
C#
End-to-end example
This is an end-to-end example for exporting a report. This example includes the
following stages:
C#
if (export.Status != ExportState.Succeeded)
{
// Error, failure in exporting the report
return null;
}
// Now you have the exported file stream ready to be used according
to your specific needs
// For example, saving the file can be done as follows:
/*
var pathOnDisk = @"C:\temp\" + export.ReportName +
exportedFile.FileSuffix;
return exportedFile;
}
catch
{
// Error handling
throw;
}
}
Related content
Review how to embed content for your customers and your organization:
Feedback
Was this page helpful? Yes No
Provide product feedback | Ask the community
Export paginated report to file
Article • 05/23/2024
The exportToFile API enables exporting a Power BI paginated report by using a REST
call. The following file formats are supported:
.pptx (PowerPoint)
.xlsx (Excel)
.docx (Word)
.csv
.xml
.mhtml
Image
When exporting to an image, set the image format via the OutputFormat format
setting. The supported OutputFormat values are:
.tiff (default)
.bmp
.emf
.gif
.jpeg
.png
Usage examples
You can use the export feature in various ways. Here are a couple of examples:
Send to print button - In your application, create a button that when clicked on
triggers an export job. The job can export the viewed report as a .pdf or a .pptx.
When it's complete, the user can receive the file as a download. Using report
parameters and format settings you can export the report in a specific state,
including filtered data, custom page sizes, and other format-specific settings. As
the API is asynchronous, it may take some time for the file to be available.
Email attachment - Send an automated email at set intervals, with an attached .pdf
report. This scenario can be useful if you want to automate sending a weekly
report to executives.
License requirements
The report you're exporting must reside in a workspace backed by a Premium,
Embedded, or Fabric capacity.
The exportToFile API, has limited support in Premium Per User (PPU).
Rendering events
To make sure the export doesn't begin before the visual finishes rendering, use the
"Rendering" events API and only begin the export when rendering is finished.
Polling
The API is asynchronous. When the exportToFile API is called, it triggers an export job.
After triggering an export job, use polling to track the job, until it's complete.
When the export is complete, the polling API call returns a Power BI URL for getting the
file. The URL is available for 24 hours.
Supported features
Format settings
Specify various format settings for each file format. The supported properties and values
are equivalent to Device Info parameters for paginated report URL parameters.
Here are two examples. The first is for exporting the first four pages of a report using
the report page size to a .pptx file. The second example is for exporting the third page
of a report to a .jpeg file.
JSON
{
"format": "PPTX",
"paginatedReportConfiguration":{
"formatSettings":{
"UseReportPageSize": "true",
"StartPage": "1",
"EndPage": "4"
}
}
}
JSON
{
"format": "IMAGE",
"paginatedReportConfiguration":{
"formatSettings":{
"OutputFormat": "JPEG",
"StartPage": "3",
"EndPage": "3"
}
}
}
Report parameters
You can use the exportToFile API to programmatically export a report with a set of
report parameters. This is done using report parameter capabilities.
JSON
{
"format": "PDF",
"paginatedReportConfiguration":{
"parameterValues":[
{"name": "State", "value": "WA"},
{"name": "City", "value": "Seattle"},
{"name": "City", "value": "Bellevue"},
{"name": "City", "value": "Redmond"}
]
}
}
Authentication
You can authenticate using a user (or master user) or a service principal.
To export using RLS, you must have read permission for the Power BI semantic model
the report is using as a data source.
JSON
{
"format": "PDF",
"paginatedReportConfiguration":{
"identities": [
{"username": "[email protected]"}
]
}
}
Getting the correct access token for the resource that you want to access can sometimes
be tricky.
Here's an example for supplying an effective identity (user name) with an access token.
JSON
{
"format":"PDF",
"paginatedReportConfiguration":{
"formatSettings":{
"AccessiblePDF":"true",
"PageHeight":"11in",
"PageWidth":"8.5in",
"MarginBottom":"2in"
},
"identities":[
{
"username":"[email protected]",
"identityBlob": {
"value": "eyJ0eX....full access token"
}
}
]
}
}
Concurrent requests
The exportToFile supports a limited number of concurrent requests. The maximum
number of concurrent paginated report render requests is 500. To avoid exceeding the
limit and getting a Too Many Requests (429) error, either distribute the load over time or
across capacities.
With Premium Per User (PPU), the exportToFile API allows just one request in a five-
minute window. Multiple requests within the five-minute window result in a Too Many
Requests (429) error.
Code examples
The Power BI API SDK used in the code examples can be download here .
When you create an export job, there are three steps to follow:
C#
// Save the export ID, you'll need it for polling and getting the
exported file
return export.Id;
}
Step 2 - polling
After you've sent an export request, use polling to identify when the export file you're
waiting for is ready.
C#
private async Task<Export> PollExportRequest(
Guid reportId,
Guid groupId,
string exportId /* Get from the ExportToAsync response */,
int timeOutInMinutes,
CancellationToken token)
{
Export exportStatus = null;
DateTime startTime = DateTime.UtcNow;
const int secToMillisec = 1000;
do
{
if (DateTime.UtcNow.Subtract(startTime).TotalMinutes >
timeOutInMinutes || token.IsCancellationRequested)
{
// Error handling for timeout and cancellations
return null;
}
var httpMessage =
await
Client.Reports.GetExportToFileStatusInGroupWithHttpMessagesAsync(groupId,
reportId, exportId);
exportStatus = httpMessage.Body;
if (exportStatus.Status == ExportState.Running ||
exportStatus.Status == ExportState.NotStarted)
{
// The recommended waiting time between polling requests can be
found in the RetryAfter header
// Note that this header is only populated when the status is
either Running or NotStarted
var retryAfter = httpMessage.Response.Headers.RetryAfter;
var retryAfterInSec = retryAfter.Delta.Value.Seconds;
return exportStatus;
}
C#
private async Task<ExportedFile> GetExportedFile(
Guid reportId,
Guid groupId,
Export export /* Get from the GetExportStatusAsync response */)
{
if (export.Status == ExportState.Succeeded)
{
var httpMessage =
await
Client.Reports.GetFileOfExportToFileInGroupWithHttpMessagesAsync(groupId,
reportId, export.Id);
return null;
}
End-to-end example
This is an end-to-end example for exporting a report. This example includes the
following stages:
C#
Exporting a paginated report that has Azure Analysis Services data source
configured with single sign-on (SSO) enabled, isn't supported in the following
cases:
The caller is a service principal profile.
The caller is a master user and an effective identity was provided.
Export of a report is limited to 60 minutes, which matches the life of the user
access token. If you get a timeout error past the 60-minute mark when exporting
large amounts of data, consider reducing the amount of data using appropriate
filters.
The file share URL hyperlink (file share /UNC path) doesn't works when exporting a
published paginated report on Power BI service online.
Related content
Review how to embed content for your customers and your organization:
Feedback
Was this page helpful? Yes No
) Important
After you've developed your application, you need to back your workspace with a
capacity before you can move to production. All workspaces (the ones containing the
reports or dashboards, and the ones containing the semantic models) must be assigned
to a capacity.
Create a capacity
By creating a capacity, you can take advantage of having a resource for your customers.
There are two types of capacities you can choose from:
Azure Power BI Embedded - A subscription that uses A SKUs. You can purchase a
capacity from the Azure portal . For details about how to create a Power BI
Embedded capacity, see Create Power BI Embedded capacity in the Azure portal.
7 Note
SKUs of type A don't support the use of a free Power BI license to access
Power BI content.
Capacity specifications
The following table describes the resources and limits of each SKU. To determine which
capacity best fits your needs, see Which solution should I choose?.
ノ Expand table
F2 2 N/A N/A
F4 4 N/A N/A
F8 8 EM1/A1 1
F16 16 EM2/A2 2
F32 32 EM3/A3 4
F64 64 P1/A4 8
1
These SKUs aren't available in all regions. To request using these SKUs in regions
where they're not available, contact your Microsoft account manager.
Development testing
For development testing, you can use free embed trial tokens with a Pro license or
Premium Per User (PPU) license. To embed in a production environment, use a capacity.
) Important
Free trial tokens are limited to development testing only. After going to production,
a capacity must be purchased. Until a capacity is purchased, the Free trial version
banner continues to appear at the top of the embedded report.
The number of embed trial tokens a Power BI service principal or master user (master
account) can generate is limited. Use the Available features API to check the percentage
of your current embedded usage. The usage amount is displayed per service principal or
master account.
If you run out of embed tokens while testing, you need to purchase a Power BI
Embedded or Premium capacity. There's no limit to the number of embed tokens you
can generate with a capacity.
Each workspace that contains a Power BI item related to the embedded content
(including semantic models, reports, and dashboards) must be assigned to capacities.
For example, if an embedded report and the semantic model bound to it reside in
different workspaces, both workspaces must be assigned to capacities.
1. In the Power BI service, expand Workspaces, and then scroll to the workspace
you're using for embedding your content. On its More menu, select Workspace
settings.
c. Select Save.
After you assign your workspace to a capacity, a diamond appears next to it in the
Workspaces list.
Related content
Capacity and SKUs in Power BI embedded analytics
Capacity planning in Power BI embedded analytics
Considerations when generating an embed token
Feedback
Was this page helpful? Yes No
Power BI embedded analytics requires a capacity (A, EM, P, or F SKU) in order to publish
embedded Power BI content.
Capacity is a dedicated set of resources reserved for exclusive use. It offers dependable,
consistent performance for your content.
7 Note
You need a Power BI Pro or Premium Per User (PPU) account to publish content.
You can publish content without a Pro or PPU license by using a service principal
executing the REST API, Post Import In Group.
Power BI Embedded
Power BI Premium
Microsoft Fabric
Power BI Embedded
Power BI Embedded is for ISVs and developers who want to embed visuals into their
applications.
Applications using Power BI Embedded allow users to consume content stored on Power
BI Embedded capacity. Power BI Embedded is shipped with an A SKU.
Power BI Premium
Power BI Premium is geared toward enterprises who want a complete BI solution that
provides a single view of its organization, partners, customers, and suppliers.
Power BI Premium is a SaaS product that allows users to consume content through
mobile apps, internally developed apps, or at the Power BI portal (Power BI service). This
service enables Power BI Premium to provide a solution for both internal and external
customer facing applications.
Microsoft Fabric
Microsoft Fabric is an Azure offering that brings together new and existing components
from Power BI, Azure Synapse, and Azure Data Explorer into a single integrated
environment. Fabric uses F SKUs and supports embedding Power BI items. To read more
about F SKUs, see Microsoft Fabric licenses.
To understand which workloads are supported for each tier, refer to the Configure
workloads in a Premium capacity article.
In this table, a custom app refers to a web app created using embedded analytics. When
you embed to a custom web app as a developer (using the JavaScript or .NET SDKs, or
the REST APIs), you can control and customize the UX. This ability isn't available with
other embedding options, such as Power BI service and Power BI Mobile.
ノ Expand table
Embed in Teams
Embed in SharePoint
Embed in PowerPoint
7 Note
A Power BI Pro or Premium Per User (PPU) license is needed for publishing
content to a Power BI app workspace.
Only P SKUs and F SKUs equivalent to a F64 SKU or higher, allow free Power
BI users to consume Power BI apps and shared content in Power BI service.
Smaller SKUs require a Pro license to consume Power BI content.
The F SKU is part of Fabric. To read more about F SKUs see Microsoft Fabric
licenses.
Capacity considerations
For development testing, you can use free embed trial tokens with a Pro license. To
embed in a production environment, you must use a capacity.
) Important
Free trial tokens are limited to development testing only. Once going to
production, a capacity must be purchased. Until a capacity is purchased, the Free
trial version banner will continue to appear at the top of the embedded report.
The following table lists payment and usage considerations per capacity.
ノ Expand table
Payment and Power BI Power BI Premium Power BI Premium
usage Embedded
SKU A EM P
ノ Expand table
F2 2 N/A N/A
F4 4 N/A N/A
F8 8 EM1/A1 1
F16 16 EM2/A2 2
F32 32 EM3/A3 4
F64 64 P1/A4 8
1
These SKUs aren't available in all regions. To request using these SKUs in regions
where they're not available, contact your Microsoft account manager.
More information about SKU limits, is available here:
Related content
Embed for your customers
Embed for your organization
Embed from apps
Capacity planning in Power BI
embedded analytics
Article • 01/12/2024
Calculating the type of capacity you need for a Power BI embedded analytics
deployment can be complicated. The capacity you need depends on several parameters,
some of which are hard to predict.
7 Note
This article explains how to plan what capacity you need and how to do a load
testing assessment for Power BI embedded analytics A-SKUs.
ノ Expand table
F2 2 N/A N/A
F4 4 N/A N/A
F8 8 EM1/A1 1
F16 16 EM2/A2 2
F32 32 EM3/A3 4
F64 64 P1/A4 8
1
These SKUs aren't available in all regions. To request using these SKUs in regions
where they're not available, contact your Microsoft account manager.
1. Create a Premium Power BI Embedded capacity in Azure for the testing. Use a
subscription associated with the same Microsoft Entra tenant as your Power BI
tenant and a user account that's signed in to that same tenant.
2. Assign the workspace (or workspaces) you'll use to test to the Premium capacity
you created. You can assign a workspace in one of the following ways:
3. As the capacity admin, install the Microsoft Fabric Capacity Metrics app. Provide
the capacity ID and time (in days) to monitor, and then refresh the data.
4. Use the Power BI Capacity Load Assessment Tool to assess your capacity needs.
This GitHub repository also includes a video walk-through . Use this tool
carefully: test with up to a few dozen concurrent simulated users and extrapolate
for higher concurrent loads (hundreds or thousands, depending on your needs.)
For more information, see Assess your capacity load. Alternatively, use other load
testing tools, but treat the iFrame as a black box and simulate user activity via
JavaScript code.
5. Use the Microsoft Fabric Capacity Metrics app that youinstalled in step 3 to
monitor the capacity utilization incurred via the load testing tool. Alternatively, you
can monitor the capacity by checking the Premium metrics by using alerts in Azure
Monitor.
Consider using a larger SKU for your capacity if the actual CPU incurred on your capacity
by the load testing is approaching the capacity limit.
Set up autoscale
You can use the following autoscaling technique to elastically resize your A-SKU capacity
to address its current memory and CPU needs.
Use the Capacities Update API to scale the capacity SKU up or down. To see how to
use the API to create your own scripts for scaling up and down, see a runbook
PowerShell script capacity scale-up sample .
Use Monitor alerts to track the following Power BI Embedded capacity metrics:
Overload (1 if your capacity's CPU has surpassed 100 percent and is in an
overloaded state, otherwise 0)
CPU (percentage of CPU utilization)
CPU Per Workload if specific workloads (like paginated reports) are used
Configure the Monitor alerts so that when these metrics hit the specified values, a
script run is triggered that scales the capacity up or down.
For example, you can create a rule that invokes the scale-up capacity runbook to update
the capacity to a higher SKU if the overload is 1 or if the CPU value is 95 percent. You
can also create a rule that invokes a scale-down capacity runbook script to update the
capacity to a lower SKU if the CPU value drops below 45 or 50 percent.
You can also invoke scale-up and scale-down runbooks programmatically on demand
before and after a semantic model is refreshed. This approach ensures your capacity has
enough RAM (GB) for large semantic models that use that capacity.
Related content
Capacity and SKUs in Power BI embedded analytics
Power BI Embedded performance best practices
Feedback
Was this page helpful? Yes No
This article walks you through how to create a Power BI Embedded capacity in Microsoft
Azure. Power BI Embedded simplifies Power BI capabilities by helping you quickly add
stunning visuals, reports, and dashboards to your apps.
Prerequisites
Before you can create a capacity, you need the following:
1. An Microsoft Entra ID: Your subscription must be associated with a Microsoft Entra
organizational tenant. Also, you need to be signed in to Azure with an account in
that tenant. Microsoft personal accounts aren't supported. To learn more, see
Authentication and user permissions.
2. A Power BI tenant: At least one account in your Microsoft Entra tenant must be
signed up for Power BI. Sign into Power BI from that account.
3. Azure subscription: Visit Azure Free Trial to create an account, if you don't
already have one.
4. Resource group: Use a resource group you already have or create a new one.
Create a capacity
7 Note
To create or manage a capacity, you must have the built-in role of contributor or
higher.
Before creating a Power BI Embedded capacity, make sure you're signed into Power BI at
least once.
Portal
Resource group - The resource group that contains this new capacity.
Pick from an existing resource group, or create another. For more
information, see Azure Resource Manager overview.
Location - The location where Power BI is hosted for your tenant. Your
default location is your home region, but you can change the location
using Multi-Geo options.
Size - The A SKU you require. For more information, see SKU memory
and computing power.
Related content
Manage capacities
Pause and start your Power BI Embedded capacity in the Azure portal
Embed Power BI content into an application for your customers
Feedback
Was this page helpful? Yes No
Multi-Geo support for Power BI Embedded means that independent software vendors
(ISVs) and organizations that build applications using Power BI Embedded to embed
analytics into their apps can now deploy their data in different regions around the world.
Now, customers using Power BI Embedded can set up an A capacity using Multi-Geo
options, based on the same features and limitations that Power BI Premium supports
using Multi-Geo.
The locations are also available in the Admin portal at PowerBI.com . In the Admin portal,
choose Capacity settings, and then switch to the Power BI Embedded tab.
2. Assign all workspaces from the existing capacity to the new capacity.
It's important to note that if you decide to delete a capacity without reassigning its
content, all the content in that capacity moves to a shared capacity in your home region.
1. Get Capacities - The API returns a list of capacities with access to the user. The
response includes a property called region that specifies the capacity's location.
Related content
What is Power BI Embedded?
Feedback
Was this page helpful? Yes No
This article explains how to simplify capacity planning for Power BI embedded analytics
by using the Power BI Capacity Load Assessment Tool , created for automating load
testing for Power BI embedded analytics capacities (A, EM or P SKUs).
The tool generates load on a capacity by continuously rendering each report with new
filter values (to prevent unrealistically good performance due to report caching), until
the token required for authenticating the tool against the service, expires.
Here are some examples of how you can use the planning tool.
Capacity administrators can get a better understanding of how many users their
capacity can handle in a given time frame.
Report authors can understand the user load effect, as measured with the Power BI
desktop's Performance Analyzer.
You can see renders happening in real time on your browser.
Using SQL Server Profiler, you can connect to the XMLA endpoints of the
capacities being measured, to see the queries being executed.
See the load test effects in the premium capacity metrics app's Datasets page.
Capacity admins can use this tool to generate load, and see how that load shows
up.
The repository is open source. Users are encouraged to contribute by adding more tools
related to Power BI Premium and Embedded capacities, and improving the existing
ones.
Related content
Capacity and SKUs in Power BI embedded analytics
Power BI Embedded performance best practices
Feedback
Was this page helpful? Yes No
This article walks through how to scale a Power BI Embedded capacity in Microsoft
Azure. Scaling allows you to increase or decrease the size of your capacity.
This assumes you created a Power BI Embedded capacity (A SKU). If you haven't, see
Create Power BI Embedded capacity in the Azure portal to get started.
7 Note
This article describes the process for vertically scaling A SKUs. It doesn't talk about
horizontal scaling or P SKUs.
Scale a capacity
1. Sign into the Azure portal .
3. Select the capacity you want to scale. Notice that the current scale for each
capacity is listed under SKU.
When you make your selection, information about that capacity is displayed next
to it. This information again includes the current scaling under SKU.
Power BI Embedded Azure Resource Manager REST APIs, for example Capacities -
Update. See this runbook PowerShell script capacity scale-up sample on how to
use this API call can create your own versions of upscale and down-scale scripts.
For example, you can create a rule that if Overload = 1 or if CPU = 95%, then the
upscale capacity runbook script will be invoked to update the capacity to a higher
SKU.
You can also create a rule that if the CPU drops below 50%, a down-scale runbook
script will be invoked to update the capacity to a lower CPU.
Use the Power BI Embedded sample script as a reference for scaling a capacity.
Related content
Pause and start your Power BI Embedded capacity in the Azure portal
How to embed your Power BI dashboards, reports, and tiles .
Feedback
Was this page helpful? Yes No
This article walks through how to pause and start a Power BI Embedded capacity in
Microsoft Azure. This article assumes you have a Power BI Embedded capacity. If you
haven't, see Create Power BI Embedded capacity in the Azure portal to get started.
If you don't have an Azure subscription, create a free account before you begin.
7 Note
Pausing a capacity can prevent content from being available within Power BI. Make
sure to unassign workspaces from your capacity before pausing the capacity to
prevent workspace interruption.
Related content
Scale your Power BI Embedded capacity .
Feedback
Was this page helpful? Yes No
This article explains how an ISV or any other Power BI Embedded app owner with many
customers can use service principal profiles to map and manage each customer's data
as part of their Power BI embed for your customers solution. Service principal profiles
allow the ISV to build scalable applications that enable better customer data isolation
and establish tighter security boundaries between customers. This article discusses the
advantages and the limitations of this solution.
7 Note
The word tenant in Power BI can sometimes refer to an Azure AD tenant. In this
article, however, we use the term multitenancy to describe a solution where a single
instance of a software application serves multiple customers or organizations
(tenants) requiring physical and logical separation of data. . For example, the Power
BI app builder can allocate a separate workspace for each if its customers (or
tenants) as we show below. These customers are not necessarily Azure AD tenants,
so don’t confuse the term multitenant application that we use here, with the Azure
AD multitenant application.
A service principal profile is a profile created by a service principal. The ISV app calls the
Power BI APIs using a service principal profile, as explained in this article.
The ISV application service principal creates a different Power BI profile for each
customer, or tenant. When a customer visits the ISV app, the app uses the
corresponding profile to generate an embed token that will be used to render a report
in the browser.
Using service principal profiles enables the ISV app to host multiple customers on a
single Power BI tenant. Each profile represents one customer in Power BI. In other words,
each profile creates and manages Power BI content for one specific customer's data.
7 Note
This article is aimed at organizations that want to set up a multitenant app using
service principal profiles. If your organization already has an app that supports
multitenancy, and you want to migrate to the service principal profile model, see
Migrate to the service principal profiles model.
Create a profile
Set the profile permissions
Create a workspace for each customer
Import reports and semantic models into the workspace
Set the semantic model connection details to connect to the customer's data
Remove permissions from the service principal (optional, but helps with scalability)
Embed a report into the application
All the above steps can be fully automated using Power BI REST APIs.
Prerequisites
Before you can create service principal profiles, you need to:
Set up the service principal by following the first three steps of Embed Power BI
content with service principal.
From a Power BI tenant admin account, enable creating profiles in the tenant using
the same security group you used when you created the service principal.
Create a profile
Profiles can be created, updated, and deleted using Profiles REST API.
HTTP
{"displayName":"ContosoProfile"}
A service principal can also call GET Profiles REST API to get a list of its profiles. For
example:
HTTP
A profile belongs to the service principal that created it, and can only be used by
that service principal.
A profile owner can't be changed after creation.
A profile isn't a standalone identity. It needs the service principal Azure AD token
to call Power BI REST APIs.
ISV apps call Power BI REST APIs by providing the service principal Azure AD token in
the Authorization header, and the profile ID in the X-PowerBI-Profile-Id header. For
example:
HTTP
Create a workspace
Power BI workspaces are used to host Power BI items such as reports and semantic
models.
HTTP
{
"name": "ContosoWorkspace"
}
Grant access permissions to the workspace. The service principal profile must have
Admin access to the workspace.
HTTP
POST https://api.powerbi.com/v1.0/myorg/groups/f313e682-c86b-422c-a3e2-
b1a05426c4a3/AssignToCapacity HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK…wNkZUiIsg
Content-Type: application/json; charset=utf-8
X-PowerBI-Profile-Id: a4df5235-6f18-4141-9e99-0c3512f41306
{
"capacityId": "13f73071-d6d3-4d44-b9de-34590f3e3cf6"
}
HTTP
POST https://api.powerbi.com/v1.0/myorg/groups/f313e682-c86b-422c-a3e2-
b1a05426c4a3/imports?datasetDisplayName=ContosoSales HTTP/1.1
Authorization: Bearer eyJ...kZUiIsg
Content-Type: multipart/form-data; boundary="8b071895-b380-4769-9c62-
7e586d717ed7"
X-PowerBI-Profile-Id: a4df5235-6f18-4141-9e99-0c3512f41306
Fiddler-Encoding: base64
LS04YjA3MTg5NS1iMzgwLTQ3...Tg2ZDcxN2VkNy0tDQo=
Use dataset parameters to create a semantic model that can connect to different
customers' data sources. Then, use the Update parameters API to define which
customers' data the semantic model connects to.
In either case, you should end up with single-tenant semantic models (one semantic
model per customer) in Power BI.
Update Datasource API: Create a .pbix that points to a data source with sample
content. Then, import the .pbix into a customer's workspace and change the
connection details using the Update Datasource API.
Create a report using parameters that only retrieve the relevant customer's data. Then,
import a report into a customer's workspace and change the parameters to retrieve the
relevant customer's data only.
Embed a report
After the setup is complete, you can embed customer reports and other items into your
application using an embed token.
When a customer visits your application, use the corresponding profile to call the
GenerateToken API. Use the generated embed token to embed a report or other items
in the customer's browser.
{
"datasets": [
{
"id": "3b1c8f74-fbbe-45e0-bf9d-19fce69262e3"
}
],
"reports": [
{
"id": "3d474b89-f2d5-43a2-a436-d24a6eb2dc8f"
}
]
}
Design aspects
Before setting up a profile-based multitenant solution, you should be aware of the
following issues:
Scalability
Automation & operational complexity
Multi-Geo needs
Cost efficiency
Row level security
Scalability
By separating the data into separate semantic models for each customer, you minimize
the need for large semantic models. When the capacity gets overloaded, it can evict
unused semantic models to free memory for active semantic models. This optimization
is impossible for a single large semantic model. By using multiple semantic models, you
can also separate tenants into multiple Power BI capacities if necessary.
Even with these advantages, you should consider the potential scale of your application.
For example, the number of workspace items a profile can access is limited. Today, a
profile has the same limits as a regular user. If the ISV application allows end users to
save a personalized copy of their embedded reports, a customer's profile will have
access to all the created reports of all its users. This model can eventually exceed the
limit.
For example, creating a profile and a workspace for a new tenant is a common task,
which can be fully automated with the Power BI REST API.
Multi-Geo needs
Multi-Geo support for Power BI Embedded means that ISVs and organizations that build
applications using Power BI Embedded to embed analytics into their apps can now
deploy their data in different regions around the world. To support different customers
in different regions, assign the customer's workspace to a capacity in the desired region.
This task is a simple operation that doesn't involve extra cost. However, if you have
customers that need data from multiple regions, the tenant profile should duplicate all
items into multiple workspaces that are assigned to different regional capacities. This
duplication may increase both cost and management complexity.
For compliance reasons, you may still want to create multiple Power BI tenants in
different regions. Read more about multi-geo.
Cost efficiency
Application developers using Power BI Embedded need to purchase a Power BI
Embedded capacity. The profile-based separation model works well with capacities
because:
The smallest object you can independently assign to a capacity is a workspace (you
can't assign a report, for example). By separating customers by profiles, you get
different workspaces - one per customer. This way, you get full flexibility to
manage each customer according to their performance needs, and optimize
capacity utilization by scaling up or down. For example, you can manage large and
essential customers with high volume and volatility in a separate capacity to ensure
a consistent level of service, while grouping smaller customers in another capacity
to optimize costs.
When buying a capacity, consider the limit on the number of parallel refreshes, as
refresh processes might need extra capacity when you have multiple semantic models.
Before using RLS, however, make sure you understand its limitations. All the data for all
customers are in one large Power BI semantic model. This semantic model runs in a
single capacity with its own scaling and other limitations.
Even if you use service principal profiles to separate your customers' data, you can still
use RLS within a single customer's semantic model to give different groups access to
different parts of the data. For example, you could use RLS to prevent members of one
department from accessing data of another department in the same organization.
Considerations and limitations
Service Principal Profiles are only supported through the Power BI REST API and
the Power BI .NET SDK . Service Principal Profiles are not supported in Power BI
through the XMLA endpoint or the Tabular Object Model (TOM).
Service principal profiles aren't supported with Azure Analysis Services (AAS) in live
connection mode.
In Power BI, a profile belongs to the service principal that created it. That means, a
profile can't be shared with other principals. With this limitation, if you want to change
the service principal for any reason, you'll need to recreate all the profiles and provide
the new profiles access to the relevant workspaces. Often, the ISV application needs to
save a mapping between a profile ID and a customer ID in order to pick the right profile
when needed. If you change the service principal and recreate the profiles, the IDs will
also change, and you may need to update the mapping in the ISV application database.
2 Warning
Be very careful when deleting a service principal. You don't want to accidentally
lose data from all its associated profiles.
If you delete the service principal in the active directory, all its profiles in Power BI will be
deleted. However, Power BI won't delete the content immediately, so the tenant admin
can still access the workspaces. Be careful when deleting a service principal used in a
production system, especially when you created profiles using this service principal in
Power BI. If you do delete a service principal that has created profiles, be aware that
you'll need to recreate all the profiles, provide the new profiles access to the relevant
workspaces, and update the profile IDs in the ISV application database.
Data separation
When data is separated by service principal profiles, a simple mapping between a profile
and customer prevents one customer from seeing another customer's content. Using a
single service principal requires that the service principal has access to all the different
workspaces in all the profiles.
To add extra separation, assign a separate service principal to each tenant, instead of
having a single service principal access multiple workspaces using different profiles.
Assigning separate service principals has several advantages, including:
Human error or a credential leak won't cause multiple tenants' data to be exposed.
Certificate rotation can be done separately for each tenant.
However, using multiple service principals comes with a high management cost. Select
this path only if you need the extra separation. Keep in mind that the configuration of
which data to show an end user is defined when you generate the embed token, a
backend-only process that end users can't see or change. Requesting an embed token
using a tenant-specific profile will generate an embed token for that specific profile,
which will give you customer separation in consumption.
System-Managed identity
Due to the above considerations, we recommend that you use a user-assigned managed
identity.
Example
For an example of how to use service principal profiles to manage a multitenant
environment with Power BI and App-Owns-Data embedding, download the App owns
data multitenant repository from Power BI Dev Camp (third party site).
Next steps
Use the Power BI SDK with service principals
Migrate multitenancy apps to the service principal profiles model
Develop scalable multitenancy applications with Power BI embedding
Use the Power BI SDK with service
principal profiles
Article • 03/07/2023
This article explains how to use the SDK with service principal profiles. There are two
ways to connect a Power BI client to a service principal profile. You can:
Once the client is associated with a profile, you can get the current service principal
profile from the Power BI client.
When you create a Power BI client with the profile object ID, every API call that uses the
client has the X-PowerBI-profile-id in the request header.
For example:
HTTP
GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups
WithHttpMessagesAsync .
C#
For example,
HTTP
GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups
In the preceding code sample, the profile header isn't part of the client default headers,
because the code doesn't add the profile header. You need to specify the profile header
with every API request.
Make sure you avoid duplications. For example, creating a client with a profile object ID
and then specifying the header with the API request results in unauthorized errors.
C#
Next steps
Service principal profiles in Power BI Embedded
Migrate multi-customer applications to
the service principal profiles model
Article • 06/04/2024
This article describes how you can get better scalability by migrating your Power BI
embedded analytics multi-customer apps to the service principal profiles model.
7 Note
This article is aimed at organizations that already have an app that supports
multiple customers from a single Power BI tenant.
Not all apps benefit from the service principal model. For example, the following
apps shouldn't migrate:
Small apps that maintain one service principal with a small number of objects.
Apps that use one multiple service principal per customer
Prerequisites
It's important to read about service principal profiles before you start the migration.
Set up the service principal by following the first three steps of Embed Power BI
content with service principal.
From a Power BI tenant admin account, enable creating profiles in the tenant.
Migrate to service principal profiles
Migrating to service principal profiles involves the following steps:
It's a good idea to save a mapping of each data customer ID with its corresponding
profile ID in your database. You'll need this mapping later to make API calls with the
tenant profile.
If you don't have one workspace per customer, use the corresponding profile to call
Create Group User API to create a new workspace for each customer.
If your app uses a separate semantic model for each customer, the semantic model
design can work as it is.
If your app uses one semantic model with row level security (RLS) to provide
different data to different customers, you can get better scalability by creating a
separate semantic model for each customer and using profiles as described in this
article.
Once the items are ready, import them into the relevant workspaces. To automate the
process, consider using the Import API.
Some apps have management code that automates onboarding a new customer
upon registration. Often, the management code uses Power BI REST APIs to create
workspaces and import content. Most of this code should remain the same, but
you may need to adapt the following details:
Each time you create a new customer tenant, create a new service profile to be
the creator and administrator of the workspace for that tenant.
If you decide to reorganize your Power BI content, edit the code to reflect the
changes.
Replace the API caller. Make sure a profile calls the GenerateToken API because in
the profiles model, only the specific profile has access to the customer's content.
Validate
It's best practice to test your app thoroughly before moving it to the profiles model.
Reports may load even if there are bugs in the SaaS application code because you didn't
delete the older permissions on the workspaces.
Clean up code: You might want to disable old code paths to ensure that you're
only running new code that relies on profiles.
Clean up workspaces and permissions in Power BI: If you created new workspaces,
you can delete the old workspaces that are no longer in use. If you reused the
same workspaces, you may want to delete the older permissions (such as master
user permissions) on the workspace.
Related content
Manage service principal profiles
Feedback
Was this page helpful? Yes No
Power BI Embedded has several ways to filter data and restrict data access to specific
users. Some of these security methods are:
Row-Level Security (RLS) RLS enables you to control access to rows in a database
table through group memberships. When you embed items, you can use RLS to
restrict user access to specific rows of data. With RLS, different users can work with
the same items but see different data.
Object-level security (OLS) OLS enables you to hide specific tables or columns
from report viewers. You can also secure sensitive object names and metadata to
prevent them from being discovered.
Small to medium sized ISVs who serve multiple customers and want each customer
to see their own data only. If the customer base isn't too large, the ISV can use a
single semantic model and report for all their customers, and use dynamic RLS to
filter the data for each customer.
ISVs who serve one or more large customers or organizations with multiple
departments. The ISV can separate their customers with a combination of static
and dynamic RLS, and possibly OLS.
Large scale ISVs with thousands of customers where each customer needs to see
only their own data. The ISV can use workspace based isolation with service
principal profiles. Each customer can get their own report and semantic model and
the ISV can further filter within each organization using RLS.
Standard RLS
Embedding paginated reports
SQL Server Analysis Services
Azure Analysis Services
Object-level security
Related content
Generate an embed token
Row-Level security (RLS) with Power BI
Feedback
Was this page helpful? Yes No
This article explains how to embed Power BI content that uses RLS into a standard Power
BI app owns data application.
Prerequisites
For a detailed explanation on how to set up RLS, refer to Row-level security (RLS) with
Power BI.
When you define your RLS roles, keep in mind that the DAX expression you use
determines if the RLS model is static or dynamic.
Static security works best for an ISV that serves one or a few big customers where each
department needs to access different data.
Static security
With static roles, you pass the role to Power BI when you generate an embed token, and
the user sees data according to that role. To create static security roles, enter a fixed
value in the DAX filter.
For example, you can define the role of Eastern US as [Region] = "East"
Let's say [email protected] is a user of your app. You want to give John access to data
from the Eastern US role. To embed a report for [email protected], generate an embed
token using the Eastern US role. The resulting data is filtered for [Region] = "East" .
7 Note
When you generate the embed token, you need to supply a username, but the
username can be any string. Static roles have a fixed value that isn't dependent on
a username, so once the ISV determines the user's role and passes it to the embed
token, the data is filtered according to that role regardless of what username was
passed.
Dynamic security
Dynamic security uses the DAX function ( username() or userprincipalname() ) to define
the role.
In the user owns data scenario, the RLS model automatically filters data based on the
roles of the specific user. With app owns data, Power BI doesn't know the usernames of
the ISV's customers, so you can use the username() function to dynamically filter the
data.
Create a role in Power BI Desktop using the username() function. For example, you can
create a role called CountryDynamic and define it as [CountryRegionCode] = username()
Let's say you want to give your user, [email protected], access to data for France.
When you generate an embed token for [email protected], you pass the string France
as the username in the CountryDynamic role. Your data is filtered according to
[CountryRegionCode] = France.
JSON
{
"accessLevel": "View",
"identities": [
{
"username": "France",
"roles": [ "CountryDynamic"],
"datasets": [ "fe0a1aeb-f6a4-4b27-a2d3-b5df3bb28bdc" ]
}
]
}
When using dynamic security in this scenario, you only need one role for all regions. The
region name is used as the effective identity.
You can now embed the report into your app. The report filters data according to the
RLS applied.
C#
// Create a request for getting an embed token for the rls identity
defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new
GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new
GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new
List<GenerateTokenRequestV2TargetWorkspace>() { new
GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity }
);
return embedToken;
}
Related content
RLS guidance
Generate an embed token
Feedback
Was this page helpful? Yes No
This article explains how to embed a paginated report that uses RLS (row-level security)
into your app owns data application.
7 Note
Prerequisites
This article assumes that you know how to embed a Power BI paginated report. It
explains how to generate the embed token so that the report only shows what the
user has permission to access.
Paginated reports are created using the SQL Server Reporting Services engine, and
not the Power BI (Analysis Services) engine, so the RLS filtering is set up in Power
BI Report Builder.
Then, pass the UserID to the Embed Token - Generate Token API to get the embed
token.
2. From the Expression dropdown menu, select the parameter you want to use for
filtering the data.
3. Select the Value function button.
4. In the Expression window, from the Category list, select Built-in Fields.
5. From the Item list, select UserID and select OK.
6. In the Semantic model Properties window, verify that the expression is your
selected parameter = UserID, and select OK.
Using a query
1. In the Semantic model Properties window, from the left navigation pane, select
Parameters, and select Add.
2. In the Parameter Name field enter @UserID, and in the Parameter Value add
[&UserID].
3. From the left pane, select Query, in the Query add the UserID parameter as part of
your query, and select OK.
7 Note
You can only generate a token using a service principal. You can't generate a token as a
master user. The service principal has to have at least member permissions to the
workspace in the Power BI service. (If the service principal is a contributor or viewer it
isn't able to generate a token).
To generate a token, assign the username field with the information you want to display.
For example, in a paginated report that has a color parameter, if you enter green in the
username field, the embed token restricts the embedded data to just the data that has
JSON
{
"reports": [
{
"id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
}
],
"identities": [
{
"username": "green",
"reports": [
"8d57615e-cfed-4d60-bd21-7dc05727193c"
]
}
]
}
7 Note
If you generate embed token without specifying a user-id, the object-id of service
principal will be used.
Feedback
Was this page helpful? Yes No
This article explains how to embed Power BI content with an on-premises Analysis
Services Tabular Model live connection into a standard Power BI app owns data
application. This article applies to all live connection SSAS models whether or not they
implement RLS.
In this scenario, the database is on the SSAS (on-premises) model, and the Power BI
engine connects to it via a gateway. The security roles (RLS) and permissions, if there are
any, are defined in the SSAS model, and not in Power BI Desktop.
ISV setup
On-premises row level security is only available with a live connection, but you can
create a live connection to any database whether or not it implements RLS. This
includes:
To embed a report from an SSAS model, you need to do the following actions:
For more information on creating and managing a gateway see Add or remove a
gateway data source.
Users with impersonate (override) permission have a key icon next to their name.
Follow these instructions to grant gateway permissions to your master user, service
principal, or service principal profile.
Master user
For more information see Map user names for Analysis Services data sources.
2. From the data sources list, select the SQL Server Analysis Services Database and
select Connect.
3. Fill in your Analysis Services tabular instance details and select Connect live. Then
select OK.
Generate an embed token
To embed your report in the embed for your customers scenario, generate an embed
token that passes the effective identity to Power BI. All live connections to AS engines
need an effective identity even if there's no RLS implemented.
If there's no RLS set up, only the Admin has access to the database so you want to use
the Admin as the effective identity.
Example:
C#
// Define the user identity and roles. Use one of the following:
// Create a request for getting an embed token for the rls identity
defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new
GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new
GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new
List<GenerateTokenRequestV2TargetWorkspace>() { new
GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity }
);
return embedToken;
}
Now you can embed your report in your app, and your report will filter data according
to the permissions of the user accessing the report.
Related content
Generate an embed token
Feedback
Was this page helpful? Yes No
This article explains how to embed a Power BI report that uses data stored in Azure
Analysis Services (AAS), in an embed for your customers scenario. This article is aimed at
independent software developers (ISVs), who want to embed a report with AAS data
whether or not the database implements row-level security (RLS).
Prerequisites
You'll need a report with a live connection to AAS database, with or without RLS.
Follow these steps to create a new role and add the customData function to the role.
2. In the General settings, provide a Role Name and set the database permissions to
Read only.
3. In the Membership settings, add the users that are going to call the Embed Token -
Generate Token API. If you're using a service principal that's not an admin, add that
as well.
4. In the Row filters settings, set your DAX query using the CUSTOMDATA() function.
Service principal
If you're using a service principal to embed the report, make sure the service principal is
a server admin or role member of AAS. To grant AAS admin permissions to the service
principal, see Add a service principal to the server administrator role. To add the service
principal as a role member, go to the Membership settings.
7 Note
If the service principal is not an admin, and you don't want to make it an admin of
the workspace when you migrate, migrate that model into a separate workspace
where you can give it admin permissions.
Username (Optional if no RLS. Required for RLS) - The username must be the
same as API caller (in this case, the Master user's UPN). If the database doesn't
use RLS, and no username is provided, the master user's credentials are used.
Role (required for RLS) - The report will only display data if the effective
identity is a member of the role.
Example:
Define the user identity and roles for one of the following three scenarios:
C#
C#
var rlsidentity = new EffectiveIdentity( // If dynamic RLS
username: "[email protected]",
roles: new List<string>{ "MyRoleWithCustomData" },
customData: "SalesPersonA"
datasets: new List<string>{ datasetId.ToString()}
)
7 Note
C#
Use the embed token to embed the report into your app or website. Your report will
filter data according to the applied RLS in the report.
Next steps
Row-level security with Power BI Embedded
Embed a report with cloud-based RLS
paginated-reports-row-level-security
Embed a report with token-based
identity (SSO)
Article • 12/21/2023
The token-based identity allows an ISV to use an Microsoft Entra access token to pass
the identity of a customer to an Azure SQL database managed in the customer's tenant.
ISV customers that keep and manage their data in Azure SQL Database can keep their
data secure in their tenant when integrating with Power BI Embedded in the ISV app.
When generating the embed token, specify the identity of the user in Azure SQL by
passing that user's Microsoft Entra access token for the Azure SQL server. The access
token is then used to pull only the relevant data for that user from Azure SQL, for that
specific session.
Set up in portal
1. From the Power BI portal, select Semantic model > More Options (three
dots) > Settings > Data source credentials > Edit credentials.
JSON
{
"datasets": [
{
"id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
}
],
"reports": [
{
"allowEdit": false,
"id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
}
],
"datasourceIdentities": [
{
"identityBlob": "eyJ…",
"datasources": [
{
"datasourceType": "Sql",
"connectionDetails": {
"server": "YourServerName.database.windows.net",
"database": "YourDataBaseName"
}
}
]
}
]
}
The following example shows an embedded Power BI report with SSO and RLS applied
to the dataset:
Object-level security
Article • 06/03/2024
This article explains how to embed Power BI content that uses OLS in a Power BI App
owns data (embed for your customers) scenario.
In this scenario, the ISV has a table with sensitive data and metadata that they want to
hide from the report customers.
Prerequisites
This article assumes that you have a report that uses OLS and that you want to embed it
into an app. To create a report that uses OLS, see Object-level security (OLS).
Cloud OLS
Live connected report to Azure Analysis Services with OLS roles
Live connected report to SQL Server Analysis Services with OLS roles
If the report you want to embed is using one of the following scenarios, you might need
to take some extra steps:
The following example shows how to generate a token to hide a table with sensitive
information using OLS:
C#
// Create a request for getting an embed token for the OLS identity
defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new
GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new
GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new
List<GenerateTokenRequestV2TargetWorkspace>() { new
GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { olsIdentity }
);
return embedToken;
}
Related content
Object-level security in Azure Analysis Services
Feedback
Was this page helpful? Yes No
Microsoft's partners offer accelerators to expedite the integration of embedded analytics solutions with your applications.
These accelerators are designed to be cost-effective and efficient, reducing the time-to-market for your Power BI embedded
analytics solutions, particularly for multitenant, customer-facing applications. They're particularly useful for quickly
advancing proof-of-concept (PoC) or pilot projects. Accelerators simplify the implementation process and assist in
managing Power BI capacity and billing.
Enhanced Personalization and Functionality: Accelerators enhance user experience, offering personalized features for
Embed for your customers scenario. This includes flexible options for end-user authentication, authorization,
multitenancy, and permissions management.
Simplified Implementation: The complex details of implementing Power BI embedded solutions are abstracted away.
Some accelerators offer backend functionality through an SDK, with the need for additional client front-end code
development.
Customization and White-Labeling: Once installed, you can white-label the solution, tailor its capabilities, and
customize the user interface. White-label the solution, configure its capabilities, and customize the user experience
once installed.
Acquisition and Ownership: Accelerators are developed and owned by Microsoft's partners and need to be purchased
directly from them. They're cloud-based solutions deployed in your Azure environment, utilizing Azure and Fabric with
Power BI services from Microsoft. Existing Microsoft subscriptions or licenses can be reused, the accelerators are also
available for deployment through the Azure Marketplace.
Integration Flexibility: Accelerators can function as standalone applications or be fully integrated with your existing
application, as outlined in the Deployment and integration options table.
Watch a video that provides an overview of embedded solution accelerator partner programs .
Different partner accelerators vary in their deployment, acquisition/billing methods, and capabilities. The following table
briefly describes each of the current partners’ embedded analytics solution accelerators:"
There are several partner accelerators that vary in their deployment, acquisition/billing options and their capabilities.
ノ Expand table
The following diagram illustrates the main modules of an accelerator and how they relate to your existing multitenant web
application:
Accelerator capabilities
Different accelerators provide different frontend and backend capabilities including the following options:
Frontend capabilities
Navigation menu for categories and items of Power BI
Action bar above the Power BI iFrame to control the UX and invoke functionality
End user bookmark management & visual personalization
Export report to file printouts (PDF, PPTX, PNG, and more for Paginated reports)
Show each tenant user only their own data even when using the same report across the tenant
Show the user only the items and data they have access to
Allow switching to edit mode based on user permissions (access level on report)
To see which partner's solution contains which options, see the comparison tables.
Backend capabilities
The following features and capabilities are available in the backend and admin modules of the accelerators:
Backend module
Support multiple end user authentication providers, potentially a different one per tenant
Generate and refresh access and embed tokens per tenant workspace isolation and user permissions
Support frontend features: asynchronous print to file and report subscriptions, scheduling & distribution
Expose backend SDK for your custom frontend embedded as iFrame in the existing ISV app
Isolate tenant PBI access with dedicated service principal profile identity to create/access tenant’s workspace
Optionally sync & reuse existing information on the app’s tenants and their end users
Manage tenant's end user access of PBI items and data (with RLS/dynamic binding for dataset)
Capacity management
Assign workspace to capacity to support global multi-geo deployment and to scale out with multiple capacities
Tenant use monetization and streamlined licensing billing & payment processing
To see which partner's solution contains which options, see the comparison tables in the next section.
Comparison of accelerators from our partners
The following tables compare features of the different accelerators from our partners. The tables are divided into the
following sections:
Deployment options
Acquisition and billing options
Added capabilities
Partner Stand alone URL redirect Embedded in App’s iFrame Backend + SDK only
(accelerator)
Shift Analytics ✔ ✔ ✔
The Reporting Hub
MAQ Software ✔
EmbedFAST
iLink Digital ✔
EmbeDash
Shift Analytics ✔ ✔
The Reporting
Hub
MAQ Software ✔ ✔
EmbedFAST
iLink ✔ ✔
EmbeDash
Added capabilities
ノ Expand table
Partner Personal Report Control Navigation Multi- Tenant Power BI Report Tenant Multi-
bookmarks Printout UX options Menu tenancy specific item subs. billing language
authN publishing scheduling & portal
& & payment support
white- distribution processing
labeling
Shift ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Analytics
The
Partner Personal Report Control Navigation Multi- Tenant Power BI Report Tenant Multi-
bookmarks Printout UX options Menu tenancy specific item subs. billing language
authN publishing scheduling & portal
& & payment support
white- distribution processing
labeling
Reporting
Hub
MAQ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Software
EmbedFAST
iLink Digital ✔ ✔ ✔ ✔ ✔ ✔
EmbeDash
Related content
To watch interview video recordings describing the accelerator program and each accelerator visit the Microsoft
Partner Showcase - Embedded Analytics Solution Accelerators page .
To learn more about each partner’s solution accelerator, visit their corresponding product website:
EmbedFAST
EmbeDash
Find a Microsoft partner for consulting and assistance in building Power BI content.
Feedback
Was this page helpful? Yes No
This article discusses some common issues that can come up when embedding content
from Power BI.
Troubleshooting tools
Fiddler Trace
Fiddler is a free tool from Telerik that monitors HTTP traffic. You can see the traffic
with the Power BI APIs from the client machine. This tool might show errors and other
related information.
C#
return errorText;
}
We recommend logging the Request ID (and error details for troubleshooting). Provide
the Request ID when approaching Microsoft support.
App registration
Application object ID
The application object ID, also known simply as the object ID, is the unique ID of your
Microsoft Entra application object.
To get the application object ID, navigate to your Microsoft Entra app, and copy it from
the Overview.
Principal object ID
The principal object ID, also known simply as the object ID, is the unique ID of the
service principal object associated with your Microsoft Entra application.
To get your principal object ID, navigate to your Microsoft Entra app, and from the
Overview, select the app link in Managed application in local directory.
If you're using Power BI Embedded and Microsoft Entra direct authentication, you might
receive a message like the previous message when you try to sign in, because direct
authentication isn't enabled.
You can turn direct authentication back on using an Microsoft Entra policy that is scoped
to the organization, or a service principal.
To create this policy, you need to be a Global Administrator for the directory where
you're creating the policy and assigning it. Here's a sample script for creating the policy
and assigning it to the SP for this application:
2. Run the following PowerShell commands line-by-line (making sure the variable
$sp doesn't have more than one application as a result).
PowerShell
Connect-MgGraph -Scopes
"Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration"
$params = @{
"@odata.id" =
"https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$polic
y.Id"
}
New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId
$sp.Id `
-BodyParameter $params
After assigning the policy, wait approximately 15-20 seconds for propagation before
testing.
When a non-admin user tries to sign in to an application for the first time while granting
consent, then gets one of the following errors:
Output
ConsentTest needs permission to access resources in your organization
that only an admin can grant. Ask an admin to grant permission to this
app before you can use it.
Output
Root cause:
Enable user consent for the entire tenant (all users, all applications):
1. In the Azure portal, navigate to Microsoft Entra ID > Users and groups > User
settings.
2. Enable the Users can consent to apps accessing company data on their behalf
setting and save the changes.
An admin can grant permissions to the application - either for the entire tenant or
a specific user.
CS1061 error
Download Microsoft.IdentityModel.Clients.ActiveDirectory if you experience the
following error:
Output
https://login.microsoftonline.com/common/v2.0
https://login.microsoftonline.com/<tenant ID>
To find your tenant ID, you can use the instructions in Find the Microsoft Entra tenant ID
and primary domain name.
Data sources
ISV wants to have different credentials for the same data
source
A data source can have a single set of credentials for one master user. If you need to use
different credentials, create more master users. Then, assign the different credentials to
each of the master users' contexts, and embed using the Microsoft Entra token of that
user.
After acquiring the IError object, you should look at the appropriate common errors
table that fits the embed type you're using. Compare the IError properties with the ones
in the table and find the possible reason(s) for the failure.
ノ Expand table
Couldn't Embed
resolve cluster type doesn't
match token
type
Unauthorized
group
titled: visual
title
Semantic models
To manage which portion of the data your users can view, use one of the following
methods:
Separate the data into different semantic models. For example, you can create a
semantic model that only contains aggregated data and give your users access to
only that semantic model.
Content rendering
To resolve rendering issues in embedded Power BI items (such as reports and
dashboards), review this section.
Performance
To get the best performing embedded content, we recommend that you follow the
Power BI embedded analytics best practices.
Prerequisites
Verify that you have all the proper prerequisites before using the Embedding setup tool.
You need a Power BI Pro account and a Microsoft Azure subscription.
If you're not signed up for Power BI Pro, sign up for a free trial before you begin.
If you don't have an Azure subscription, create a free account before you begin.
You need to have your own Microsoft Entra tenant setup.
You need Visual Studio installed (version 2013 or later).
Common Issues
Some common issues you might encounter while testing with the Embed setup tool are:
If you're working with the Embed for your customers experience, save and unzip the
PowerBI-Developer-Samples.zip file. Then open the PowerBI-Developer-Samples-
master\App Owns Data folder and run the PowerBIEmbedded_AppOwnsData.sln file.
When selecting Grant permissions (the Grant permissions step), you get the
following error:
Output
The solution is to close the popup, wait a few seconds and try again. You might need to
repeat this action a few times. A time interval causes the issue from completing the
application registration process to when it's available to external APIs.
The following error message appears when running the sample app:
Output
This error occurs because the only value that isn't being injected into the sample
application is your user password. Open the Web.config file in the solution and fill the
pbiPassword field with your user's password.
Output
You need to use a Microsoft Entra account that doesn't have MFA enabled.
When you run the Embed for your organization sample app, you get the following
error:
Output
AADSTS50011: The reply URL specified in the request doesn't match the reply
URLs configured for the application: <client ID>
This error is because the redirect URL specified for the web-server application is
different from the sample's URL. If you want to register the sample application, use
https://localhost:13526/ as the redirect URL.
If you want to edit the registered application, update the Microsoft Entra registered
application, so the application can provide access to the web APIs.
If you want to edit your Power BI user profile or data, learn how to edit your Power BI
data.
Output
You need to use a Microsoft Entra account that doesn't have MFA enabled.
For further assistance, contact support or create a support ticket via the Azure
portal and provide the error messages you encounter.
Related content
Power BI Embedded Frequently Asked Questions
The user has exceeded the amount of embed token that can be generated on a
shared capacity. Purchase Azure capacities to generate embed tokens and assign
the workspace to that capacity. See Create Power BI Embedded capacity in the
Azure portal.
The Microsoft Entra authorization token expired.
The authenticated user isn't a member of the group (workspace).
The authenticated user isn't an admin of the group (workspace).
The authenticated user doesn't have permissions. Permissions can be updated
using the refreshUserPermissions API.
The authorization header might not be listed correctly. Make sure there are no
typos.
The backend of the application might need to refresh the authorization token before
calling GenerateToken . For more information, see Refresh the access token.
Console
GET https://wabi-us-north-central-
redirect.analysis.windows.net/metadata/cluster HTTP/1.1
Host: wabi-us-north-central-redirect.analysis.windows.net
...
Authorization: Bearer eyJ0eXAiOi...
...
To fix the timeout exception, resend the request with the preferClientRouting URL
query parameter set to true . If your request arrives at the wrong cluster, the Power BI
service returns a 307 Temporary Redirect HTTP response. In such cases, you need to
redirect your request to the new address specified in the response HTTPS Location
header.
JSON
When using the Datasets - Update Parameters In Group or the Datasets - Update
Datasources In Group APIs, this error might indicate that you're updating a large dataset
that isn't using the large dataset format. Use the large dataset format to avoid the error.
Related content
Power BI Embedded Frequently Asked Questions
General
What is Power BI Embedded?
Microsoft Power BI Embedded (PBIE) allows application developers to embed stunning,
fully interactive reports into their applications without having to build their own data
visualizations and controls from scratch.
Microsoft developed Power BI Embedded for ISVs wanting to embed visuals into their
applications to help their customers make analytic decisions. This spares ISVs from
having to build their own analytics' solution themselves. Embedded analytics enables
business users to access business data and execute queries against it to generate
insights within the application.
Power BI Embedded is for ISVs who want to embed visuals into their applications. Power
BI Embedded helps your customers make decisions because Power BI Embedded is for
application developers, customers of that application can consume content stored on
Power BI Embedded capacity, including anyone inside or outside the organization. You
can't share Power BI Embedded capacity content through one-click publish to Web or
one-click publish to SharePoint.
There may be some cases where an ISV (typically large), in addition to app embedding,
wants to use a P SKU to get the extra benefits of the pre-packaged Power BI service
within their organization.
For more on the differences between Premium and Embedded, see Which SKU should I
use.
Embedded
How can I autoscale an Embedded Premium
capacity?
Embedded Premium capacities don't provide an out-of-the-box vertical autoscale
feature. To learn about alternative autoscale options for Embedded Premium capacities,
see [Autoscaling in Embedded(./azure-pbie-scale-capacity.md#autoscale-your-capacity).
The capacity stays in interactive request delay mode if the previous evaluation is at
greater than 100% resource usage.
The Capacity management page in the Power BI admin portal has a utilization
notification checkbox. Users can select the threshold at which an alert will be
triggered (the default is 80%), and the email address to which utilization alerts
should be sent.
Configure an Azure Alert using the Premium CPU metric.
Technical
Where can I learn more about capacity and SKUs
in Power BI embedded analytics?
Refer to the Capacity and SKUs in Power BI embedded analytics article.
Rest APIs
PowerShell cmdlets
See Azure Products by Region for regional information about all Azure products.
An ISV can implement their own authentication and authorization for their applications.
You can use your existing directory if you already have a Microsoft Entra tenant. You can
also create a new Microsoft Entra tenant for your embedded application content
security.
To get a Microsoft Entra token, use one of the Microsoft Authentication Libraries. There
are client libraries available for multiple platforms.
The object ID found in the Managed application in local directory > Properties section is
the service principal object ID you need to use. This object ID is to reference a service
principal for operations or to make changes to the service principal object ID. Such as
applying a service principal as an admin to a workspace.
How is Power BI Embedded different from other
Azure services?
You must have a Power BI account before purchasing Power BI Embedded in Azure. Your
Power BI Embedded deployed region determines your Power BI account. Manage your
Power BI Embedded resource in Azure to:
Scale up/down
Add capacity admins
Pause/resume service
With RLS, the ISV developer controls the data filtering as part of the model creation and
embed token generation. The end user sees only what the ISV allows the user to see. In
this case, the user can choose to see less than what's being filtered, but won't be able to
bypass the RLS configuration and see more than what's allowed.
With client-side filtering (JavaScript), the ISV might decide what the end user sees in the
initial view, but they can't control changes the end user might apply to the view itself.
Since user JavaScript client code can trigger data filtering on the backend, it can't be
considered secure.
Service principals inherit the permissions for all Power BI tenant settings from their
security group. To restrict permissions, create a dedicated security group for service
principals and add it to the Except specific security groups list for the relevant, enabled
Power BI settings.
This situation matters when you add the service principal as an admin to the new
workspace. You can manage this task through the APIs or with the Power BI service.
To reference a service principal for operations or to make changes you use the service
principal object ID — for example, applying a service principal as an admin to a
workspace.
Power BI report ID
Paginated report ID (of the report the visual is connected to)
Dataset ID (of the Power BI report)
The service principal must have access to both reports (paginated and Power BI).
Request body example for the generate token call:
JSON
{
"datasets": [
{
"id": "a5d577c7-0568-4180-a6d3-0f6cc0ca3df4"
}
],
"reports": [
{
"allowEdit": false,
"id": "05024421-b4df-483c-a2ce-61202d0323ce"
},
{
"id": "f8612306-f3a8-40e1-a448-d8e05992a007"
}
]
}
7 Note
Also, you can't consume content as a user in external applications (SaaS embed), only
when you generate an embed token.
Licensing
How do I purchase Power BI Embedded?
Power BI Embedded is available through Azure.
Because Power BI Embedded allows Power BI portal use for managing and validating
embedded content, the Power BI Pro or Premium Per User (PPU) license is required to
authenticate the app inside PowerBI.com to get access to the reports in the right
repositories.
However, for creating/editing embedded reports inside your application, the end user
does not need a Pro or Premium Per User (PPU) license as the user isn't required to be a
Power BI user at all.
However, this also means that new features aren't added to any Power BI Workspace
Collection solutions. We encourage customers to plan their migration to the new Power
BI Embedded solution.
All the PBI data sources are supported. Only two Power BI Workspace Collection
data sources are supported.
Features such as Q&A, refresh, bookmarks, embedding dashboards & tiles, and
custom menus are only supported in the Power BI Embedded solution.
Capacity billing model.
If you're working with the Embed for your organization experience, save and unzip the
PowerBI-Developer-Samples.zip file. Then open the PowerBI-Developer-Samples-
Feedback
Was this page helpful? Yes No
This API provides a RESTful set of web services that enables you to create, retrieve,
update, and delete Power BI dedicated capacities.
See also
Power BI Embedded documentation
Power BI embedding documentation
Power BI REST API reference
Get an Azure AD access token
Using the Power BI REST APIs
Article • 08/31/2023
The Power BI REST APIs provide service endpoints for embedding, administration,
governance and user resources.
7 Note
When accessing Power BI REST API, your request and response content and
data may be processed by data centers in regions other than the home region
of your Power BI tenant.
Scopes
To use the Power BI REST APIs, you need to register an Azure Active Directory (Azure
AD) application in Azure. The Azure AD app establishes permissions for Power BI REST
resources, and allows access to the Power BI REST APIs. To learn how to register an app,
see Register an Azure AD application to use with Power BI.
After registering an Azure AD app, you can authenticate against it using either the Azure
AD (v1.0; ADAL) or the Microsoft identity platform (v2.0; MSAL) endpoints. To learn more
about how these authentication methods work, see Why update to Microsoft identity
platform (v2.0)?
For more information about Power BI access permissions, see Permissions and consent
in the Microsoft identity platform endpoint.
Adding scopes
To add permissions to your Azure AD app, follow these steps:
6. Expand the API you want to add permissions to, and select the permissions you
want to add to it.
Removing scopes
To remove a permissions from your Azure AD app, follow these steps:
Throttling
Power BI uses throttling to maintain optimal performance and reliability. To prevent
overuse of resources from single users, Power BI limits the number of API calls within a
time window per user.
When a user sends a number of requests that exceeds a predetermined limit during a
time window, Power BI throttles any further requests from that user for a short period.
When applications experience throttling, Power BI returns an HTTP status code 429 (Too
many requests) with a Retry-After HTTP header in the response, indicating how many
seconds the calling application has to wait before making a new request.
7 Note
Dataflow Storage Accounts Operations for working with dataflow storage accounts.
Next steps
Playground
.NET SDK
Push semantic model limitations
Article • 06/04/2024
Push semantic models are very limited in their functionality. They're designed only for a
near real-time streaming scenario to be consumed by a streaming tile in a dashboard,
and not by a Power BI report.
This article lists limitations of the Power BI REST APIs Push semantic models.
Limitations
Review the following list of limitations before using the push semantic models APIs.
75 max columns
75 max tables
If table has 250,000 or more rows, 120 POST rows requests per hour per semantic
model
5,000,000 max rows stored per table in 'none retention policy' semantic model
4,000 characters per value for string column in POST rows operation
75 max relationships
Related content
Power BI REST APIs.
Push semantic models.
Feedback
Was this page helpful? Yes No
This article describes Power BI permissions in general, and semantic model permissions
in the context of the Power BI REST APIs.
Power BI permissions
Power BI has two sets of permissions:
Workspace permissions
Item permissions
Workspace permissions
Workspace permissions, also known as folder permissions or roles, are the highest level
of permissions in Power BI. These permissions override permissions that are given to a
specific item in the workspace folder.
The table below lists the four types of folder roles. It shows each role's level, and the
code string returned by the Power BI REST APIs. Admin is the highest workspace
permission level, and viewer is the lowest. Every permission level includes the
capabilities of the permissions below it. You can review the capabilities of each
permission in Workspace roles.
Folder Role Level Derived permissions for semantic models created in the workspace
Admin 4 ReadWriteReshareExplore
Member 3 ReadWriteReshareExplore
Contributor 2 ReadWriteExplore
Viewer 1 Read
7 Note
Groups - Add Group User - A POST API for adding workspace permissions
Groups - Update Group User - A PUT API for changing workspace permissions
Groups - Get Group Users - A GET API for getting workspace permissions
Item permissions
Power BI items, such as reports, semantic models, and dashboards have their own
permissions. Item permissions can't override workspace permissions, and can only be
granted by someone who has at least the same level of permission.
Tip
Although the API permissions are identical to the Power BI service permissions,
build permissions are referred to as explore permissions in the APIs.
Description Allows the user to Equivalent to Allows the user to share the
read the content build content of the semantic model
of the semantic permissions with other users who will get read,
model reshare, or explore permissions for
it
ReadReshareExplore
ReadReshare
ReadExplore
Permission Read Explore Reshare
Read
7 Note
To allow a user to perform write operations on a semantic model, first change the
workspace permissions.
When you give a user build permission, they can build new content on your semantic
model. Examples of content they can build are reports, dashboards, pinned tiles from
Q&A, paginated reports, and Insights Discovery.
Users also need build permissions to work with data outside Power BI:
To build new content on the semantic model such as with Analyze in Excel.
Row-level security
For a semantic model that uses row-level security (RLS), any permissions higher than
build will enable the user to view all the data in the semantic model. Build , and
permissions lower than build , will only give the semantic model user access to the data
they're allowed to see as configured in your RLS settings.
PUT APIs update the user’s permissions to a given dataset. The PUT API can't be
used for changing write permissions or any folder level inherited permissions. This
API also supports removing all permissions for a dataset for a given target.
Datasets - Put Dataset User
Datasets - Put Dataset User In Group
GET APIs return a list of principals that have access to the specified dataset.
Datasets - Get Dataset Users
Datasets - Get Dataset Users In Group
Next steps
Power BI REST APIs.
Push datasets.
Power BI Developer in a Day course
Article • 01/09/2023
The course was designed specifically for experienced app developers. So, it's an
advantage if you have development experience with:
ASP.NET
Visual C#
HTML
JavaScript
Familiarity with Power BI will be beneficial, but not essential. We'll introduce you to the
core concepts.
7 Note
This video might use earlier versions of Power BI Desktop or the Power BI service.
https://www.youtube-nocookie.com/embed/ZWKfjVzI7mY
Course outline
The course of 21 videos is organized into eight modules. We recommend you watch
the videos in the recorded sequence, starting with video 01 and ending with video 21.
Introduction
Video 01: Welcome and Course Introduction
Video 02: Self-study Kit
Module 01: Power BI Overview
Video 03: Power BI Overview - Part 1
Video 04: Power BI Overview - Part 2
Video 05: Power BI Overview - Part 3
Video 06: Power BI Overview - Part 4
Module 02: Power BI Embedded Analytics
Video 07: Power BI Embedded Analytics - Part 1
Video 08: Power BI Embedded Analytics - Part 2
Module 03: Configure Permissions
Video 09: Configure Permissions - Part 1
Video 10: Configure Permissions - Part 2
Module 04: Embed Power BI Content
Video 11: Embed Power BI Content - Part 1
Video 12: Embed Power BI Content - Part 2
Module 05: Integrate Content with the Power BI Client APIs
Video 13: Integrate Content with the Power BI Client APIs - Part 1
Video 14: Integrate Content with the Power BI Client APIs - Part 2
Module 06: Configure Data Permissions
Video 15: Configure Data Permissions - Part 1
Video 16: Configure Data Permissions - Part 2
Video 17: Configure Data Permissions - Part 3
Module 07: Automate Solution Management
Video 18: Automate Solution Management - Part 1
Video 19: Automate Solution Management - Part 2
Module 08: Power BI Embedded Analytics Licensing
Video 20: Power BI Embedded Analytics Licensing
Bonus Content
Video 21: Power BI Embedded Analytics Playground
Self-study kit
You can download and set up a self-study kit, which consists of the presentation content
and six hands-on labs. For more information, watch the Self-study Kit video.
To complete the labs, you'll need a Windows PC (Windows 7, or later) and the following
software installed:
1. Use this link to download the self-study kit (.zip) locally to your PC.
2. Open the file properties, and then check "unblock" (Windows may flag the file as
potentially untrusted).
3. Extract the file contents to a folder in your file system. We recommend you create a
folder that will be easy to find, perhaps naming it Training. The lab documents will
refer to this location as <CourseFolder>.
Once extracted, you'll have the PowerBIDevIAD folder, and within it you'll find the
following folders:
Lab00A (and all other lab folders). The lab folders contain the lab document and
lab resources, which may include assets and solution files.
MySolution: This folder stores your solution files. The lab instructions will direct
you when to use it.
Presentation: This folder contains the course presentation file, which is available as
a PDF document.
7 Note
You're responsible for having your own Power BI account. If you don't already have
one, see Sign up for Power BI as an individual.
Your account must have a Power BI Pro license, or you can still accept a Power BI
Pro Trial license—an offer that can only be accepted once. Also, your account must
not have depleted the reserve of free embed tokens, available with the Power BI
Pro license.
Consider creating a Power BI account for exclusive use in the labs. You can create a
free account with a public domain like https://outlook.live.com , and then using
it to sign in to Power BI and accept the Power BI Pro Trial license.
Instructor kit
Use this link to download the instructor kit (.zip) locally to your PC. You'll find
classroom setup notes in slide one of the PowerPoint slide deck.
Next steps
For more information related to this article, check out the following resources:
See Monitor Power BI Embedded for details on collecting and analyzing monitoring data
for Power BI Embedded.
Tip
Use the Microsoft Fabric Capacity Metrics app to monitor your capacity.
Metrics
This section lists all the automatically collected platform metrics for Power BI Embedded.
ノ Expand table
Capacities Microsoft.PowerBIDedicated/capacities
Capacities
Resource provider and type: Microsoft.PowerBIDedicated/capacities
ノ Expand table
Metric dimensions
Power BI Embedded doesn't have any metrics that contain dimensions.
Resource logs
This section lists the types of resource logs you can collect for Power BI Embedded.
For reference, see a list of all resource logs category types supported in Azure Monitor.
This section lists all the resource log category types collected for Power BI Embedded.
ノ Expand table
Capacities Microsoft.PowerBIDedicated/capacities
ノ Expand table
Power BI Embedded
ノ Expand table
Table Description
AzureActivity Entries from the Azure Activity log that provides insight into any subscription-
level or management group level events that have occurred in Azure.
AzureDiagnostics Stores resource logs for Azure services that use Azure Diagnostics mode.
Resource logs describe the internal operation of Azure resources.
AzureMetrics Metric data emitted by Azure services that measure their health and
performance.
For a reference of all Azure Monitor Logs and log analytics tables, see the Azure Monitor
Log table reference.
Activity log
You can select Engine and the AllMetrics categories or either.
Engine
The engine category instructs the resource to log the events listed in the following table.
For each event, there are properties.
ノ Expand table
Audit Login Records all new connection to the engine events since the trace started.
Session Initialize Records all session initialization events since the trace started.
Vertipaq Query Begin Records all VertiPaq SE query begin events since the trace started.
Query Begin Records all query begin events since the trace started.
Query End Records all query end events since the trace started.
Vertipaq Query End Records all VertiPaq SE query end events since the trace started.
Audit Logout Records all disconnect from engine events since the trace started.
Error Records all engine error events since the trace started.
Event example
The following table shows an event example.
ノ Expand table
AllMetrics
Checking the AllMetrics option logs the data of all the metrics that you can use with a
Power BI Embedded resource.
The following table lists the operations related to Power BI Embedded that might appear
in the Activity log.
Schemas
Power BI Embedded uses the Power BI Dedicated schema.
The script uses Power BI and ARM REST APIs that are called in Azure Automation and
triggered by Azure alert.
You can either copy the script, or download it as part of the PowerBI-Developer-
Samples repository, by selecting the green code button, and downloading the ZIP.
Related content
Monitor Azure Power BI Embedded
Azure resource diagnostic logging
Set-AzureRmDiagnosticSetting
Feedback
Was this page helpful? Yes No
7 Note
This reference is part of the powerbidedicated extension for the Azure CLI (version
2.56.0 or higher). The extension will automatically install the first time you run an az
powerbi command. Learn more about extensions.
Commands
ノ Expand table
az powerbi embedded- List all the embedded capacities for the Extension Preview
capacity list given resource group.
az powerbi embedded- List eligible SKUs for a PowerBI Dedicated Extension Preview
capacity list-sku resource.
az powerbi embedded- Get details about the specified PowerBI Extension Preview
capacity show embedded capacity.
az powerbi embedded- Place the CLI in a waiting state until a Extension Preview
capacity wait condition is met.
az powerbi list-auto-scale-v- List all the auto scale v-cores for the given Extension GA
core resource group.
az powerbi list-auto-scale-v-core
List all the auto scale v-cores for the given resource group.
Azure CLI
Optional Parameters
--resource-group -g
Name of resource group. You can configure the default group using az configure --
defaults group=<name> .
Global Parameters
--debug
--help -h
--only-show-errors
--output -o
Output format.
Accepted values: json, jsonc, none, table, tsv, yaml, yamlc
Default value: json
--query
--verbose
6 Collaborate with us on
GitHub Azure CLI feedback
Azure CLI is an open source project.
The source for this content can
Select a link to provide feedback:
be found on GitHub, where you
can also create and review
Open a documentation issue
issues and pull requests. For
more information, see our
Provide product feedback
contributor guide.
Glossary for Power BI developers
Article • 01/09/2024
This glossary is a community effort. Don't see a word here? Ask us to add it (you can use
the documentation feedback button at the bottom of this article).
Account
Use your work or school account to sign in to Power BI. Administrators manage work or
school accounts in Microsoft Entra ID. Your level of access is determined by the Power BI
license associated with that account and the capacity type where content is stored. See
license and Premium, below.
Admin portal
The location where Power BI admins manage users, features, and settings for Power BI in
their organization. (Note: Microsoft 365, Azure, and PowerApps use admin center.)
Aggregates
When the values of multiple rows are grouped together as input on criteria to form a
single value of more significant meaning or measurement. Only implicit measures (see
definition below) can be aggregated.
Aggregation
The reduction of rows in underlying data sources to fit in a model. The result is an
aggregate.
Alert, alerts
A feature that notifies users of changes in the data based on limits they set. Alerts can
be set on tiles pinned from report visuals. Users receive alerts on the service and on
their mobile app.
Annotate
To write lines, text, or stamps on a snapshot copy of a tile, report, or visual on the Power
BI mobile app for iOS and Android devices.
App, apps
A bundle of dashboards, reports, and semantic models. It also refers to the mobile apps
for consuming content, such as Power BI app for iOS.
AppSource
Centralized online repository where you can browse and discover dashboards, reports,
semantic models, and apps to download.
Artifacts
See item
Auto Insights
Auto insights are now called Quick Insights.
Bookmark
A view of data captured in the Bookmarks pane of a report in Power BI Desktop or
service. In Desktop, the bookmarks are saved in the .pbix report file for sharing on the
Power BI service
Breadcrumbs
The navigation at the top left to quickly navigate between reports and dashboards.
Capacity
A capacity is a dedicated set of resources reserved for exclusive use. It offers
dependable, consistent performance for your content.
Connector
Power BI Desktop includes an ever-growing collection of data connectors that are built
to connect to a specific data source. Examples include: GitHub, MailChimp, Power BI
dataflows, Google Analytics, Python, SQL Server, Zendesk, and more than 100 other data
sources.
Container
The areas on the navigation pane are containers. In the nav pane you'll find containers
for: Favorites, Recent, Apps, Shared with me, and Home.
Content
Content for the Power BI service is generally dashboards, reports, and apps. It can also
include workbooks and semantic models.
Content list
The content index for an app.
Content view
The view in Windows Explorer that displays the most relevant content for each item
based on its file name extension or Kind association.
Continuous variable
A continuous variable can be any value between its minimum and maximum limits,
otherwise it's a discrete variable. Examples are temperature, weight, age, and time.
Continuous variables can include fractions or portions of the value. The total number of
blue skateboards sold is a discrete variable since we can't sell half a skateboard.
Correlation
A correlation tells us how the behaviors of things are related. If their patterns of increase
and decrease are similar, then they're positively correlated. And if their patterns are
opposite, then they're negatively correlated. For example, if sales of our red skateboard
increase each time we run a tv marketing campaign, then sales of the red skateboard
and the tv campaign are positively correlated.
Cross-filter
Applies to visual interactions. Cross-filtering removes data that doesn't apply. For
example, selecting Moderation in the doughnut chart cross-filters the line chart. The line
chart now only displays data points that apply to the Moderation segment.
Cross-highlight
Applies to visual interactions. Cross-highlighting retains all the original data points but
dims the portion that doesn't apply to your selection. For example, selecting
Moderation in the doughnut chart cross-highlights the column chart. The column chart
dims all the data that doesn't apply to the Moderation segment, and highlights all the
data that does apply to the Moderation segment.
Custom visual
Visuals that are created by the community and Microsoft. They can be downloaded from
the Office store for use in Power BI reports. You can also develop your own personalized
custom visual.
Dashboard
In the Power BI service, a dashboard is a single page, often called a canvas, that uses
visualizations to tell a story. Because it's limited to one page, a well-designed dashboard
contains only the most important elements of that story. Dashboards can only be
created and viewed in the Power BI service, not in Power BI Desktop. For more
information, see basic concepts, dashboards.
Data connector
See connectors
Data model, Excel Data Model
In Power BI content, a data model refers to a map of data structures in a table format.
The data model shows the relationships that are being used to build databases. Report
designers, administrators, and developers create and work with data models to create
Power BI content.
Dataflow
Dataflows ingest, transform, integrate, and enrich big data by defining data source
connections, ETL logic, refresh schedules, and more. Formerly data pool.
Semantic model
A collection of data used to create visualizations and reports.
DAX expression
Data Analysis Expressions. A Microsoft formula language used to build formulas and
expressions in Power BI Desktop, Azure Analysis Services, SQL Server Analysis Services,
and Power Pivot in Excel.
Diamond
Power BI Premium. The shape of the icon that signifies a workspace is a Premium
capacity workspace.
Dimension
Dimensions are categorical (text) data. A dimension describes a person, object, item,
products, place, and time. In a semantic model, dimensions are a way to group measures
into useful categories. For our skateboard company, some dimensions might include
looking at sales (a measure) by model, color, country/region, or marketing campaign.
Editing View
The mode in which report designers can explore, design, build, and share a report.
Effective identity
The identity used by the generate token API to generate a token for an individual user,
depending on that user's credentials in the app. It could be a master user or service
principal.
Ellipsis
Three dots - ... Selecting an ellipsis displays more menu options. Also referred to as the
More actions menu.
Embed code
A common standard across the internet. In Power BI, the customer can generate an
embed code and copy it to place content such as a report visual on a website or blog.
Embed token
A string of encrypted characters that is used for authentication, which specifies the
content the web app user can access and the user’s access level.
Embedded
See Power BI Embedded.
Embedding
In the Power BI developer offering, the process of integrating analytics into apps using
the Power BI REST APIs and the Power BI SDK.
Environment
[Power BI Desktop, Power BI Mobile, the Power BI service, etc.] Another way to refer to
one of the Power BI tools. It's okay to use Power BI environment (tenant) in
documentation where it may help business analysts who are familiar with the term
tenant to know it's the same thing.
Explicit measures
Power BI uses explicit measures and implicit measures (see definition below). Explicit
measures are created by report designers and saved with the semantic model. They're
displayed in Power BI as fields, and can therefore be used over and over. For example, a
report designer creates an explicit measure TotalInvoice that sums all invoice amounts.
Colleagues who use that semantic model and who have edit access to the report, can
select and use that field to create a visual. When an explicit measure is added or
dragged onto a report canvas, Power BI doesn't apply an aggregation. Creating explicit
measures requires edit access to the semantic model.
Favorite, unfavorite
Verb meaning to add to the Favorites list for quick access to frequently visited
dashboards and reports in Power BI. When you no longer want them as a favorite, you
unfavorite them.
Focus mode
Use focus mode to pop out a visual or tile to see more detail. You can still interact with
the visual or tile while in focus mode.
Free account
See account
High-density visuals
Visuals with more data points than Power BI can render. Power BI samples the data to
show the shape and outliers.
Home
The default landing page for Power BI service users. Doesn't modify anything. Can be
called Power BI Home or simply Home.
Implicit measures
Power BI uses implicit measures and explicit measures (see definition above). Implicit
measures are created dynamically. For example, when you drag a field onto the report
canvas to create a visual. Power BI automatically aggregates the value using one of the
built-in standard aggregations (SUM, COUNT, MIN, AVG, etc.). Creating implicit
measures requires edit access to the report.
Insights
See quick insights.
Item
A component type of the Power BI workspace that includes dashboards, reports,
semantic models, and data flows. Formerly known as artifacts.
KPIs
Key performance indicators. A type of visual.
License
Your level of access is determined by the Power BI license associated with your account
and the capacity type where content is stored. For example, in shared capacity, a user
with a Power BI Pro license can collaborate only with users who are also assigned a Pro
license. In shared capacity, a free license enables access to only the user’s personal
workspace. However, when content is in Premium capacity or Fabric F64 or greater
capacity, users with a Pro license can share that content with users who are assigned a
free license.
A license is assigned to a user and can be a free or Pro license. Depending on how the
license was acquired, it may be paid or unpaid. The accounts are either: per-user or
organizational. Per-user accounts are available as free or Pro. A Power BI free user is
either using stand-alone Power BI Desktop or is using Power BI service stand-alone or is
using Power BI service within an organization that has a Premium organizational
subscription. The Power BI per-user Pro account is a paid monthly subscription that
allows for collaboration and sharing of content with other Pro users.
The organizational Premium (also known as Premium capacity) subscription adds a layer
of features on top of per-user licenses. For example, free per-user account holders
within an organization that has a Premium subscription, are able to do much more with
Power BI than free users without Premium. For example, free users in Premium
organizational accounts, can collaborate with colleagues and can view content that's
hosted on Power BI Premium capacity.
Measure
A measure is a quantitative (numeric) field that can be used to do calculations. Common
calculations are sum, average, and minimum. For example, if our company makes and
sells skateboards, our measures might be number of skateboards sold and average
profit per year.
Mobile app
Apps that allow you to run Power BI on iOS, Android, and Windows devices.
Modeling
[Power BI Desktop] Getting the data you've connected to ready for use in Power BI.
Modeling includes creating relationships between tables in multiple data sources,
creating measures, and assigning metrics.
My workspace
The workspace for each Power BI customer to use to create content. If a customer wants
to bundle anything created here into an app, and they have designer permissions, they
upload it to the appropriate workspace or create a new one.
Native
Included with the product. For example, Power BI comes with a set of native visualization
types. But you can also import other types, such as Power BI visuals.
Notification
Messages sent by and to the Power BI Notification Center.
Notification Center
The location in the service where messages are delivered to users, such as notice of
sunsetting certain features.
On-premises
The term used to distinguish local computing (in which computing resources are located
on a customer's own facilities) from cloud computing.
PaaS
PaaS stands for platform as a service. For example, Power BI Embedded.
Page
Reports have one or more pages. Each tab on the report canvas represents a page.
Paginated reports
Paginated reports are designed to be printed or shared. They're called paginated
because they're formatted to fit well on a page. They display all the data in a table, even
if the table spans multiple pages. You can control their report page layout exactly. Power
BI Report Builder is the standalone tool for authoring paginated reports.
PBIVIZ
The file extension for a Power BI custom visual.
PBIX
The file extension for a Power BI Desktop file.
Permissions
What a user can and can't do in Power BI is based on permissions. As a consumer you
won't have the same permissions as a designer, administrator, or developer.
Phone report
The name for a Power BI report that's been formatted for viewing on the phone.
Phone view
The user interface in the Power BI service for laying out a phone report.
Pin, unpin
The action a report designer takes of placing a visual, usually from a report, onto a
dashboard.
Power BI Desktop
Also referred to as Desktop. The free Windows application of Power BI you can install on
your local computer that lets you connect to, transform, and visualize your data. Used by
report designers and admins. For more information, see What is Power BI.
Power BI Embedded
A product used by developers to embed Power BI dashboards and reports into their
own apps, sites, and tools.
Power BI Premium
An add-on to the Power BI Pro license that enables organizations to predictably scale BI
solutions through the purchasing of reserved hardware in the Microsoft cloud. See
account.
Power BI Pro
A monthly per-user license that provides the ability to build reports and dashboards,
collaborate on shared data, keep data up-to date automatically, audit and govern how
data is accessed and used, and the ability to package content to distribute (Power BI
apps). See account.
Power BI service
An online SaaS (Software as a service) service. For more information, see What is Power
BI.
Power BI tenant
A Power BI account for an organization which has its data stored separately from other
organizations but which is accessed through a shared service.
Premium workspace
A workspace running in a capacity, signified to customers by a diamond icon.
Publish
Power BI service report designers bundle the contents of a Power BI workspace to make
it available to others as a Power BI app. Power BI Desktop report designers use publish
to refer to sending a Power BI Desktop report in .pbix format to the Power BI service so
that they can build dashboards from it and easily share it with others.
Q&A
The ability to type natural language questions about a semantic model and get
responses in the form of visualizations. Appears in the Power BI service and Desktop.
Quick Insights
Quick Insights refer to automatically generated insights that reveal trends and patterns
in data.
R, Microsoft R
A programming language and software environment for statistical computing and
graphics.
Reading View
Read-only view for reports (as opposed to Editing View).
Real-time streaming
The ability to stream data and update dashboards in real time from sources such as
sensors, social media, usage metrics, and anything else from which time-sensitive data
can be collected or transmitted.
Recent
The container in the nav pane that holds all the individual items (reports, dashboards,
etc.) that were accessed last.
Related content
Shows the individual pieces of content that contribute to the current content. For
example, for a dashboard, you can see the reports and semantic models providing the
data and visualizations on the dashboard.
Relative links
Links from dashboard tiles to other dashboards and reports that have been shared
directly or distributed through a Power BI app. This enables richer dashboards that
support drill through.
Report
A multi-perspective view into a single semantic model, with visualizations that represent
different findings and insights from that semantic model. It can have a single
visualization or many, a single page or many pages.
Report editor
The report editor is where new reports are created and changes are made to existing
reports by report designers.
Report measures
Also called custom calculations. Excel calls these calculated fields. See also measures.
Responsive visuals
Visuals that change dynamically to display the maximum amount of data and insights,
no matter the screen size.
Administrators can configure RLS for data models imported into Power BI with Power BI
Desktop.
S
SaaS
Software as a service (or SaaS) is a way of delivering applications over the internet—as a
web-based service. Also referred to as: web-based software, on-demand software, or
hosted software.
Scalability
The capability of a piece of hardware or software or network to expand or shrink to
meet future needs and circumstances.
Screenshot
Simple screenshots of a report can be emailed using the send a screenshot feature.
Service
See Power BI service A standalone resource available to customers by subscription or
license. A service is a product offering delivered exclusively via the cloud.
Service principal
An identity created for use with applications, hosted services, and automated tools to
access Azure resources. The service principal tokens can be used to authenticate and
grant access to specific Azure resources from a user-app, service or automation tool,
when an organization is using Microsoft Entra ID.
It can sometimes replace the master user to authenticate with Power BI.
Settings
The location for Power BI users to manage their own general settings, such as whether
to preview new features, set the default language, close their account, etc. Also, users
manage individual settings for content assets, alerts, and subscriptions. Represented by
a cog icon.
Share, sharing
In Power BI, sharing typically means directly sharing an individual item (a dashboard or
report) with one or more people by using their email address. Requires a Power BI Pro
license for sender and recipient. On mobile devices, share can refer to native OS share
functionality, such as "annotate and share."
Shared with me
The container in the nav pane that holds all the individual items that were directly
shared by another Power BI user.
Snapshot
In Power BI, a snapshot is a static image vs. a live image of a tile, dashboard, or report.
Streaming data
See real-time streaming.
Subscriptions, Subscribe
You can subscribe to report pages, apps, and dashboards and receive emails containing
a snapshot. Requires a Power BI Pro license.
Summarization
[Power BI Desktop] The operation being applied to the values in one column.
Tenant
A client organization that is served from a web service (SaaS) which also serves other
client organizations, and each organization’s data is stored in a separate database.
Tiles
A tile is a snapshot of your data, pinned to the dashboard. A tile can be created from a
report, semantic model, dashboard, the Q&A box, Excel, SQL Server Reporting Services
(SSRS) reports, and more.
Time series
A time series is a way of displaying time as successive data points. Those data points
could be increments such as seconds, hours, months, or years.
Value, values
Numerical data to be visualized.
Visual, visualization
A chart. Some visuals are: bar chart, treemap, doughnut chart, map.
Visual interaction
One of the great features of Power BI is the way all visuals on a report page are
interconnected. If you select a data point on one of the visuals, all the other visuals on
the page that contain that data change, based on that selection.
Visualizations pane
Name for the visualization templates that ship in the shared report canvas for Power BI
Desktop and the Power BI service. Contains small templates, also called icons, for each
native visualization type.
Workbook
An Excel workbook to be used as a data source. Workbooks can contain a data model
with one or more tables of data loaded into it by using linked tables, Power Query, or
Power Pivot.
Workspace
Containers for dashboards, reports, and datasets in Power BI. Users can collaborate on
the content in any workspace except My workspace. The contents can be bundled into a
Power BI app. Those stored in Premium capacity or Fabric F64 or greater capacity can be
shared with Free users. Personal workspaces (under My workspace) can be hosted in
Premium capacity.
X-axis
The axis along the bottom, the horizontal axis.
Y-axis
The axis along the side, the vertical axis.
Related content
Basic concepts for Power BI service consumer
Basic concepts for designers
Feedback
Was this page helpful? Yes No
Power BI Dev Camp (third-party site) is an educational resource for developers who
want to learn more about Power BI as a developer platform. It covers topics such as
Power BI embedding and the development of Power BI visuals and custom connectors.
This article provides links to some of the Power BI Dev Camp resources.
Tutorials
The Power BI Dev Camp tutorials are targeted toward developers who are interested in
understanding how to embed Power BI items (such as reports, dashboards and tiles) and
do other basic embedding tasks.
App-owns-data tutorials
access tokens.
Examples
The Power BI Dev Camp examples provide additional resources for developers who are
looking to embed Power BI items (such as reports, dashboards and tiles).
App-owns-data examples
App-owns-data hello world - A minimal .NET 5 application example to
embed either a standard Power BI report or a paginated report. You can run
and test the code in either Visual Studio Code or Visual Studio 2019. It also
includes details for updating the settings for URLs and Azure ID resource IDs
when you use a Power BI cloud other than the public cloud.
App-owns-data custom web API - A .NET 5 custom web API example, with a
single-page application (SPA) client created by using JavaScript. The custom
web API interacts with the Power BI service API as a service principal, and
returns embedding data and embed tokens to the client. This example
demonstrates collecting telemetry from the SPA client and storing it in a
custom database to monitor report loading performance.
Videos
To view Power BI Dev Camp videos, go to the video page .
Presentations
To download Power BI Dev Camp presentations, go to the Camp-Sessions GitHub
repository.
Next steps
Embed Power BI content into an application for your customers
Embed Power BI content into an application for your organization
Embed a Power BI report in an application for your organization
Power BI embedded analytics playground
Get started
e OVERVIEW
b GET STARTED
Embed a report
Embed a dashboard
Client APIs
p CONCEPT
c HOW-TO GUIDE
i REFERENCE
Stack Overflow