This guide walks you through the steps to embed Power BI content – such as reports or dashboards – into your WordPress site for your customers – external users – who do not have a Power BI license assigned to them.

Before you begin, make sure you are familiar with the prerequisites and understand the difference between the two main embedding scenarios: embedding for your organization and embedding for your customers. This tutorial focusses on embedding Power BI content for your customers. Please note that this is a premium feature and requires the WPO365 | M365 APPS or WPO365 | INTEGRATE plugin.

To embed Power BI content for your customers, you’ll need also to install the free WPO365 | LOGIN plugin. This plugin offers essential Microsoft 365 integration features, including Single Sign-On (SSO). If you only want to embed Power BI content for your customers and don’t require users to sign in via Microsoft accounts, you can simply disable SSO in the plugin’s Single Sign-on settings.
Prepare Microsoft Entra
Follow these steps to register a Microsoft Entra application, which you’ll later configure as a service principal with access to the Power BI service and its workspaces assigned to Premium capacity. This setup allows users who don’t have a Power BI Pro license to view embedded Power BI content hosted in those workspaces.
- Register a Microsoft Entra application by following the steps explained in the following article: https://tutorials.wpo365.com/courses/single-sign-on-openid-connect/lessons/register-your-wordpress-website-in-entra-id/ and return here to continue.
- Create an application (client) secret for the new application by following the steps explained in the following article: https://tutorials.wpo365.com/courses/single-sign-on-openid-connect/lessons/create-an-application-client-secret/ and return here to continue.

If you have already registered an application in Entra – for example, to enable users to sign in with Microsoft using OpenID Connect-based Single Sign-On – there is no need to create a new one. You can simply reuse that existing application and its configuration parameters.
Prepare your Power BI service
Perform the following steps to enable prepare your Power BI service and allows service principals with the appropriate roles and item permissions to call the Power BI / Fabric service API.
- Go to https://app.powerbi.com/ and sign in as administrator.
- Click the Gear icon in the upper corner to open the Settings menu, scroll to the Governance and administration section and click Admin portal.
- Locate the Developer section in the Tenant Settings section.

- Expand Embed content in apps and enable it.
- Next you can select whether the setting applies to the entire organization or specific security groups.

To limit a setting to specific service principals, start by creating a security group in Entra ID and add the registered applications or service principals as members. Then, select that group as shown in the screenshot above, and click Apply to confirm your selection.
- Repeat the last two steps for the setting Service principals can call Fabric public APIs.
- Continue to the workspace where the content and data that you wish to embed for your customers lives, and update the access as shown below.

- Add the service principal as admin, as shown below.


To grant a service principal access to a workspace, you need to enter its full display name. Power BI won’t be able to locate it if you search by its ID or other identifiers.
Prepare WPO365 Integration settings.
The following steps are needed to prepare your WPO365 powered WordPress website, so that client-side JavaScript apps can send requests to Microsoft Graph and the Power BI and Fabric REST API endpoints.
- Configure application-level access for WPO365 by following the steps explained in the following article: https://tutorials.wpo365.com/courses/integration-application-permissions/lessons/configure-wpo365-2/ and then return here.

- Now that you have enabled application-access, check the box to Enable WPO365 REST API for Microsoft Graph.
- Decide how users should be authenticated when using the API – whether they must sign in with Microsoft, use a local WordPress account, or access it without signing in. The recommended option is Users must be signed in, so that you have at least some control over who will be able to request the page where you embedded your Power BI content.
- Next, choose which Microsoft Graph endpoints the API should allow users to access. While it’s technically possible to allow access to all endpoints, it’s strongly recommended to explicitly allow-list only the ones you need. To enable users signed in with Microsoft (via SSO) to access embedded Power BI content, make sure to include https://api.powerbi.com/ in the list and that you have checked the box to allow application-level access next to it.
- Finally, ensure that you checked the option and to Allow Microsoft Graph proxy-type requests.
- Make sure – after you applied all the changes – to scroll down and save your changes.
Generate an embed token
Perform the following steps to generate an embed shortcode.
- Go to WP Admin > WPO365 > … > Power BI Embed as shown below.

- Select the type of Power BI content that you wish to embed – for example a (Paginated) Report or Dashboard.

- Choose the Embed token type that matches the selected content type (e.g. report) and that is listed in the group Embed for your customers.

- Enter the IDs of the workspace, content – for example a report – and optionally a dataset (when the report is not self-contained).

- To locate the Workspace (or Group) ID and the Report ID, open the report in the Power BI service and check the URL — the IDs will be displayed there, as shown in the screenshot below.
- Similarly, to find the Dataset ID, open it in the Power BI service and copy the ID.

- If you have set up Microsoft-based Single Sign-On but want WPO365 to explicitly use a different registered application – specifically the one configured on the plugin’s “Integration” settings page – simply check the box below to enable this behavior.

- Define the width and height of the element that will contain the iframe to embed the Power BI content. Note that you should enter here a value and a CSS compliant measure e.g. “px” for pixel or “vh” for a percentage of the client height (and “vw” for a percentage of the client width).

- The use of a Splash screen image (via URL) is explained separately.
- Similarly, the option to Manually edit the embed configuration (JSON) is also covered separately.
- Finally, Copy the the shortcode to the clipboard, create a new page and paste the shortcode.

Please note that if you embed Power BI content for your customers without having added the required premium capacity, the item will still show, but with a trial-warning – as shown below.
