Forum Discussion

Jessica_17's avatar
Jessica_17
Icon for Helper V rankHelper V
17 days ago

PBIRS On-Premises Licensing, Website Embedding, and SSO Requirements

Hi Team,

I need some guidance on a client requirement involving Power BI Report Server (PBIRS). The client wants to host reports entirely on-premises (no cloud & Internet dependency) and embed them into a website built using React.js and NGINX.

Could you please help clarify the following?

  1. Licensing: What licenses are required for PBIRS, including report viewers?
  2. Embedding: Is embedding PBIRS reports in a React.js website behind NGINX supported, and what is the recommended approach?
  3. Authentication/SSO: Can users who have already logged into the website access embedded reports without being prompted for separate PBIRS credentials?
  4. Integration: If the website uses its own authentication mechanism, can it integrate with PBIRS SSO? Are any additional configurations or custom components required?
  5. Security: How should user permissions and report access be managed securely?

Please share the recommended architecture, any limitations, and relevant Microsoft documentation to help us determine the feasibility of this solution.

Thanks!

9 Replies

  • jubinsoni's avatar
    jubinsoni
    Icon for Memorable Member rankMemorable Member

    Hi Jessica_17​,

    Here is how I would frame each point for the client (please confirm licensing with your Microsoft licensing partner, since terms change):

    Licensing. The server is licensed, not the viewers. Power BI Report Server rights come with either SQL Server Enterprise Edition per-core licences with active Software Assurance, or a qualifying Power BI Premium / Fabric capacity purchase. Report viewers do not need individual Power BI licences to view on-premises reports.

    Embedding. PBIRS does not have the JavaScript embedding SDK that the Power BI service has. Embedding is an iframe with the embed parameter, so the React side is simple:

    <iframe
      title="Sales"
      width="100%" height="800"
      src="https://reports.contoso.local/Reports/powerbi/Sales/Overview?rs:embed=true"
      frameBorder="0"
      allowFullScreen
    />

    SSO and the website's own login. This is the hard part. PBIRS authenticates with Windows authentication (Kerberos/NTLM), and it cannot accept your website's session or JWT. In practice the clean options are:

    A. Intranet, domain-joined users (best)
       -> site + PBIRS on the same domain, browser in Local Intranet zone
       -> Kerberos (SPNs + delegation if a proxy is involved) = no prompt
    
    B. Website has its own login (non-Windows users)
       -> PBIRS cannot reuse that session
       -> map site users to AD accounts, or reconsider: paginated reports via
          custom auth extension, or Power BI Embedded (cloud) for app-owns-data

    One NGINX-specific warning: NTLM is connection-based, and open-source NGINX does not keep the client-to-upstream connection pinned, so proxying PBIRS through NGINX with NTLM tends to cause repeated login prompts. Either let browsers reach PBIRS directly (only the site goes through NGINX), use Kerberos end to end, or use a proxy that explicitly supports NTLM pass-through.

    Security. Manage access with folder-level roles (Browser for viewers) using AD groups, and filter data with RLS roles defined in the .pbix and assigned to AD groups in the report's Manage > Row-level security page.

    So my overall approach would be:

    Licence the server (SQL EE + SA or Premium/Fabric capacity rights)
    -> iframe embed with ?rs:embed=true in React
    -> Windows/Kerberos SSO for domain users; avoid NTLM through NGINX
    -> AD groups for folder roles + RLS roles in the report
    -> Non-Windows users: re-evaluate (custom auth / cloud embedding)

    AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.

    • Jessica_17's avatar
      Jessica_17
      Icon for Helper V rankHelper V

      Hello jubinsoni​ ,

      Thanks for all the information. I still have a few questions to clarify my understanding:

      1. Licensing: Why is a Power BI Pro or Fabric/Premium license required if everything is hosted on-premises using PBIRS? Which exact license do we need, given that we have no internet connectivity?
      2. Publishing reports: When we publish a report using Power BI Desktop, does it get published to our local PBIRS server or to the Power BI cloud service? We need to ensure that nothing is uploaded to the cloud.
      3. Embedding and authentication: When we embed a PBIRS report into our website, where should the username and password be configured? Currently, PBIRS prompts for Windows authentication or a username and password when accessed from a different VM, even if the user is already logged into our website.
      4. Single Sign-On: Can we configure the website so that users can view embedded reports without a separate login prompt? If so, what is the recommended approach for our on-premises environment?

      Since we have no internet connectivity, I want to ensure we understand the licensing requirements, report publishing process, and authentication setup before proceeding.
      Also are there any links of Microsoft as well to showcase that to clients

      Thanks for your help!

  • jubinsoni's avatar
    jubinsoni
    Icon for Memorable Member rankMemorable Member

    Hi Jessica_17​,

    It helps to separate two databases here:

    Report Server catalog (ReportServer + ReportServerTempDB) -> must be SQL Server
    Report data sources (what the reports query)          -> can be PostgreSQL, MySQL, Oracle, files, etc.

    The catalog, where the server stores reports, folders, permissions and subscriptions, has to be SQL Server. There's no supported way to run it on another database engine. The data your reports read from, though, can live in any supported source, so the client's actual data doesn't need to move to SQL Server.

    On cost: the catalog is small and only used by the report server itself. Before assuming an extra SQL Server licence, ask the licensing partner whether the client's existing Power BI Report Server entitlement already covers a SQL Server instance used only for the catalog. That's the question that decides whether there's any added cost at all.

    • Jessica_17's avatar
      Jessica_17
      Icon for Helper V rankHelper V

      HI jubinsoni​ ,

      Thanks for this. They don’t have any SQL Server licenses, as their current setup relies entirely on open-source, on-premises software. I also couldn’t find a suitable alternative that would meet the requirements, so this confirms my concern. Thanks for your help!

  • jubinsoni's avatar
    jubinsoni
    Icon for Memorable Member rankMemorable Member

    Hi Jessica_17​, good questions, short answers below:

    Licensing: nothing runs in the cloud. Premium/Fabric or SQL Server Enterprise + Software Assurance is simply how you are entitled to the PBIRS product key. You enter that key during installation and the server works fully offline. Viewers need no individual licences. Your licensing partner can confirm which entitlement you already own.

    Publishing: use Power BI Desktop optimized for Report Server and save with File > Save as > Power BI Report Server, entering your server URL (for example http://pbirs01/reports). That only writes to your server; avoid the regular Desktop "Publish" button, which targets the cloud service.

    Login prompt when embedded: credentials should never be put in the website or iframe. The prompt appears because the browser is not doing integrated Windows authentication for that server. On domain-joined machines, add the PBIRS URL to the Local Intranet zone (via Group Policy), make sure Negotiate/NTLM is enabled in rsreportserver.config, and register Kerberos SPNs for the service account; users then open embedded reports with no prompt.

    SSO with your website login: only works when that login is the same Windows/AD identity. If the site uses its own user store, PBIRS cannot reuse that session, so map users to AD accounts or consider another embedding option.

    Docs to share with the client (search these titles on Microsoft Learn): "Find your report server product key", "Power BI Desktop for Power BI Report Server", "Embed a report using an iframe" (rs:embed=true), "Configure Windows authentication on the report server", and "Register a Service Principal Name (SPN) for a report server".

    • Jessica_17's avatar
      Jessica_17
      Icon for Helper V rankHelper V

      HI jubinsoni​ ,

      Thanks for sharing this. The client would like to know if there’s a workaround to use a database other than SQL Server to avoid the associated licensing costs. Are there any alternative solutions we could explore?

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

    Hi Jessica_17​ 

    Following up to confirm if the earlier responses addressed your query. If not, please share your questions and we’ll assist further.

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

    Hi Jessica_17​ 

    Have you had a chance to look through the responses shared earlier? If anything is still unclear, we’ll be happy to provide additional support.