cancel
Showing results for 
Search instead for 
Did you mean: 

Enable PowerBI Embedded using Service principal to upload Paginated reports and Display them

Hello!

 

Brief Architecture Summary:

We have a SaaS solution with a web app and use Power BI Embedded for the Analytics. Users Interact with reports that are embedded within the webapp using App owns data. We enable self-service for clients using the Power BI REST Apis to allow them to upload, edit, and view reports. Each client has their own Web App, Azure Analysis Services Instance & Power BI Workspace.

 

Issue:

When a client uploads a Paginated report Via our Web app, We enable this through the REST Api using Service Principal to get an embed token (recommended to use service principal in the Microsoft Documentation).

The report embeds/Uploads successfully BUT will not display/render since the dataset is owned by the Service Principal once uploaded.

 

The only way to get around this is for the Power BI Service Admin to manually edit the dataset for this report and take over the credentials from the Service Principal. Then the report renders for the user.

As an ISV serving many clients, manual steps like these are not sustainable at all. 

 

We tried using a Master user to get an embed token but this fails to upload a Paginated RDL file with the error below. 

{"error":{"code":"InvalidRequest","message":"Can not embed RDL report - d920b668-bbe9-4480-9fb3-5d370b3e28e6 with master user, must use Service principal"}}

(Master User works to get embed tokens for normal PBIX files but not for RDL files)

 

I have heard that the Service Principal works this way "By Design" but it is a fundamental issue if we can get an embed token and upload using the Service Principal BUT not allow the report to render and display

 

Please assist urgently with enabling a sustainable solution to get this process to work smoothly.

 

Thanks!

 

@v-chuncz-msft 

 

 

 

Status: New
Comments
Community Support

@Deez 

 

Take a look at Embed paginated reports for customers and create a support ticket for assistance if necessary.