TL;DR
Power BI Embedded is Microsoft’s native embed path: register an Azure AD app, give it a service principal, grant Power BI API permissions, buy a Fabric capacity, and sign embed tokens from your backend. Everything around that — per-tenant branding, per-viewer RLS attribute forwarding, token refresh, audit logs, multi-vendor support if you add Tableau or QuickSight later — you build and maintain yourself.
Embedportal is the layer above Power BI. You keep using Power BI for authoring, dataset modelling and RLS rule definition. Embedportal handles the Azure AD dance, the multi-tenant plumbing, the embed UI and the branded shell. One configuration in Embedportal, one iframe in your app.
If you already own a Power BI tenant and you’re embedding for more than one customer, Embedportal typically saves 2–4 engineer-months of distribution-layer work. If you only have one tenant and one report, native Power BI Embedded is enough — though the Azure AD setup alone is a weekend.
Outcomes compared
| Outcome | Power BI Embedded (native) | Embedportal (on top of Power BI) |
|---|---|---|
| Power BI-native authoring and RLS roles | ✓ | ✓ |
| Service-principal auth to Power BI | ✓ | ✓ |
| Production-grade multi-tenant distribution | DIY | ✓ |
| Customer-owned branding and domain | DIY | ✓ |
| Compliance-ready audit trail | DIY | ✓ |
| Viewer-side authentication (SSO, 2FA) | DIY | ✓ |
| Vendor-neutral — add Tableau, QuickSight, Metabase | — | ✓ |
| Time from decision to first tenant live | months | hours |
Setup effort
Power BI Embedded native. Microsoft gives you the service-principal auth path and the embed-token API. Taking that to a multi-tenant SaaS release requires work in four distinct areas: viewer identity (including Effective Identity forwarding for RLS), branded portal shell, compliance and audit, and capacity management under real concurrency. Teams typically budget 2–4 engineer-months for a first customer-facing release, and longer to reach SOC 2 readiness with audit logging. None of that work is Power BI-specific — you’d redo it if you later added a second BI vendor.
Embedportal. Follow the six-step Power BI setup — register the Azure AD app, paste the Tenant ID, Client ID and Client Secret, enable service-principal access, and add the principal to your workspace. Under 30 minutes end-to-end, and multi-tenant distribution, branding, audit and SSO all work on day one.
Multi-tenant scale
This is where native Power BI Embedded gets hardest, and where the Fabric capacity bill sneaks up. Power BI doesn’t have a native concept of “your customers” separate from Azure AD identities. You have three real multi-tenant patterns:
- One workspace, dataset RLS roles per tenant. Cheapest, but you’re modelling customer identity inside the dataset. Doesn’t scale past a few dozen tenants cleanly.
- One workspace per tenant. Cleanest isolation, but workspace management becomes an ops job as customers onboard and churn.
- Effective Identity forwarding on a single shared dataset. What most SaaS teams converge on — one dataset, one RLS role, and your service principal forwards the viewer’s tenant ID as an Effective Identity on every embed token. Requires you to write the identity-mapping layer.
Embedportal treats option 3 as a first-class feature. One Power BI workspace serves unlimited tenants; each tenant’s viewers are forwarded to Power BI with their own Effective Identity. You don’t create Azure AD users per customer. Capacity utilisation scales linearly with viewer concurrency rather than tenant count.
Row-level security
Power BI ships with powerful RLS primitives: dataset roles, defined in Power BI Desktop with DAX filter expressions, and Effective Identities that Power BI Embedded can assign to an embed token. What Power BI Embedded native doesn’t give you is the rule-definition surface on the viewer side. You have to decide what attributes to pass, how to pass them, how to default them, and how to override them per report — and write that yourself.
Embedportal exposes a rule-definition UI on top of Power BI’s primitive. You declare attributes like organization_id, region, role, and Embedportal forwards them as Effective Identities with per-report overrides. The Power BI side is unchanged — RLS roles defined as usual in the dataset. See the RLS guide for the full setup.
White-label branding
Power BI Embedded’s native toolbar and header can be suppressed with embedConfig settings, and the iframe itself respects your CSS. That’s where the native customisation ends. To deliver a genuinely white-labeled portal — per-tenant logo, palette, custom domain, themed org switcher, themed sidebar with the customer’s own report list — you build the whole shell yourself.
Embedportal ships the shell. Each tenant gets their own logo, palette, custom domain and themed portal UI. The Power BI iframe drops into that shell and your customers see their brand, not Microsoft’s.
Multi-vendor future
Power BI is deeply tied to the Microsoft stack — Azure AD for identity, Fabric for capacity, Excel for ad-hoc analysis, Teams for distribution. That alignment is a feature if you’re an all-Microsoft shop and a lock-in risk otherwise. Teams that started on Power BI three years ago and now want to offer Tableau or QuickSight content to customers running on AWS or GCP face a full rebuild of the embedding layer.
Embedportal is vendor-neutral by construction. Swap Power BI for Tableau by changing the integration source on the dashboard — no change in your product’s frontend, no change for your customers. Optionality has a price, but so does being stuck when a customer asks for it.
Pricing
Power BI Embedded native. Capacity is the line item most teams underestimate. Microsoft Fabric F2 starts around $250/month pay-as-you-go, F8 around $1,000, and most production embedded workloads land on F8 or higher. Add a handful of Power BI Pro licences ($14/user/month) for your developers, and a service principal configuration that’s technically free but took a week of Azure admin work to land. See the 2026 pricing breakdown for the full math.
Embedportal. Flat pricing independent of your viewer count or Fabric capacity. $249/month Starter (one BI integration), $499/month Professional (unlimited integrations, branding, SSO, audit, SLA), custom Enterprise. See full pricing.
Break-even is typically small: if your Power BI embedding project would take even one month of one engineer, Embedportal’s annual fee is comfortably cheaper than the burn rate.
When to pick which
Pick native Power BI Embedded if
- You’re a one-product, one-tenant deployment and the embed is genuinely internal.
- You have a dedicated Azure / Power BI platform team already maintaining the tenant, and multi-tenant embed is just another workload on their plate.
- Your customers are all inside the same Azure AD tenant (rare for SaaS, common for enterprise IT portals).
Pick Embedportal if
- You have two or more customer tenants embedding the same reports, or you plan to.
- You need per-tenant branding, white-label, or custom-domain portals.
- You don’t want to run the Azure AD service principal lifecycle, secret rotation, and Effective Identity mapping yourself.
- You might add Tableau, QuickSight, or Metabase content in the next 24 months.
- You need SOC 2 audit evidence for embedded access without building the audit trail yourself.
Switching from native Power BI Embedded
If you’ve already built a Power BI Embedded integration and want to move to Embedportal, the Power BI side stays identical — same workspace, same reports, same RLS roles. On the Embedportal side you paste the Tenant ID, Client ID, Client Secret and Workspace ID, and map your viewer attributes to the Effective Identity model. Typical switchover is half a day for the Azure AD confirmation and under a day for the frontend cut-over.
Existing RLS roles, dataset parameters, paginated reports and dashboards all embed through Embedportal without modification.
11. FAQ
Is Embedportal a replacement for Power BI?
No. Embedportal sits on top of Power BI — you keep using Power BI Desktop or the Service to author reports, and Embedportal embeds them into your SaaS with multi-tenant branding and row-level security. Your reports, datasets and RLS roles stay in Power BI.
Does Embedportal require a Power BI Premium or Fabric capacity?
For any production multi-tenant workload, yes — Microsoft's own guidance is that Pro licences aren't viable past a handful of tenants. Embedportal works fine on Pro for development and demos, but we recommend a Fabric F2 or higher once you ship to real customers.
How does Embedportal handle the Azure AD service principal flow?
You register an Azure AD app once, paste the Tenant ID, Client ID and Client Secret into Embedportal, and we handle token acquisition and refresh for every embed request. Your frontend never sees the client secret; your viewers never see an Azure login screen.
Can we use our existing Power BI RLS roles?
Yes. Define RLS roles in your Power BI dataset as usual, then enable RLS on the dashboard in Embedportal and map your viewer attributes to the dataset's role identities. Embedportal passes them as Effective Identities on the embed token so Power BI applies the filter at query time.
Does Embedportal support Power BI paginated reports and dashboards?
Yes. Embedportal embeds Power BI reports, paginated reports, and dashboards — as well as individual tiles when that's more useful. Point at the workspace and resource ID and we handle the rest.
Can we switch from Power BI Embedded to Embedportal without rebuilding reports?
Yes. Embedportal points at your existing Power BI workspace via Tenant ID, Client ID, Client Secret and Workspace ID. No migration, no rebuild. Typical switchover takes about 30 minutes for the Azure AD side and under a day for the frontend.
Is my data sent to Embedportal?
No. Reports render directly from Power BI into the viewer's browser. Embedportal signs the embed token — it does not proxy the data payload.
Ready to embed?
Start on Professional with a 14-day free trial — no credit card, unlimited dashboards and users.