Owner: Ingraphic AS
Last updated: April 18, 2025
- Introduction
- Roles Required
- Preparation Checklist
- Deployment Steps
- Post Deployment Steps
- Troubleshooting
This guide is for technical resources responsible for creating the resources needed to deploy the "Portal for Microsoft Fabric" in Microsoft Azure.
The "Portal for Microsoft Fabric" will create the following resources during deployment:
| Resource | Description |
|---|---|
| Log Analytics Workspace | Collect, analyze and query logs from various Azure services and applications |
| Application Insights | Monitoring service that provides real-time performance metrics and analytics |
| Automation Account | Enables process automation through runbooks for managing Fabric Capacity schedules |
| Runbooks | Workflow scripts in PowerShell that automate Fabric Capacity start up and pause times |
| Storage Account | Storage for data objects including company logos, report images and application settings |
| SQL Server and Database | Relational database that stores user, group, report data and references |
| Logic App | Low code workflow automation for sending invite emails to external users or customers |
| Key Vault | Secure storage for keys, secrets and credentials used by Container Applications |
| Container Apps Environment | Managed hosting environment for containerized applications |
| Container Instance | Serverless container service that initializes the database and workspace |
| Container Apps | Managed serverless platform - main components of the frontend and backend |
| Role | Description |
|---|---|
| Entra Administrator | Create Entra groups and assign users |
| Entra Application Developer | Create Service Principals and add permissions |
| Fabric Administrator | Configure Fabric settings required for the portal |
| Owner role for Subscription | IMPORTANT: Only a user with Owner role at the Subscription level can successfully deploy from Azure Marketplace |
High-level checklist of required steps:
- Entra Primary Domain - Used by the Portal Application
- Entra Groups - Create Users, Admins, Fabric Admins groups
- Entra Application Registrations - Create WEB, SPA and Fabric Service Principals
- Fabric Capacity - Set up capacity for workspaces, reports and dashboards
Ensure you have a valid Microsoft Azure subscription for the Portal for Fabric Deployment. The Managed Application and resources will be deployed to this subscription.
Create a resource group to contain the Managed Application resource. This resource group will only contain the Managed Application. All other resources will be deployed to a separate Managed Resource Group.
Recommended name: rg-manapp-storage
The primary domain name is needed during deployment.
- Go to Azure Portal → Microsoft Entra ID to find the Primary Domain field
Create the following security groups:
| Group Name | Description | Suggested Name |
|---|---|---|
| Portal User Group | Allows access to the Portal as a user with limited permissions | SG_APP_{Company Standard}_Portal_Users |
| Portal Admin Group | Allows access as admin with privileged permissions | SG_APP_{Company Standard}_Portal_Admins |
| Fabric Workspace Admin Group | Access to all workspaces created in the Portal | SG_APP_{Company Standard}_Portal_FabricAdmins |
Steps:
- Go to Azure Portal → Microsoft Entra ID → Groups → Add New Group
- Create the required groups
- Assign users to the groups
Used for basic authentication to the database.
Username requirements:
- May contain lowercase and uppercase letters and numbers
- Must NOT start with numbers or symbols
Password requirements:
- At least 8 characters, maximum 128 characters
- Must contain uppercase and lowercase letters, numbers and symbols
Configure the SQL Server to accept Administrator logins using Entra Authentication.
Required for manual access to the SQL database by Administrator. This step is optional.
Create Entra Application for back-end.
Steps:
- Go to Azure Portal → Microsoft Entra ID → App Registrations → "New Registration"
- Name:
SP_Portal_WEB(or your preferred name) - Create a client secret with 730 days expiration
- Add the following Microsoft Graph Application permissions:
- Application.ReadWrite.All
- Group.Create
- Group.ReadWrite.All
- User.Invite.All
- User.Read
- User.ReadWrite.All
- Grant admin consent
- Add a scope named "access_as_user"
Create Entra Application for front-end.
Steps:
- Go to Azure Portal → Microsoft Entra ID → App Registrations → "New Registration"
- Name:
SP_Portal_SPA - Add the following permissions:
- Microsoft Graph: email, offline_access, openid, profile, User.Read
- SP_Portal_WEB: access_as_user
- Grant admin consent
Create Entra Application for Fabric API Access.
Steps:
- Go to Azure Portal → Microsoft Entra ID → App Registrations → "New Registration"
- Name:
SP_Portal_Fabric - Create a client secret with 730 days expiration
- Add the following PowerBI Delegated permissions:
- Capacity.ReadWrite.All
- Dashboard.ReadWrite.All
- Dataset.ReadWrite.All
- PaginatedReport.ReadWrite.All
- Report.ReadWrite.All
- Workspace.ReadWrite.All
- Grant admin consent
- Add this Service Principal to the SG_APP_Portal_FabricAdmins Entra Group
Get the Object IDs for SP_Portal_WEB and SP_Portal_Fabric:
- Go to Microsoft Entra ID → Enterprise applications
- Search for the service principals and copy their Object IDs
Configure Microsoft Fabric to allow service principals to work with the portal:
- In Fabric, go to Settings → Admin portal → Tenant settings
- Enable the following settings:
- Microsoft Fabric: "Users can create Fabric items"
- Workspace settings: "Create workspaces"
- Developer settings: "Service principals can use Fabric APIs"
If using an existing Fabric Capacity:
- Add SP_Portal_Fabric service principal as Capacity Administrator to your Fabric Capacity
- Provide the Capacity resource name during deployment
Authenticate the Logic App to send email invitations:
- Go to the API connection resource called "office 365"
- Navigate to General → Edit API connection → Authorize
- Authenticate with the email address you want emails to be sent from
- Save the connection
- Check error messages in the deployment
- Verify you have Owner permissions at the Subscription level
- Check the Container Instance named "initialization-container"
- Go to Settings → Containers → Logs
- Review error messages
- Common issues:
- Permissions not correctly set
- Fabric not configured correctly
For assistance, contact: [email protected]