Fabric Data Agent Not Respecting Row-Level Security (RLS) - Returns All Data Instead of Filtered Results

Durjan Hussain 185 Reputation points
2025-09-16T08:17:36.2566667+00:00

Hello team,

We're experiencing an issue where the Fabric Data Agent is not honoring Row-Level Security (RLS) configurations in our semantic model, despite Microsoft documentation stating it should respect all user permissions including RLS and CLS.

Environment:

  • Accessing Fabric Data Agent through Azure AI Foundry integrated into our custom portal
  • RLS is properly configured on the semantic model with UserClient table filtering
  • Power BI embedding in the same environment correctly respects RLS and shows filtered data
  • Users authenticate properly and have appropriate permissions

Issue Details: When users query the Fabric Data Agent, it returns ALL data from the semantic model instead of applying the RLS filters. The same users, when viewing Power BI reports embedded in our portal, only see their authorized data subset as expected.

Expected Behavior: According to the documentation at https://learn.microsoft.com/en-us/fabric/data-science/data-agent-sharing, the Fabric Data Agent should "honor all user permissions to the data, including Row-Level Security (RLS) and Column-Level Security (CLS)."

Actual Behavior:

  • Power BI embedding: ✅ Correctly applies RLS, shows only user's accessible data
  • Fabric Data Agent: ❌ Shows all data, ignores RLS configuration

Questions:

  1. Are there specific configuration steps required to enable RLS for Fabric Data Agents that differ from Power BI RLS setup?
  2. Is there a known issue with RLS enforcement when accessing Data Agents through Azure AI Foundry?
  3. Are there additional authentication or context-passing requirements for Data Agents to recognize user identity for RLS filtering?
  4. Is this a limitation of the current Fabric Data Agent implementation, or are we missing a configuration step?

What We've Tried:

  • Verified RLS rules are active and working in Power BI
  • Confirmed user authentication is working correctly
  • Tested with multiple users - all see complete dataset instead of filtered results
  • Reviewed semantic model permissions and relationships

Any guidance on resolving this RLS enforcement issue with Fabric Data Agents would be greatly appreciated.We're experiencing an issue where the Fabric Data Agent is not honoring Row-Level Security (RLS) configurations in our semantic model, despite Microsoft documentation stating it should respect all user permissions including RLS and CLS.

Environment:

  • Accessing Fabric Data Agent through Azure AI Foundry integrated into our custom portal
  • RLS is properly configured on the semantic model.
  • Power BI embedding in the same environment correctly respects RLS and shows filtered data
  • Users authenticate properly and have appropriate permissions

Issue Details: When users query the Fabric Data Agent, it returns ALL data from the semantic model instead of applying the RLS filters. The same users, when viewing Power BI reports embedded in our portal, only see their authorized data subset as expected.

Expected Behavior: According to the documentation at https://learn.microsoft.com/en-us/fabric/data-science/data-agent-sharing, the Fabric Data Agent should "honor all user permissions to the data, including Row-Level Security (RLS) and Column-Level Security (CLS)."

Actual Behavior:

  • Power BI embedding: ✅ Correctly applies RLS, shows only user's accessible data
  • Fabric Data Agent: ❌ Shows all data, ignores RLS configuration

Questions:

  1. Are there specific configuration steps required to enable RLS for Fabric Data Agents that differ from Power BI RLS setup?
  2. Is there a known issue with RLS enforcement when accessing Data Agents through Azure AI Foundry?
  3. Are there additional authentication or context-passing requirements for Data Agents to recognize user identity for RLS filtering?
  4. Is this a limitation of the current Fabric Data Agent implementation, or are we missing a configuration step?

What We've Tried:

  • Verified RLS rules are active and working in Power BI
  • Confirmed user authentication is working correctly
  • Tested with multiple users - all see complete dataset instead of filtered results
  • Reviewed semantic model permissions and relationships

Any guidance on resolving this RLS enforcement issue with Fabric Data Agents would be greatly appreciated.

Foundry Tools
Foundry Tools

Formerly known as Azure AI Services or Azure Cognitive Services is a unified collection of prebuilt AI capabilities within the Microsoft Foundry platform


3 answers

Sort by: Most helpful
  1. Durjan Hussain 185 Reputation points
    2025-09-23T16:57:55.7766667+00:00

    Hi @Sana Salam , @Pavankumar Purilla We were able to resolve the issue by using the link below and with help from the Microsoft team, especially: @Zidan M

    https://learn.microsoft.com/en-us/fabric/data-warehouse/tutorial-row-level-security

    The RLS wasn’t applied at the table level; it was only applied in the semantic model for Power BI embedding.

    Thank you very much for your help. @Sana Salam and @Pavankumar Purilla

    RLS_Working

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments

  2. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.

    1 deleted comment

    Comments have been turned off. Learn more

  3. Sina Salam 31,056 Reputation points Volunteer Moderator
    2025-09-16T12:48:04.31+00:00

    Hello Durjan Hussain,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    I understand that your Fabric Data Agent Not Respecting Row-Level Security (RLS) - Returns All Data Instead of Filtered Results.

    My best advice:

    1. Capture token in browser devtools when the portal calls Foundry > decode (jwt.ms). Is there a preferred_username/upn claim? If no, it’s a service principal token > go to step - https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-on-behalf-of-flow
    2. If it’s a SP token, implement OBO: switch frontend to user auth (MSAL.js) > pass user token to backend > perform AcquireTokenOnBehalfOf via MSAL > call Foundry with that token. See MSAL OBO docs here - https://learn.microsoft.com/en-us/entra/msal/dotnet/acquiring-tokens/web-apps-apis/on-behalf-of-flow
    3. If you can’t do OBO quickly, move RLS to Warehouse/SQL (DB-level enforcement) or implement server-side authorizing filters (short term). - https://learn.microsoft.com/en-us/fabric/data-warehouse/row-level-security
    4. Enable / check audit logs and correlate for timestamp + token claims + Fabric audit entry to prove effective identity. Provide these to Microsoft support via your Azure Portal if the issue persists. - https://learn.microsoft.com/en-us/fabric/data-warehouse/configure-sql-audit-logs

    I hope this is helpful! Do not hesitate to let me know if you have any other questions or clarifications.


    Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.