Power BI

This guide walks through the steps required to configure a Service Principal for Solid's Power BI integration, grant the necessary permissions, and validate the setup.

Overview

Solid connects to Power BI using a Microsoft Entra ID (Azure AD) Service Principal and the Power BI Admin APIs to scan tenant metadata such as workspaces, datasets, tables, columns, and measures.

Solid needs:

  • A dedicated Service Principal (App Registration) with a Client Secret
  • Read-only access to the Power BI Admin APIs, enabled via tenant settings
  • Member or Admin access to each workspace Solid should scan
  • Network access to login.microsoftonline.com and api.powerbi.com over HTTPS (port 443)

What Is Collected

CategoryWhatWhy
Admin API AccessRead-only calls to the Power BI Admin Scanner API, enabled by the tenant setting "Service principals can access read-only admin APIs"Allows the Service Principal (SP) to call the Admin Scanner API
Detailed MetadataTable, column, and measure names and descriptions, returned when "Enhance admin APIs responses with detailed metadata" is enabledReturns table/column/measure names and descriptions
DAX and Mashup ExpressionsDAX formulas and M (Power Query) source expressions, returned when "Enhance admin APIs responses with DAX and mashup expressions" is enabledReturns DAX formulas and M (Power Query) source expressions
Workspace ScopeOnly workspaces where the Service Principal (or its security group) has been added as Member or AdminLimits scanning to workspaces you've explicitly granted access to

Automatic Pull (Recommended)

Step 1: Create a Service Principal Account for Solid

Access required: Azure AD / Microsoft Entra ID app registration

App Registration

  1. In the Azure portal, navigate to Microsoft Entra ID > App Registrations > New Registration.
    • You can sign in using existing Microsoft 365 / Power BI credentials — no Azure subscription is required.
  2. After creation, note the following from the Overview page:
    • Application (Client) ID
    • Directory (Tenant) ID

Step 2: Assign Permissions and Grant Workspace Access

Solid needs to "see" your content to index it properly.

Security Group

  1. In Entra ID > Groups > New Group, create a group of type Security.
  2. Add the app registration as a member of this group.
    • This group is referenced in the Power BI tenant settings below.

Required Permissions to Complete This Setup

RequirementDetails
Power BI AdminRequired to modify tenant settings in the Admin Portal (Fabric/Power BI Admin role)
Azure portal accessvia Microsoft 365 / Entra credentials — no Azure subscription needed
App Registration creationRequires one of: Application Administrator, Cloud Application Administrator, or Global Administrator
Security Group creationRequired only if enabling access for a subset of the organization (optional if enabling org-wide)

API Permissions — None Required

⚠️

Critical: The app registration must NOT have any API permissions configured in the Azure portal (no Tenant.Read.All, no delegated permissions). Adding permissions breaks admin API access.

Power BI Tenant Settings

Requires a Power BI Admin

In the Power BI Admin Portal > Tenant Settings, enable the following settings, applied to the security group created above:

SettingLocationWhy
Service principals can access read-only admin APIsAdmin API settingsAllows the SP to call the Admin Scanner API
Enhance admin APIs responses with detailed metadataAdmin API settingsReturns table/column/measure names and descriptions
Enhance admin APIs responses with DAX and mashup expressionsAdmin API settingsReturns DAX formulas and M (Power Query) source expressions
⏱️

Note: Changes to tenant settings can take up to 15 minutes to propagate. After enabling detailed metadata, datasets may need a refresh before the metadata appears in scan results.

Workspace-Level Access

The Service Principal (or its security group) must be added as a Member or Admin to each Power BI workspace that Solid needs to scan.

In Power BI Service > Workspace > Access, add the app name or security group as Member.

Network / IP Considerations

Our integration connects to two Microsoft public endpoints over HTTPS (port 443):

  • login.microsoftonline.com (authentication)
  • api.powerbi.com (metadata scanning)

If your organization has Conditional Access policies, IP-based restrictions, or Azure Private Link enabled for Power BI, access from our IPs may be blocked. Our outbound IPs are listed here: http://docs.getsolid.ai/docs/solids-static-ip-addresses

Step 3: Generate API Credentials

Client Secret

  1. In the app registration, go to Certificates & Secrets > New client secret.
  2. Copy the secret value immediately — it is shown only once.
  3. Set the expiry to 12–24 months.

Step 4: Deliver Credentials to Solid

Workspace GUID

Provide at least one Workspace GUID for initial validation. This can be found in the Power BI URL:

https://app.powerbi.com/groups/{WORKSPACE_GUID}/...

Output to Share with Solid

FieldDescription
CLIENT_IDApplication/Client ID (GUID)
CLIENT_SECRETThe client secret value
ENTRA_TENANT_IDDirectory/Tenant ID (GUID)

Permissions Needed

Permission/RolePurpose
Power BI Admin (Fabric/Power BI Admin role)Required to modify tenant settings in the Power BI Admin Portal
Application Administrator / Cloud Application Administrator / Global Administrator (Entra ID)Required to create the App Registration (one of these three roles)
Security Group creation rights (Entra ID)Required only if restricting access to a subset of the org (optional if enabling org-wide)
Service principals can access read-only admin APIs (tenant setting)Allows the Service Principal to call the Admin Scanner API
Enhance admin APIs responses with detailed metadata (tenant setting)Returns table/column/measure names and descriptions
Enhance admin APIs responses with DAX and mashup expressions (tenant setting)Returns DAX formulas and M (Power Query) source expressions
Workspace Member or Admin (per workspace)Grants the Service Principal (or its security group) access to scan that workspace
Azure AD API PermissionsNone required — must NOT be configured; adding permissions (e.g. Tenant.Read.All, delegated permissions) breaks admin API access

Troubleshooting

Network / Conditional Access Issues

If your organization has Conditional Access policies, IP-based restrictions, or Azure Private Link enabled for Power BI, access from Solid's IPs may be blocked.

To check if any of these apply to you:

  • Azure portal > Microsoft Entra ID > Security > Conditional Access — look for policies that restrict sign-ins by IP or location
  • Azure portal > Microsoft Entra ID > Security > Named Locations — check for trusted location requirements
  • Power BI Admin Portal > Tenant Settings > Advanced Networking — if "Block Public Internet Access" is enabled, public API access will not work and it must be disabled

If any of these restrictions are in place, please whitelist Solid's outbound IPs (listed at http://docs.getsolid.ai/docs/solids-static-ip-addresses).


Security Notes

  • Use a dedicated Service Principal rather than a personal account for Solid's access
  • Store the Client Secret securely immediately after creation — it is shown only once
  • Set Client Secret expiry to 12–24 months and rotate it before it lapses
  • Do not configure any API permissions on the app registration beyond what's required — adding permissions (e.g. Tenant.Read.All, delegated permissions) breaks admin API access
  • Scope access with a dedicated Security Group rather than granting org-wide access, if you want to limit which workspaces Solid can reach
  • Grant the Service Principal only Member/Admin access to the specific workspaces Solid needs to scan

Did this page help you?