Skip to main content

Power BI

Under Review

Allow to pass parameters to an iframe for Power BI Embedded

Vote (137) Share
Paul's profile image

Paul on 20 Jul 2016 22:02:01

Scenario: We have a website with Power BI embedded analytics and details provided by SSRS reports. On the top you could see the parameters for the reports (multiple value, single value, all). It would be great if we could pass (securely) parameters to power bi embedded so that the datasource only shows certain data. Imagine that I would have to share this dataset for several customers and I want to filter data by customer instead of creating one datasource for each of them.
Thanks!

Comments (23)
Paul's profile image Profile Picture

GilbertoCrespo on 05 Jul 2020 22:57:19

RE: Allow to pass parameters to an iframe for Power BI Embedded

The FILTER solution may break the secutiry of my application, because i'm using the version "App owns data" and I'm using only one powerBi premium user for all of my clients.

If they change the URL from browser, they would see confidencial information of other client.

Paul's profile image Profile Picture

GilbertoCrespo on 05 Jul 2020 22:57:10

RE: Allow to pass parameters to an iframe for Power BI Embedded

There are something new about this great idea? I'm using the C# version (https://github.com/Microsoft/PowerBI-Developer-Samples/tree/master/App Owns Data).

Does anyone knows if there are some alternative to pass this parameter?

Paul's profile image Profile Picture

Gowtham Veera Raghavan on 05 Jul 2020 22:52:56

RE: Allow to pass parameters to an iframe for Power BI Embedded

any update on this ?

Paul's profile image Profile Picture

Praveen Ramachandra on 05 Jul 2020 22:49:00

RE: Allow to pass parameters to an iframe for Power BI Embedded

Do we have any update with Power BI Javascript for passing multiple filters

Paul's profile image Profile Picture

Power BI User on 05 Jul 2020 22:44:35

RE: Allow to pass parameters to an iframe for Power BI Embedded

It looks from the following documentation that you can add filters in javascript:
https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters

However, this is a security issue as javascript can be manipulated by a user. What is really needed is a way to pass filters from the server when generating the access token. This is somewhat possible now with the username, but that's only one value and we're currently forced to use it for something entirely different than username.

Paul's profile image Profile Picture

Power BI User on 05 Jul 2020 22:44:08

RE: Allow to pass parameters to an iframe for Power BI Embedded

Yes this is critical for filtering the report based on a particular user. It would be great if we were able to pass the extra params in JWT as arrays or comma separated strings too like the "roles" tag in JWT.

Eg: "customers": "A,B,C"

Paul's profile image Profile Picture

Power BI User on 05 Jul 2020 22:41:47

RE: Allow to pass parameters to an iframe for Power BI Embedded

It is important to pass dynamic query parameters similar to how dynamic filters can be passed via report URL query string. This is because it would be better to filter the data at the datasource itself rather than loading everything and then apply filters on it.

Paul's profile image Profile Picture

Power BI User on 05 Jul 2020 22:40:50

RE: Allow to pass parameters to an iframe for Power BI Embedded

Would be perfect if passing parameters via PowerBI JavaScript API would possible

Paul's profile image Profile Picture

Kevin H on 05 Jul 2020 22:38:32

RE: Allow to pass parameters to an iframe for Power BI Embedded

I voted for this, and here is more specifically what I think is the needed enhancement to RLS for Power BI Embedded:

In addition to passing an RLS "role", I would like to be able to pass (in the app token) any number of parameters, which can be used WITHIN the corresponding rule for that role.

Regarding current RLS functionality, per this page...
https://docs.microsoft.com/en-us/azure/power-bi-embedded/power-bi-embedded-rls

This help doc seemed to imply, but did not explicitly say, that if I (a) set up an RLS rule that includes the USERNAME () function in the table filter DAX expression, and (b) use Power BI Embedded to access the model...

...Then the USERNAME () function in the table filter DAX expression will evaluate to the "username" that was passed as part of the app token. For example, 'Andrew Ma' from the example.

I wondered: is that true?

And is it also true that the ONLY thing you can actually do with the "username" from the app token is to have it returned by the USERNAME () function, in a table filter DAX expression, as part of an RLS rule?

I did some testing and I believe the answer to both questions is "yes."

I think that in effect, the "username" element of the app token can be used as a single arbitrary parameter, to be used within a table filter DAX expression, as part of an RLS rule.

It doesn't have to act strictly as a username; I passed an integer, and in my table filter DAX expression, I used VALUE(USERNAME () ), and it worked to filter on an integer ID in any table.

Which is really convenient!

But also, it seems like a limitation that there is only one; and it is misleading that it is called "username". Instead, I think I should be able to pass any number of such parameters; and, they should have a more generic naming convention instead of "username".

Instead, in the app token, I should be able to pass many parameters like param1 = "foo"; param2 = "145"; param3 = "false"

And then, instead of the USERNAME () function, there

Paul's profile image Profile Picture

Power BI User on 05 Jul 2020 22:36:28

RE: Allow to pass parameters to an iframe for Power BI Embedded

Are you aware of RLS in Power BI Embedded?
https://docs.microsoft.com/en-us/azure/power-bi-embedded/power-bi-embedded-rls