๐ณ Recipe ยท Licensing & Cost Optimization
Assign Power BI License to a User in M365
Grant a user access to Microsoft Power BI by assigning the appropriate license via the admin center, Graph API, or PowerShell.
Complexity
Beginner
Impact
licensing + user-onboarding + power-bi + cost-management
Context
Why This Matters
Microsoft Power BI requires a license assignment before a user can sign in and use the service. Common SKUs include Power BI (free), Power BI Pro, and Power BI Premium Per User (PPU). When a user requests access, IT admins must confirm an available license is in the tenant, verify the user's usage location is set (required for license assignment), and assign the SKU.
Run this recipe when:
- A user submits a ticket requesting Power BI access.
- Onboarding a new analyst, BI developer, or report consumer.
- Migrating a user from Free to Pro for sharing/collaboration capabilities.
Expected Outcomes
- The target user has a Power BI license assigned and can sign in to
app.powerbi.com. - The user's
usageLocationis set (required by Microsoft for licensing compliance). - License assignment is auditable in the Microsoft 365 admin center and Entra audit logs.
Risks & Considerations
- Usage location required: License assignment will fail if the user has no
usageLocationset. Always verify or set it before assigning. - License availability: Confirm the tenant has available units of the Power BI SKU. Attempting to assign from a depleted pool returns an error.
- Cost implications: Power BI Pro and PPU are paid SKUs. Ensure the request is approved per your license governance policy before assigning.
- Group-based licensing: If your tenant assigns Power BI via a security group, adding a direct license can create conflicts. Prefer adding the user to the licensing group instead.
- Data residency: Power BI tenant region is fixed at tenant creation. Assigning a license does not change data residency.
Required Permissions
| Permission | Why It's Needed |
|---|---|
| User.ReadWrite.All | Read user object and update license assignments and usage location. |
| Organization.Read.All | Read subscribed SKUs to identify the Power BI SKU ID and available units. |
| Directory.ReadWrite.All | Alternative broader scope for modifying user license assignments in the directory. |
The fastest way to get this done: just ask Dex. Copy the prompt below and paste it into your Dex conversation.
For IT Admins
Paste into Dex Pro
For End Users
How an employee would ask Dex for help
Assign Power BI License via Microsoft 365 Admin Center
- Sign in to the Microsoft 365 admin center at
https://admin.microsoft.comas a License Admin or User Admin. - Navigate to .
- Search for the requesting user (e.g.,
{user_upn}) and click their display name to open the user pane. - Select the Licenses and apps tab.
- If prompted, set the user's Location (required for license assignment).
- In the license list, check the box for one of:
- Power BI (free)
- Power BI Pro
- Power BI Premium Per User
- (Optional) Expand the selected license and confirm the Power BI service plan is enabled.
- Click Save changes.
- Verify by returning to the user profile โ the assigned license should appear under Licenses. Ask the user to sign in at
https://app.powerbi.comto confirm access.
Assign Power BI License via Microsoft Graph
1. Find the Power BI SKU ID
GET https://graph.microsoft.com/v1.0/subscribedSkusLook for SKUs with skuPartNumber values such as POWER_BI_STANDARD (free), POWER_BI_PRO, or PBI_PREMIUM_PER_USER. Record the skuId (a GUID).
2. Ensure the user has a usageLocation
PATCH https://graph.microsoft.com/v1.0/users/{user_upn}
Content-Type: application/json
{
"usageLocation": "US"
}3. Assign the license
POST https://graph.microsoft.com/v1.0/users/{user_upn}/assignLicense
Content-Type: application/json
{
"addLicenses": [
{
"disabledPlans": [],
"skuId": "{powerbi_sku_id}"
}
],
"removeLicenses": []
}4. Verify
GET https://graph.microsoft.com/v1.0/users/{user_upn}/licenseDetailsThe response should include the Power BI SKU with its service plans enabled.
Assign Power BI License via Microsoft Graph PowerShell
Uses the Microsoft.Graph module. Install once with Install-Module Microsoft.Graph -Scope CurrentUser.
- Connect with the required scopes:
Connect-MgGraph -Scopes "User.ReadWrite.All","Organization.Read.All" - Find the Power BI SKU (example for Pro):
$sku = Get-MgSubscribedSku | Where-Object SkuPartNumber -eq 'POWER_BI_PRO' - Set usageLocation if not already set:
Update-MgUser -UserId '{user_upn}' -UsageLocation 'US' - Assign the license:
Set-MgUserLicense -UserId '{user_upn}' ` -AddLicenses @(@{ SkuId = $sku.SkuId }) ` -RemoveLicenses @() - Verify:
Get-MgUserLicenseDetail -UserId '{user_upn}'
For Power BI Free use POWER_BI_STANDARD; for Premium Per User use PBI_PREMIUM_PER_USER.
Next steps