Summary
This document explains the steps needed to prepare your Power BI environment for a dScribe connection.
For the official documentation by Microsoft, see here.
Prerequisites
Before you get started, make sure you have access to a user with:
administrator access to your Power BI environment
administrator access to your Azure AD (now called "Azure Entra ID") environment
Not an admin yourself? Use this template to request help from one of your administrators: Requesting your admin to enable a Power BI integration with dScribe
Step-by-step guide
Go to Azure Active Directory (AAD)
Select Azure Entra ID (previously called Azure Active Directory):
Create an app registration
TIP 1: remember the name of your application, you will need it later
TIP 2: (important!) Make sure there are no Power BI admin-consent-required permissions set on this application.
Navigate back to your application via Azure Active Directory > App Registrations > Select your newly created App and copy the Application (client) ID somewhere safe. You will need it later.
In your application, navigate to 'Certificates & secrets' and create a new client secret:
Copy the client secret value
Go back to Azure Active Directory > Overview and copy the Tenant ID
Create a new Security Group via Azure portal > Azure Active Directory > Groups (optional: you can choose to reuse an existing group)
Add your App (see Step 2) as a member of the security group you created
Navigate to PowerBI via app.powerbi.com and log in with a user with administrator authorizations
Go to Admin portal > Tenant settings > Admin API settings
a. Set 'Allow service principles to use read-only Power BI admin APIs' to Enabled
b. Add the security group you created earlier
While you're here, make sure these settings are applied as well: You can select ‘The entire organization’ or use the same security group as above.
Using the Tenant ID, Application (client) ID and secret value, create a new Source in dScribe
All done! Congratulations!
Known limitations
For older Power BI datasets, the dataset elements might not be retrieved when running the dScribe job. See the section on 'Model caching' here.