Forum Discussion
Power BI embedded for internal applications
Anonymous wrote:I have been reading through their documentation as well. As far as I can gather, the app needs to be authenticated through Azure AD first, then requested report/dashboard (through REST API) is pulled into an iFrame.
What I would like to know is if I wanted one particular dashboard available in our internal app, how does it work? Would it be enough to have one active Power BI Pro (for the analyst)?
Yes I agree in that it needs to validated through Azure AD first, which is the "user' - PowerBI user.
I don't think you can use one account, the analyst, unless that is the only person viewing the report.
Each user, in this case, needs to be a PowerBI user (Azure AD).
I've got as far as doing it for one user, was prior to Embed being GA so now focusing on embed as it's an external application.
Embed paid for by renders, Internal REST API's (AzureAD) paid for by powerBi accounts if using Pro features.
You might be able to do it using the master secret key but some risk with users being able to extract it and having full access to the Workspace.
Alright! After so many hours I think I somehow reached a conclusion. In the end, if a coworker wants to access a particular report/dashboard that is integrated into a web app using REST APIs (not Power BI Embedded), they need to have a Power BI account (free/pro) AND be part of the company's Azure AD (we already knew this). Free accounts can be assigned by Global Admin role in Azure AD through Office 365 Admin console. You can read the details here. This will eliminate the need of users creating Power BI accounts themselves. Users can view the dashboard through the web app if the particular dashboard is shared with them through Power BI Cloud -> Dashboard -> Share.
Here is a brief walkthrough under the assumption that you already have the web app built and only thing you need is Client ID and Client Secret from the REST API. Here is a C# sample from the Power BI tutorial (This tutorial talks about integrating a report into a web app. I was successful to integrate the whole dashboard. Hence, I am talking about dashboard rather than a report.)
- Create content in Power BI Desktop.
- Publish it to your Power BI Cloud.
- Share the dashboard with people from Power BI Cloud. These users need to be users in Azure AD. Otherwise authentication will fail.
- Register your web app through dev.powerbi.com/apps. Details here. This will give you a Client API and Client Secret.
- Modify web.config of your web app with the Client API and Client Secret you got in the previous step.
- Any user trying to use the web app to view the shared dashboard will need to login with their registered Power BI accounts. For first time users, a password reset will be asked.
This is really the short version. The trick is to add users to Azure AD and make sure you share the relevant dahsboard with them.
The only difference between a user with free account and a pro account is a banner when viewing the report. See screencaps below.
Free account viewing the dashboard.
Pro account viewing the dashboard.
I hope this helps a bit.
Let me know how it goes for you.
- metricsman9 years agoHelper I
Yes! agree with your process. Took me days to get to that conclusion as well.
No visible different really in Free or Pro reports but if the report uses any Pro features; frequency of refresh, using wordspaces etc then all users viewing it must be Pro so depending on numbers can add up quickly...
- Quentin5 years agoHelper IV
Hello there,
Thank you for sharing your thoughts and conclusions around here.
Let's be honest, i'm struggling...- What are the administrative rights needed to achieve this? Global Azure Administrator? I'm "just" the PowerBi admin...
- What are the licenses needed in Azure and PowerBi? We have a Azure and Azure AD (then i'm not the admin and it's quite opaque...) and we "just" use PowerBi Pro for each users (more than 400)
If you could help us, it would be much appreciated, hate to think that public funds are wasted if it's the case...