<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Separate report filters per customer in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Separate-report-filters-per-customer/m-p/2091920#M31964</link>
    <description>&lt;P&gt;I came up with a potential solution, but I'm wondering if there is a better approach or if there are any potential security concerns with this approach.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;On the model, I added a unique token to each customer&lt;/LI&gt;&lt;LI&gt;I also added a custom "valid" measure to the model that returns a boolean - TRUE if&amp;nbsp;HASONEFILTER is true on both the customer ID and the customer token&lt;/LI&gt;&lt;LI&gt;I added a measure on the sales model so that the sales values return the correct value if "valid" (i.e. both customer ID and customer token have a single filter) and return 0 otherwise&lt;/LI&gt;&lt;LI&gt;In the report, I added the sales measure rather than the "real" sales value&lt;/LI&gt;&lt;LI&gt;I made the report filters pane hidden&lt;/LI&gt;&lt;LI&gt;When the report gets embedded, I pass in the customer ID and token as filters on the embed URL, which results in a report that is filtered for that customer with no filters visible to the user&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Can anyone poke any holes in this approach?&amp;nbsp; A hacker would need to know both a customer's ID and token to view their reports, so I think that would be secure?&amp;nbsp; Is there a better approach I could be using instead?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EDIT: I spoke with Microsoft support, and they said the preferred approach is RLS, but that would require every customer to have a Power BI account.&amp;nbsp; This isn't feasable in this case, so he said this workaround is probably the best approach given our constraints.&amp;nbsp; I'm still interested though if anyone can think of any potential security holes with this approach.&lt;/P&gt;</description>
    <pubDate>Wed, 22 Sep 2021 19:34:35 GMT</pubDate>
    <dc:creator>rsrwebsupport</dc:creator>
    <dc:date>2021-09-22T19:34:35Z</dc:date>
    <item>
      <title>Separate report filters per customer</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Separate-report-filters-per-customer/m-p/2089611#M31937</link>
      <description>&lt;P&gt;I want to make one "master" report in Power BI and then give each individual customer the ability the view the report but only with data from them.&amp;nbsp; For example, the report might be sales by month, so the customer would be able to see their own sales by month, but not sales for all customers.&amp;nbsp; Is this possible?&amp;nbsp; I originally looked at providing a filter to only show the one customer, but it seems like there's no secure way to do this according to &lt;A href="https://community.powerbi.com/t5/Developer/Lock-Filter-created-using-Filter-Parameter-in-Power-BI-Report/m-p/2001048#M30934" target="_self"&gt;this post&lt;/A&gt;.&amp;nbsp; They recommend RLS, but the application will be owning the data so every customer will essentially be sharing the same Power BI account.&amp;nbsp; Are there any other alternatives?&amp;nbsp; I know I could technically create a separate report for every customer, but that seems like overkill.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 20:07:32 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Separate-report-filters-per-customer/m-p/2089611#M31937</guid>
      <dc:creator>rsrwebsupport</dc:creator>
      <dc:date>2021-09-21T20:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: Separate report filters per customer</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Separate-report-filters-per-customer/m-p/2091920#M31964</link>
      <description>&lt;P&gt;I came up with a potential solution, but I'm wondering if there is a better approach or if there are any potential security concerns with this approach.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;On the model, I added a unique token to each customer&lt;/LI&gt;&lt;LI&gt;I also added a custom "valid" measure to the model that returns a boolean - TRUE if&amp;nbsp;HASONEFILTER is true on both the customer ID and the customer token&lt;/LI&gt;&lt;LI&gt;I added a measure on the sales model so that the sales values return the correct value if "valid" (i.e. both customer ID and customer token have a single filter) and return 0 otherwise&lt;/LI&gt;&lt;LI&gt;In the report, I added the sales measure rather than the "real" sales value&lt;/LI&gt;&lt;LI&gt;I made the report filters pane hidden&lt;/LI&gt;&lt;LI&gt;When the report gets embedded, I pass in the customer ID and token as filters on the embed URL, which results in a report that is filtered for that customer with no filters visible to the user&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Can anyone poke any holes in this approach?&amp;nbsp; A hacker would need to know both a customer's ID and token to view their reports, so I think that would be secure?&amp;nbsp; Is there a better approach I could be using instead?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EDIT: I spoke with Microsoft support, and they said the preferred approach is RLS, but that would require every customer to have a Power BI account.&amp;nbsp; This isn't feasable in this case, so he said this workaround is probably the best approach given our constraints.&amp;nbsp; I'm still interested though if anyone can think of any potential security holes with this approach.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Sep 2021 19:34:35 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Separate-report-filters-per-customer/m-p/2091920#M31964</guid>
      <dc:creator>rsrwebsupport</dc:creator>
      <dc:date>2021-09-22T19:34:35Z</dc:date>
    </item>
  </channel>
</rss>

