Despite using Power BI for over four years now, I’ve always been a bit confused on the specifics behind Power BI embedded. Whether I researched this on YouTube, the Microsoft Docs, or blogs from other content creators, a few of the nitty-gritty details behind Power BI embedded were always ambiguous to me.
Fast forward to today, and now I’ve had to become an expert on this topic - or as much of one as I can be. The reason: because I am building a third-party Software-as-a-Service application for Power BI called Displagent.
Hence, this is part 1 to a series that I’m labeling Power BI Embedded for SaaS Developers.
While I would love to cover all of this soon, I want to focus for a moment on the data model. In particular, I am utilizing Power BI embedded to embed and interact with companies’ Power BI reports on a webpage so that they can build customizable slideshows for their Power BI reports and easily share them on a TV.
However, I am not requiring companies to purchase a Power BI license through me and re-publish their content to my own set of Power BI workspaces. Instead, they keep their reports, gateways, datasets, and so on in their own Power BI tenants. What I have to do in Displagent is give them a path to access their content through my web app, and Power BI embedded is my key to achieving that.
And here’s the cool part: I can do this for companies on Power BI Pro, Power BI Premium Per User, Power BI Premium Per Capacity, and companies who have purchased Power BI embedded capacities.
Now, you may recall from the Microsoft Docs that there are two ways to embed Power BI content, what Microsoft calls the following:
Embed for your customers Embed for your organization In a short, over-simplified nutshell, here is the difference between the two:
Embed for your customers You or your customers need to have dedicated capacities for the Power BI reports, and this does NOT include Power BI Premium Per User. You’ll want to use a non-interactive form of authentication via an Azure Service Principal and generate embed tokens from the Power BI REST API. These embed tokens are what enables you to load Power BI reports onto a web page, and they are NOT free: you have to pay for these dedicated capacities, and that can be very expensive depending on your company’s size.
Embed for your organization The customer keeps their Power BI content in their own tenant, and you help them access their content via a service/dummy account with Power BI Pro or Power BI Premium Per User. Using the service/dummy account’s username and password, you fetch an access token from Azure that allows you to embed Power BI reports on web pages. Using the access token and refresh tokens, you can keep a customer authenticated with their Azure tenant for 90 straight days before they require another login.
Important note: dedicated capacities are NOT required for this method.
Both methods require making “app registrations” in the customers’ Azure Active Directories, which are like little gateways that enable customers to access their content from third-party apps like Displagent, and both require quite a bit of work.
So which of the two methods am I using?
The answer: well, both! And that’s what’s so fun - and horribly difficult - about my particular use case.
I don’t just want the huge companies paying big 💰 for dedicated capacities: I also want the smaller companies who are only paying for Power BI Pro or Power BI Premium Per User. It turns out, people from every industry you can think of need Power BI reports refreshed at a high cadence and displayed on TVs.
So here’s the breakdown of what embedding methods pair to what license types:
- Embed for your customers
- Power BI Premium Per Capacity
- Companies who have purchased Power BI Embedded Azure capacities
- Embed for your organization
- Power BI Pro
- Power BI Premium Per User
The hard part is providing both forms of service for the entire spectrum of Power BI licensing, but hey: no one said entrepreneurship is easy, nor software development, and certainly not both. 😊
So this combined third form is what I’ve self-labeled Embed for SaaS Developers.
For some of you, this may be a complete overload, while for others of you, perhaps you want more of the fine-grained technical details. Rest assured, more is to come, soon.
And of course, if you want the best solution for displaying Power BI reports on TVs that need to be refreshed at a high frequency, I would love if you come check out Displagent.
With Warm Regards,
Daniel - a Power BI entrepreneur