Forum Discussion

Nagaraj_D's avatar
Nagaraj_D
Icon for Advocate I rankAdvocate I
3 months ago
Solved

Power BI App Owns Data Embedding – Clarification on SameSite Cookie / CSRF Concern

Hi Folks,

In my organization, we are using the Power BI "app owns data" embedding solution to embed Power BI reports, dashboards, and paginated reports into a custom web application, so users can access them without needing a Power BI Pro license.

Our security team identified a potential issue related to CSRF attacks that could lead to account takeover or unauthorized data access. Specifically, they observed Power BI-related request URLs/cookies without the SameSite attribute.

 

Proof of Concept (PoC):

Step 1:
Authenticate through the custom web application login page, load the power BI report and capture a request using Burp Suite.

Step 2:
Observe the response headers and identify cookies set without the SameSite attribute.

 

The details using Burp Suite, along with the observed impact.

 

Capturing request using Burp Suite tool  
RequestResponse
  
PrettyPretty
  
GET /13.0.27916.28/sharedresources/BaseThemes/CY24SU08.json HTTP/2HTTP/2 200 0K
Host: app. powerbi.comContent-Type: application/json
Cookie: ai_user=32=80+PC1/8k:54nyALpTPs | 2026-03-12T05:19:17.9832;Date: Sun, 15 Mar 2026 14:53:26 GMT
WFESessionId=81ed4d92-9497-4ec2-be8d-329bba45ee6c;Accept-Ranges: bytes
ARRAffinitySameSite=Access-Control-Allow-Origin: https://teams.powerbi.com
0632ca9db79921cff52d39e8281a****464dlc11d97e789130cd466b********;Cache-Control: public, max-age=31536000
ai_session=juq7door******Mk1gMNLB | 1773585611908 | 1773585611908Itag: "0694a6159b3dcl:0"
Sec-Ch-Ua-Plat form: "Windows"Last-Modified: Sat, 14 Mar 2026 02:22:18 GMT
Accept-Language: en-US, en; q=0.9Vary: Accept-Encoding
Sec-Ch-Ua: "Chromium" ;v="145", "Not : A-Brand" ; v="99"Content-Length: 19684
Sec-Ch-Ua-Mobile: ?0Strict-Transport-Security: max-age=31536000; includeSubDomains
Requestid: 4791f056-f27a-70b3-b048-1e2f5f724dlcX-Content-Type-Options: nosniff
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)X-Xss-Protection: 1; mode=block
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0X-Frame-Options: deny
Safari/537.36Content-Security-Policy: frame-ancestors https://teams.powerbi.com
Accept: application/json, text/plain, */*'self' https://res-sdf.cdn.office.net https://res.cdn.office.net
Activityid: 8b27f0d6-****-8d5c-0540-8clcaa97****https://mesh.public.onecdn.static.microsoft
Sec-Fetch-Site: same-originhttps://m365.cloud. microsoft https://outlook.cloud.microsoft
Sec-Fetch-Mode: corshttps://teams.cloud.microsoft https://teams.microsoft.com
Sec-Fetch-Dest: emptyhttps://gov.teams.microsoft.us https://dod.teams.microsoft.us
Sec-Fetch-Storage-Access: activehttps://teams.microsoftonline.cn https://outlook.office.com
Referer: https://app.powerbi.com/report Embed?uid=d6shxhttps://outlook-sdf.office.com https://outlook.office365.com
Accept-Encoding: gzip, deflate, brhttps://outlook-sdf.office365.com https://www.office.com
Priority: u=l, ihttps://scuprodprv.www.office.com https://www.microsoft365.com
 https://local. loop.microsoft.com https://dev. loop.microsoft.com

 

 

Impact:
An attacker may be able to:

  • Perform unauthorized actions on behalf of the victim
  • Modify account details (possible account takeover scenarios)
  • Access or manipulate sensitive data
  • Execute transactions without user consent

The security team also provided recommendations, but for the app.powerbi.com domain, we do not have control over cookie settings. Is that correct?

Recommendation provided by security team:

  • Set the SameSite attribute for all sensitive cookies
    • SameSite=Strict (recommended for maximum protection)
    • or SameSite=Lax (if cross-site navigation is required)
  • Ensure cookies are also configured with:
    • Secure
    • HttpOnly
  • Implement CSRF tokens for all state-changing operations
  • Validate Origin/Referer headers on sensitive requests

Could someone please clarify whether this is something Microsoft controls for the Power BI domain, and whether there is any supported mitigation from our custom web application backend side in an app owns data embedding scenario?

 

Any clarification would be greatly appreciated. Thanks in advance.

 

  • Hi Nagaraj_D,

    Thanks for reaching out to the Microsoft Fabric Community forum.

     

    Additionally, the Power BI Security Whitepaper states:

    Power BI embedded works using IFrame. An IFrame is not allowed to read or write data from the external web application or portal, and the communication with the IFrame is done by using the Power BI Client SDK using POST messages.

    Reference:
    Power BI security white paper - Power BI | Microsoft Learn

    Generally Iframe is secure enough, if you still want additional security you can explore more on Azure private link.

    Microsoft also offers Azure Private Link for organizations that require additional network-level security. With Private Link, traffic between users and the Power BI service can travel through Microsoft's private backbone network instead of the public internet, providing enhanced network isolation and secure connectivity through private endpoints.

    Some of the benefits include:

    • Traffic remains on the Azure backbone network when accessing Power BI resources through private endpoints.
    • Improved network isolation from public internet traffic.
    • Support for secure connectivity scenarios involving on-premises environments when used together with technologies such as ExpressRoute or VPN connections.

    For more details, see Private links for secure access to Fabric.

    Power BI security white paper - Power BI | Microsoft Learn

    About private Links for secure access to Fabric - Microsoft Fabric | Microsoft Learn
    If you want to learn how to set up private link, please check this article:
    Set up and use a tenant-level private link - Microsoft Fabric | Microsoft Learn

     

    I hope this helps. Please feel free to reach out if you have any further questions.
    Thank you.

  • Short answer: the SameSite finding on app.powerbi.com cookies is a false positive for your CSRF concern, and Front Door / App Gateway isn't needed to fix it.

     

    In App-Owns-Data, access is granted by a short-lived embed token passed to the iframe via the Power BI Client SDK — not by those service cookies. Power BI's APIs use bearer tokens in the Authorization header, not cookies, so they can't be CSRF-forged and the browser won't auto-attach them. The captured cookies are Microsoft's own domain session cookies.

     

    So the real surface is your app's token-generation endpoint: keep CSRF protection on your backend, SameSite+Secure+HttpOnly on your cookies, and Origin/Referer validation. That's the right focus and you've confirmed it's already handled.

     

    Front Door / App Gateway are network/WAF layers; they don't change Microsoft's cookies or add CSRF protection you don't already have. Given per-client hostnames and added cost, I wouldn't add them just for this. Your existing architecture is sufficiently secure for the concern raised.

7 Replies

  • Hi,

     

    Yes, that is correct. In an “app owns data” embedding setup, the cookies for the `app.powerbi.com` domain are managed by Microsoft, so customers cannot control attributes like `SameSite`, `Secure`, or `HttpOnly` for those cookies.

     

    The cookies you captured are Power BI service cookies, not application cookies from your custom app.

     

    From your side, you should still secure your own application by:

     

    • Using `SameSite`, `Secure`, and `HttpOnly` on your app cookies
    • Implementing CSRF protection on your backend APIs
    • Validating `Origin/Referer` headers where needed

     

    For Power BI domain cookies specifically, only Microsoft can make configuration changes.

     

    Hope this helps!!

     

    Thanks!

     

    • Nagaraj_D's avatar
      Nagaraj_D
      Icon for Advocate I rankAdvocate I

      Hi SamInogic ,

      First, apologies for the delayed response. Also, thank you for the detailed explanation—it was very helpful.

       

      After reviewing your feedback, I discussed the details with our web application backend team. They confirmed that "Application-owned cookies and security controls are handled separately within the application's managed infrastructure."

       

      However, I still have a few questions and would appreciate your guidance:

      1. Since you mentioned that the cookies used by Power BI Services are managed and controlled by Microsoft, does that mean the embedded Power BI content is inherently protected against CSRF attacks from the Power BI side?
      2. I recently consulted with a security support team, and they suggested implementing additional protection using Azure Application Gateway and Azure Front Door. As I am relatively new to this security topic, I am trying to understand whether this approach is truly necessary for our scenario.

      I am also concerned that the Azure-side solution may not be practical for our custom web application for the following reasons:

      • Our application is hosted using client-specific hostnames, meaning each client has a different endpoint. Managing Azure Front Door configurations for every client could become complex.
      • There would be additional infrastructure and operational costs.
      • It introduces ongoing maintenance and monitoring overhead.
      • Our current architecture is:

        Browser → Web Application → Power BI iFrame → Report/Dashboard

      •  

        With Azure Front Door, the flow would become:

        Browser → Azure Front Door → Web Application → Power BI iFrame → Report/Dashboard

      Given that we are using the App-Owns-Data embedding model and following Microsoft's recommended security practices, is introducing Azure Front Door/Application Gateway really required from a security perspective, or would the existing architecture already be considered sufficiently secure?

       

      I would appreciate any clarification or recommendations.

       

      Thank you.

      • v-abhinavmu's avatar
        v-abhinavmu
        Icon for Community Support rankCommunity Support

        Hi Nagaraj_D,

        Thanks for reaching out to the Microsoft Fabric Community forum.

         

        Additionally, the Power BI Security Whitepaper states:

        Power BI embedded works using IFrame. An IFrame is not allowed to read or write data from the external web application or portal, and the communication with the IFrame is done by using the Power BI Client SDK using POST messages.

        Reference:
        Power BI security white paper - Power BI | Microsoft Learn

        Generally Iframe is secure enough, if you still want additional security you can explore more on Azure private link.

        Microsoft also offers Azure Private Link for organizations that require additional network-level security. With Private Link, traffic between users and the Power BI service can travel through Microsoft's private backbone network instead of the public internet, providing enhanced network isolation and secure connectivity through private endpoints.

        Some of the benefits include:

        • Traffic remains on the Azure backbone network when accessing Power BI resources through private endpoints.
        • Improved network isolation from public internet traffic.
        • Support for secure connectivity scenarios involving on-premises environments when used together with technologies such as ExpressRoute or VPN connections.

        For more details, see Private links for secure access to Fabric.

        Power BI security white paper - Power BI | Microsoft Learn

        About private Links for secure access to Fabric - Microsoft Fabric | Microsoft Learn
        If you want to learn how to set up private link, please check this article:
        Set up and use a tenant-level private link - Microsoft Fabric | Microsoft Learn

         

        I hope this helps. Please feel free to reach out if you have any further questions.
        Thank you.

  • v-abhinavmu's avatar
    v-abhinavmu
    Icon for Community Support rankCommunity Support

    Hi Nagaraj_D,

    Thank you for posting your query in the Microsoft Fabric Community Forum, and thanks to SamInogic for sharing valuable insights.

     

    Could you please confirm if your query has been resolved by the provided solutions? This would be helpful for other members who may encounter similar issues.

     

    Thank you for being part of the Microsoft Fabric Community.

  • v-abhinavmu's avatar
    v-abhinavmu
    Icon for Community Support rankCommunity Support

    Hi Nagaraj_D,

    I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. 


    Thank you.

  • v-abhinavmu's avatar
    v-abhinavmu
    Icon for Community Support rankCommunity Support

    Hi Nagaraj_D,

    May I check if this issue has been resolved? If not, Please feel free to contact us if you have any further questions.


    Thank you

  • Short answer: the SameSite finding on app.powerbi.com cookies is a false positive for your CSRF concern, and Front Door / App Gateway isn't needed to fix it.

     

    In App-Owns-Data, access is granted by a short-lived embed token passed to the iframe via the Power BI Client SDK — not by those service cookies. Power BI's APIs use bearer tokens in the Authorization header, not cookies, so they can't be CSRF-forged and the browser won't auto-attach them. The captured cookies are Microsoft's own domain session cookies.

     

    So the real surface is your app's token-generation endpoint: keep CSRF protection on your backend, SameSite+Secure+HttpOnly on your cookies, and Origin/Referer validation. That's the right focus and you've confirmed it's already handled.

     

    Front Door / App Gateway are network/WAF layers; they don't change Microsoft's cookies or add CSRF protection you don't already have. Given per-client hostnames and added cost, I wouldn't add them just for this. Your existing architecture is sufficiently secure for the concern raised.