How to Assign a Microsoft 365 License to a User

TL;DR: In the Microsoft 365 admin center, go to Users > Active users, pick the user, open Licenses and Apps, check the licenses you want to assign, and Save changes. For more than a handful of users at a time, use group-based licensing instead.

License assignment is the bridge between a user account existing and that user actually being able to use Microsoft 365 services. There are three places you can do it from — the user’s profile, the Licenses page, and a Microsoft Entra security group with group-based licensing — and each is right for a different scale.

What this does

Assigning a license attaches a service plan to a user from one of your tenant’s purchased subscriptions. That service plan is what entitles the user to the underlying services — Exchange Online mailbox, OneDrive, Microsoft Teams, Microsoft Intune, and so on. Without a license, an account exists but can’t access any productivity services beyond a sign-in.

License assignment also requires the user to have a usage location set (a country code). Microsoft uses that to determine which services and features are legally available to the user. The Add a user wizard sets it automatically; for accounts created via API, you may need to set it explicitly.

When you’d want this

  • Onboarding a new user who needs Microsoft 365 services
  • Upgrading or downgrading a user (e.g., E3 → E5, or vice versa)
  • Reassigning a license freed up by a departed employee
  • Switching service plans within a license (turning Sway off, for example)

Steps

Option A: Assign to a single user from Active users

This is the fastest path for one user.

  1. Sign in to the Microsoft 365 admin center at https://admin.microsoft.com as a License Administrator or User Administrator.
  2. Go to Users > Active users.
  3. Select the user’s row.
  4. In the right pane, select Licenses and Apps.
  5. Confirm the usage location is set (required for licensing).
  6. Expand Licenses and check the boxes for the licenses you want to assign.
  7. (Optional) Expand Apps to disable specific service plans within the license — for example, turning off Yammer while leaving the rest of the license intact.
  8. Select Save changes.

Option B: Assign to multiple users from Active users

For up to a few dozen users at once.

  1. From Users > Active users, select the circles next to multiple user names.
  2. At the top of the page, select Manage product licenses.
  3. Choose Assign more: Keep the existing licenses and assign more > Next.
  4. Check the licenses you want each selected user to receive.
  5. Select Save changes.

Option C: Assign from the Licenses page

License-centric view — useful when you’re working on one product and want to add multiple users to it.

  1. Go to Billing > Licenses.
  2. Select the product you want to assign.
  3. Select Assign licenses.
  4. Begin typing user or group names; pick from suggestions (up to 20 per batch).
  5. Optionally, Turn apps and services on or off to scope which service plans get assigned.
  6. Select Assign, then close the panel.

For more than a handful of users — and especially if you want the assignment to follow group membership automatically — use group-based licensing in Microsoft Entra ID.

  1. From Billing > Licenses, select the product.
  2. On the License details page, choose the Groups tab.
  3. Select + Assign licenses.
  4. Search for and select the security group (or Microsoft 365 group) you want to assign the license to.
  5. Select Assign.

Microsoft Entra ID then processes every member of the group and assigns the license. New members get the license automatically when they’re added; removed members lose it when they leave. Be sure your group has enough licenses available — assignment stalls quietly if you run out.

PowerShell equivalent

Microsoft Graph PowerShell is the supported path. The legacy MSOnline and AzureAD modules are retired.

Connect-MgGraph -Scopes "User.ReadWrite.All", "Organization.Read.All"

# Find the SKU you want to assign
$sku = Get-MgSubscribedSku -All |
  Where-Object SkuPartNumber -eq "ENTERPRISEPACK"  # E3

# Assign the license — UsageLocation must be set first
Update-MgUser -UserId "jakob@contoso.com" -UsageLocation "US"

Set-MgUserLicense `
  -UserId         "jakob@contoso.com" `
  -AddLicenses    @(@{ SkuId = $sku.SkuId }) `
  -RemoveLicenses @()

To swap one license for another in a single call, populate both AddLicenses and RemoveLicenses. To disable specific service plans within an assigned license, add a DisabledPlans array to the AddLicenses hashtable.

To bulk-assign by reading a CSV:

Import-Csv .\users.csv | ForEach-Object {
  Set-MgUserLicense `
    -UserId        $_.UserPrincipalName `
    -AddLicenses   @(@{ SkuId = $sku.SkuId }) `
    -RemoveLicenses @()
}

Notes and gotchas

  • Usage location is required. License assignment fails silently if the user doesn’t have one. The admin center’s Licenses and Apps flyout reminds you; the API doesn’t.
  • Group-based licensing has dependencies. If a service plan within a license depends on another (say, Microsoft Teams depends on Exchange Online), they must be assigned together in the same group, or the dependent plan is disabled.
  • Watch the available count. Both UI and API will create the user without licensing if the pool is empty — so always confirm assignment after a buy/onboard cycle. The admin center’s Errors & Issues tab on the Licenses page lists every user that didn’t receive what was intended.
  • Direct assignments override group assignments only additively. If a user is in a group that grants License A and you assign License B directly, they get both. To remove a group-based license, remove the user from the group.
  • Cloud Solution Provider (CSP) caveat: if you bought the product through a CSP partner, some products can only be assigned via the Licenses page, not from the user’s profile.
  • Permissions: minimum role is License Administrator. Use that — not Global Administrator — for license work.