Power BI Embedded — Report Distribution to External Users

BI Helper
BI Helper
Published in
4 min readSep 20, 2019

Use case: Your company wants your external users to access the Power BI reports that you have built for them. These reports are sliced or filtered for each external user and will be regularly accessed by them. The number of such users may be large, possibly in the hundreds or thousands.

There are several ways to share Power BI reports with users outside your organization, with their pros and cons listed here.

Embedding is an option where your external users can log into your web application to view their Power BI reports, without requiring individual Power BI licenses.

This article discusses report distribution using Power BI Embedded.

Licensing Requirement

As the organization creating the report, you need to buy Power BI Embedded capacity to open your web application to external users. In addition, you need a Power BI Pro license to publish a Power BI report to the web. The licensing for Embedded starts at $735 per month for A1 node / 1 core, going up to $23,540 per month for A6 node / 32 cores.

You need to plan your capacity to decide which license to buy, based on factors including number of concurrent users, report visuals and your SLAs with your users.

How Does Power BI Embedded Work?

The following image gives a high-level workflow of Power BI Embedded.

Power BI Embedded workflow
  1. Client (Browser) makes an API call to the web application for an embed token.
  2. The web application internally calls Azure AD to fetch an Access token, which is needed to call the Power BI API. The Power BI Service uses this token to determine whether the API request is from an authorized entity.
  3. Using the Access token retrieved from Azure AD, the web application makes a call to Power BI Service for an Embed token.
  4. The Embed token is returned to the browser which now fetches and renders the report using the Embed token.

Important:

  1. Master username and password: For the web application to access Power BI Service, a user name and password is required. This username and password will be a common username across all clients. Instead of clients logging into Power BI, the web application logs into Power BI.
  2. Row Level Security: This needs to be implemented to ensure that users can only see their own information, as per the report slicers and slicer values defined for them. For row-level security to work, Embed tokens need to be customized, with the external users mapped between your web application and Power BI Service.

Embedded — Implementation and Maintenance

Implementing and managing embedded reports is complex and relatively expensive.

  1. For Business Analysts: You need a development team to implement and manage the process described above. This in itself is a mid-sized to large IT project for your organization, and can consume your resources and attention for months, besides keeping you busy interacting with your developers, system administrators and information security teams, while juggling management priorities for your project. Meanwhile, you will have no report output to show.
  2. For the development team: This can easily become an expensive and time-consuming project because Microsoft has released SDKs only in .NET. If you use any other language like Java, Python or Node, you will have to manage API calls and responses on your own.
  3. Capacity planning: Business analysts and developers need to work closely together to determine the necessary Embedded licensing capacity. As anyone who has worked in IT knows all too well, this is an area where it is very easy to spend a LOT more on licensing than is actually needed!
  4. Username mapping: Usernames in your web application have to be kept in sync with the usernames in Power BI at all times. This can easily become a maintenance nightmare with external users in the picture.
  5. Testing and Deployment: If your development team is following the CI/CD pattern, automated testing and deployment might become an expensive activity too. There is a need of separate infrastructure for testing, substantially increasing your licensing costs. Changes made by business analysts may impact the automated tests. Besides which, there is the ever present overhead of project coordination between multiple teams.

In summary, go with Power BI Embedded if you must. But do explore all other alternatives for your business case before you do so.

Alternatives

If you do not want to implement embedding but still want to share reports externally, you have the following options:

  1. Share Power BI Reports directly with external customers using Azure Active Directory B2B. See this white paper for more details.
  2. If your clients are fine with receiving their reports as PDFs, use an automation service like BI Helper to generate user-specific reports and automatically email them to the respective users.

BI Helper

BI Helper bihelper.tech is a simple, secure and cost effective SaaS solution for PDF report distribution in Tableau and Power BI. You only need a single Power BI / Tableau license to generate your PDF reports.

Resource: BI Helper Tutorial | Report Distribution in BI Tools

--

--