Sharing Power BI Reports with External Users – Part 2: Hands-On Guide to Setup and Sharing

In Part one of this series, we covered the foundational concepts behind sharing Power BI reports with external users. We explained why this is more complex than it seems, outlined the key requirements, clarified essential terms like guest users and Entra ID, and defined the roles involved in setting up secure external access.

Now that we have the groundwork in place, it’s time to walk through the process step by step.

This blog is based on the walkthrough portion of my YouTube video published in April 2025, where I explained the scenario and how to implement it, from configuring the necessary settings to sharing reports across two Azure tenants.

Here’s a quick guide to the full series:

  • Part 1: Understanding the Problem and Core Concepts
    This post explains why external sharing can be tricky, the key requirements to get it working, important terminology, user roles, and how the whole process fits together.
  • Part 2: Hands-On Guide to Setup and Sharing (this blog)
    A step-by-step walkthrough of how to share reports across tenants, covering licensing, admin portal settings, inviting guest users, and how report access looks from the guest’s side.
  • Part 3: Sensitivity Labels, Encryption, and Secure Sharing
    An in-depth look at what happens when Microsoft Purview sensitivity labels are applied, including access control, encryption, and key admin settings you may need to adjust for secure collaboration.

In this post, we’ll focus on a practical scenario. One organisation, let’s call it Tenant A, wants to share a Power BI report with someone from another organisation, Tenant B. We’ll cover everything from verifying licenses to configuring the Fabric Admin Portal and inviting the external user. If you’re looking to follow along, this guide will give you a clear path to replicate the same setup in your environment.

If you like to listen to the content on the go, here is the AI generated podcast explaining everything about this blog 👇.

https://biinsight.com/wp-content/uploads/2025/06/Sharing-Power-BI-Reports_-Hands-On-Guide.wav

If you are someone who prefers video over reading, you can watch the full walkthrough here 👇.

Scenario Overview

Let’s imagine we have two different Azure tenants. One belongs to the organisation that owns the Power BI report (Tenant A) and the other belongs to a partner or customer who needs access to that report (Tenant B).

The objective is to share a report from Tenant A with a user in Tenant B, in a secure and controlled way.

We will go through the steps the admin and report owner in Tenant A need to follow to make this work properly.

Step 1: Verify Power BI Licensing

Before setting up anything, make sure both users involved have a valid Power BI license. This might seem obvious, but it is a very common reason why external sharing fails or behaves unexpectedly.

In the demo example:

  • The report owner in Tenant A has a Power BI Pro license.
  • The external user from Tenant B (named Nestor) also has a Power BI Pro license.

You can confirm this by clicking the Account Picker icon in Microsoft Fabric and looking at the License type. If the external user does not already have a Pro or PPU license, you either need to assign one through your tenant or ask them to obtain the license.

Continue reading “Sharing Power BI Reports with External Users – Part 2: Hands-On Guide to Setup and Sharing”

Sharing Power BI Reports with External Users – Part 1: Understanding the Problem and Core Concepts

Sharing Power BI reports with external users is a common but often misunderstood scenario. While it may seem simple on the surface, doing it properly and securely involves many moving parts. I’ve already published a video on this topic, which turned out longer than expected because of the number of details involved.

To make this blog easier to follow and more digestible, I’ve broken the content into a three-part blog series. Each part covers a focused area of the topic:

Part 1 (this blog): Understanding the Problem and Core Concepts This post explains why external sharing can be tricky, the key requirements to get it working, important terminology, user roles, and how the whole process fits together.

Part 2: Hands-On Guide to Setup and Sharing A step-by-step walkthrough of how to share reports across tenants, covering licensing, admin portal settings, inviting guest users, and how report access looks from the guest’s side.

Part 3: Sensitivity Labels, Encryption, and Secure Sharing An in-depth look at what happens when Microsoft Purview sensitivity labels are applied, including access control, encryption, and key admin settings you may need to adjust for secure collaboration.

If you like to listen to the content on the go, here is the AI generated podcast explaining everything about this blog 👇.

https://biinsight.com/wp-content/uploads/2025/05/Sharing-Power-BI-with-External-Users_-Part-1_Concepts.wav

If you are someone who prefers video over reading, you can watch the full walkthrough here 👇.

Introduction

Are you a Power BI developer or someone in a BI or finance team who needs to share reports with customers, partners, or vendors? If they are not part of your Microsoft 365 tenant, things get a bit more complex than just clicking the “Share” button.

This is a common need, especially in consulting scenarios, but doing it securely and correctly takes more than people often think. It involves both technical setup and a clear understanding of roles and terminology.

Continue reading “Sharing Power BI Reports with External Users – Part 1: Understanding the Problem and Core Concepts”

Microsoft Fabric: Revealing Cost-Saving Results from Automating Pause & Resume Fabric Capacity

If you work in data and analytics, particularly within the Microsoft Data Platform, you have likely heard of Microsoft Fabric and its many capabilities. However, one of the biggest challenges organisations face is managing costs effectively.

In previous blogs and videos, I have covered how to optimise Microsoft Fabric capacity costs by automating the pause and resume process using Logic Apps. This approach ensures that your Fabric capacity runs only when needed, reducing unnecessary expenses. But how much can this method actually save? In this post, I share the real cost-saving results after applying this automation over the past few months.

Why Automate Pause & Resume?

Microsoft Fabric is a powerful platform, but maintaining capacity during off-peak hours can be costly. If your workloads are not running 24/7, you might be paying for unused capacity. By automating the pause and resume process, you can ensure that your environment is active only when required, leading to substantial savings.

When Should Organisations Consider Automation?

Not every organisation requires automated capacity management, but here are some scenarios where it makes sense:

  • Non-Continuous Workloads: If your organisation runs batch processing, reporting, or analytics workloads that do not need 24/7 uptime, automation can help cut costs.
  • Business Hours Usage: If your team primarily operates during specific hours, pausing capacity during off-hours prevents unnecessary spending.
  • Seasonal or Project-Based Needs: Companies with fluctuating workloads based on seasons or projects can optimise expenses by automating capacity scaling.
Continue reading “Microsoft Fabric: Revealing Cost-Saving Results from Automating Pause & Resume Fabric Capacity”

Microsoft Fabric: Resolving Capacity Admin Permission Issues in Automate Capacity Scaling with Azure LogicApps

A while back, I published a blogpost explaining how to use Azure LogicApps to automate scaling Microsoft Fabric F capacities under the PAYG (Pay-As-You-Go) licensing option. Some of my followers reported an issue with their Capacity Admin settings when running the LogicApp solution. The issue was that their capacity admins disappeared after they had run the LogicApps to upscale or downscale the capacity. After some investigation, I found out what the problem was. At the same time, some of my other followers suggested a fix which involved hardcoding the admins into the solution. While this would work in some cases, it is not a practical solution in the long run, as the admin settings may evolve over time. This makes the solution hard to maintain and unreliable. Back then, I suggested using the APIs and an HTTP action in a new LogicApps solution. This blog is the continuation of the previous blog and a quick and easy fix that ensures the automation runs smoothly with minimal to no manual work or maintenance afterwards. I have also published a tutorial video on YouTube explaining the process from the beginning (which was already covered in my previous blog, so I do not explain it here again) which you can watch here:

A Reminder of the Previous Solution

I suggest you read my blog about automating Fabric capacity scaling with Azure LogicApps as it provides a step-by-step guide to implement the solution. But if you have already implemented, or you are just after the fix, jump to the next section. The following image shows how the original solution works:

Automate Scaling Microsoft Fabric F Capacities with Azure LogicApps

Here is a quick explanation of how it works:

  1. The Trigger runs the workflow automatically every hour.
  2. The Read a Resource, which is an Azure Resource Manager operation, reveals information about a resource that, in our implementation, is a Microsoft Fabric Capacity.
  3. A condition to check the Status of the capacity. If the capacity is Paused (the condition is true), then do nothing. This is needed as this method only works when the capacity is Active.
  4. If the capacity is Active (the condition is false), then check the current time to see if it is between 2pm and 4pm. This is the timeframe for which we want to upscale the capacity.
  5. If the condition is True, then upscale the capacity to F8 using another ARM operation: Create or update a resource.
  6. If the condition is False, then set the capacity SKU to F2.

The solution works fine if you do not have any Capacity Admin settings either on Azure Portal or on Admin Portal on Microsoft Fabric. But in many cases, we indeed have capacity admins. Let’s see what the issue is.

The Problem

The issue arises when we add some capacity administrators; that are wiped after running the above solution in its current implementation. The following image shows the Capacity Admin settings on both portals:

Fabric Capacity Admins on Azure Portal and Fabric Admin Portal

The reason if that the Create or update a resource also updates the properties of the resource with the ones we define in LogicApps. Therefore, if we do not add any capacity admins, we literally empty the existing capacity admins. Let’s run the solution again to understand why this is happening. The following image shows my capacity admins are wiped out after running my LogicApp workflow:

Capacity Admins deleted after running LogicApps

The issue is also demonstrated in the tutorial video on YouTube:

Continue reading “Microsoft Fabric: Resolving Capacity Admin Permission Issues in Automate Capacity Scaling with Azure LogicApps”