Naar hoofdinhoud
Joinly by KoppelHet

Entra ID en Active Directory

Microsoft 365-licenties toewijzen zonder onnodig handwerk

Een nieuwe collega begint, maar kan nog niet bij Outlook of Teams. Of iemand wisselt van functie en houdt onnodig een dure licentie. Licenties toewijzen lijkt een kleine beheertaak, maar bij veel medewerkers wordt het al snel onoverzichtelijk. Dit zijn de mogelijkheden in Microsoft 365, inclusief de technische stappen.

Drie manieren om Microsoft 365-licenties te regelen

Een nieuwe collega moet direct kunnen werken. Je wilt een licentie snel kunnen geven, en voorkomen dat die maanden na een functiewijziging nog verkeerd staat.

Een gebruiker kan geen enkele Microsoft 365-dienst gebruiken zolang hij geen licentie heeft. Het toewijzen van die licentie (in het Engels: assign licenses) kan op drie manieren, en in de meeste tenants lopen ze door elkaar. Dat is precies waar het later misgaat: niemand weet meer waarom iemand een licentie heeft, dus niemand durft hem weg te halen.

Direct, via een groep of automatisch
DirectVia een groepAutomatisch (auto-claim)
Hoe het werktEen beheerder of script wijst de licentie per gebruiker toeDe licentie hangt aan een groep, elk direct lid krijgt hemDe gebruiker claimt de licentie zelf bij de eerste aanmelding in de app
WaarvoorAlle licentiesAlle licentiesAlleen producten die het ondersteunen, per product
Extra licentie-eisGeenEntra ID P1 of hogerGeen
IntrekkenHandmatigGaat mee met het lidmaatschapHandmatig; de policy uitzetten laat geclaimde licenties staan
Grootste valkuilVergeten intrekkenWie er in de groep zitLicenties voor mensen die de app één keer openden

Groepsgebaseerde licenties hebben hun eigen spelregels en foutmeldingen. Die staan in groepsgebaseerde licenties in Entra ID; hieronder gaat het vooral over de directe toewijzing, omdat die altijd werkt en omdat elk script en elke koppeling er uiteindelijk op uitkomt.

Waarom Microsoft over SKU’s en serviceplannen praat

In het beheercentrum zie je herkenbare productnamen. In scripts kom je technische codes tegen. Die horen bij dezelfde licenties.

Wat in het beheercentrum "Microsoft 365 E3" heet, is in PowerShell en Graph een SKU: een product met een technische naam (SkuPartNumber) en een GUID (SkuId). Elke SKU bestaat uit service plans: Exchange Online, SharePoint, Teams, Sway, Viva Engage en zo verder. Je wijst altijd een SKU toe, en per toewijzing kun je losse service plans uitzetten met disabledPlans. De SKU blijft dan hetzelfde en telt nog steeds als één licentie.

Veelgebruikte SKU's en hun technische naam
Product in het beheercentrumSkuPartNumber
Microsoft 365 E3SPE_E3
Microsoft 365 E5SPE_E5
Microsoft 365 F3SPE_F1
Microsoft 365 Business PremiumSPB
Microsoft 365 Business BasicO365_BUSINESS_ESSENTIALS
Office 365 E3ENTERPRISEPACK

Let op dat de technische naam niet altijd lijkt op de productnaam: Microsoft 365 F3 heet SPE_F1. Microsoft publiceert de volledige lijst, met elk service plan erbij, als CSV op de pagina "Product names and service plan identifiers for licensing". Wat je tenant zelf heeft, en hoeveel ervan in gebruik is, vraag je op met Get-MgSubscribedSku.

Welke SKU's je hebt en hoeveel er zijn toegewezen
Connect-MgGraph -Scopes "Organization.Read.All"

Get-MgSubscribedSku -All |
  Select-Object SkuPartNumber, SkuId, ConsumedUnits,
    @{ n = "Gekocht"; e = { $_.PrepaidUnits.Enabled } }

Geen licentie? Controleer eerst het land van de gebruiker

Een ontbrekende landcode lijkt een detail, maar kan een licentietoewijzing blokkeren.

Een licentie toewijzen aan een gebruiker zonder gebruikslocatie (usage location) lukt niet. Microsoft wil weten in welk land iemand de diensten gebruikt, omdat niet elke dienst in elk land beschikbaar is. De waarde is een landcode van twee letters volgens ISO 3166-1 alpha-2: NL, BE, DE.

Maak je een gebruiker aan in het Microsoft 365-beheercentrum, dan vraagt het formulier om de locatie. Accounts die uit Active Directory op locatie worden gesynchroniseerd, hebben standaard geen locatie. Bij een hybride omgeving is dit dus de eerste plek om te kijken als een licentie niet aankomt. Bij groepsgebaseerde licenties valt het minder op: daar krijgt een gebruiker zonder locatie het land van de tenant. Voor een medewerker in Duitsland in een Nederlandse tenant klopt dat niet. Hoe usage location zich verhoudt tot de andere velden op het gebruikersobject, lees je in Entra ID-gebruikersattributen.

Leden zonder usage location vinden en de locatie zetten
Connect-MgGraph -Scopes "User.ReadWrite.All"

Get-MgUser -All -Property Id, DisplayName, UserPrincipalName, UsageLocation, UserType |
  Where-Object { -not $_.UsageLocation -and $_.UserType -eq "Member" } |
  Select-Object DisplayName, UserPrincipalName

Update-MgUser -UserId "jan.jansen@bedrijf.nl" -UsageLocation "NL"

Toewijzen in het Microsoft 365-beheercentrum

Je hebt minimaal de rol License Administrator of User Administrator nodig. Er zijn twee ingangen, en welke je kiest hangt af van de vraag of je vanuit de persoon of vanuit het product werkt.

  1. Vanuit de gebruiker: ga naar Users > Active users, kies de gebruiker en open Licenses and apps. Vink de licentie aan en klap per licentie de apps open om service plans uit te zetten. Kies Save changes. Voor meer mensen tegelijk selecteer je ze in de lijst en kies je Manage product licenses.
  2. Vanuit het product: ga naar Billing > Licenses, kies het product en dan Assign licenses. Je voegt tot 20 gebruikers of groepen per keer toe. Onder Turn apps and services on or off zet je service plans uit.
  3. Gaat er iets mis, dan zie je het op het tabblad Errors & issues van het product: geen licenties meer over, botsende service plans of een ongeldige usage location. Los de oorzaak op, kies de gebruiker en dan Reprocess.

Sommige diensten, zoals Sway, wijst Microsoft automatisch toe; die hoef je niet los aan te zetten. Wil je ze juist niet, dan zet je het service plan uit.

Toewijzen met PowerShell en Microsoft Graph

Voor meer dan een handvol mensen, of als onderdeel van een onboardingscript, gebruik je Microsoft Graph PowerShell. Microsoft beschrijft licentiebeheer in zijn documentatie alleen nog met deze module. Scripts die nog Set-MsolUserLicense of Set-AzureADUserLicense gebruiken, zet je om naar Set-MgUserLicense.

Microsoft 365 E3 toewijzen zonder Sway en Viva Engage (Yammer Enterprise)
Connect-MgGraph -Scopes "User.ReadWrite.All","Organization.Read.All"

$sku = Get-MgSubscribedSku -All | Where-Object SkuPartNumber -eq "SPE_E3"
$uit = $sku.ServicePlans |
  Where-Object ServicePlanName -in "SWAY","YAMMER_ENTERPRISE" |
  Select-Object -ExpandProperty ServicePlanId

Set-MgUserLicense -UserId "jan.jansen@bedrijf.nl" -AddLicenses @(@{ SkuId = $sku.SkuId; DisabledPlans = $uit }) -RemoveLicenses @()

-RemoveLicenses is verplicht, ook als je niets weghaalt; geef dan een lege lijst mee. Hetzelfde verzoek in Microsoft Graph, voor een koppeling of een Logic App, ziet er zo uit. De app heeft minimaal de permissie LicenseAssignment.ReadWrite.All nodig.

assignLicense in Microsoft Graph
POST https://graph.microsoft.com/v1.0/users/jan.jansen@bedrijf.nl/assignLicense
Content-Type: application/json

{
  "addLicenses": [
    {
      "skuId": "05e9a617-0261-4cee-bb44-138d3ef5d965",
      "disabledPlans": []
    }
  ],
  "removeLicenses": []
}

Van E3 naar E5 overstappen is een RemoveLicenses van de ene SKU en een AddLicenses van de andere. Controleer daarna met Get-MgUserLicenseDetail wat de gebruiker echt heeft.

Waarom heeft deze medewerker eigenlijk deze licentie?

Wie wil opschonen of automatiseren, moet eerst weten waar een licentie vandaan komt.

Voordat je een licentie weghaalt, wil je weten waar hij vandaan komt. Haal je een directe toewijzing weg terwijl dezelfde licentie ook via een groep binnenkomt, dan verandert er niets. Een licentie die via een groep binnenkomt, verdwijnt pas als de gebruiker uit die groep gaat of als de licentie van de groep af gaat. In het beheercentrum zie je op Billing > Licenses bij een groepstoewijzing de groepsnaam staan in plaats van de losse gebruikers. Per gebruiker staat het in licenseAssignmentStates: is assignedByGroup leeg, dan is de licentie direct toegewezen; anders staat er de ID van de groep.

Per licentie van een gebruiker: direct of via welke groep
$u = Get-MgUser -UserId "jan.jansen@bedrijf.nl" -Property LicenseAssignmentStates
$skus = Get-MgSubscribedSku -All

$u.LicenseAssignmentStates | ForEach-Object {
  $id = $_.SkuId
  [pscustomobject]@{
    Licentie = ($skus | Where-Object SkuId -eq $id).SkuPartNumber
    Bron     = if ($_.AssignedByGroup) { (Get-MgGroup -GroupId $_.AssignedByGroup).DisplayName } else { "Direct" }
    Status   = $_.State
  }
}

Waar het toewijzen ophoudt

Alle drie de manieren beantwoorden de vraag hoe een licentie bij iemand komt. Geen van drieën beantwoordt de vraag wie hem hoort te hebben. Bij een directe toewijzing zit dat in het hoofd van de beheerder of in een onboardingformulier, bij een groep in het lidmaatschap en bij auto-claim bij de gebruiker zelf. Wisselt iemand van kantoor naar de werkvloer, dan moet iemand eraan denken om E3 te vervangen door F3. Vertrekt hij, dan moet iemand de licentie vrijgeven, liefst in de goede volgorde: zie licenties bij uitdiensttreding.

Beheer je dit voor meerdere klanten als MSP, dan speelt hetzelfde per tenant. Daarover gaat Microsoft 365-licenties voor MSP's.

Joinly

Laat licenties aansluiten op het werk dat iemand doet

Een licentie toewijzen is snel gebeurd. Lastiger is dat die licentie ook na een functiewijziging of vertrek nog klopt. Joinly koppelt licenties aan rollen die zijn gebaseerd op HR-gegevens, zoals functie, afdeling of locatie.

Begint iemand op kantoor, dan kan de bijbehorende Microsoft 365-licentie automatisch worden toegewezen. Verhuist die medewerker naar een andere rol, dan verandert de toewijzing mee. Joinly kan dat rechtstreeks in Entra ID regelen of via bestaande licentiegroepen. Je houdt inzicht in de uitgevoerde wijzigingen.

Voorwaardelijke rollen in Joinly die de functie van een medewerker volgenBekijk rollen en rechten in Joinly

Waar je op kunt rekenen

  • Geen vendor lock-inJe identiteiten en je inrichting blijven van jou.
  • Je data eruit wanneer je wiltJe kunt je gegevens op elk moment exporteren.
  • Standaard SLAOnze standaard SLA is opvraagbaar.
  • Begeleiding bij de implementatieOnze specialisten richten het samen met je in.
  • ISO 27001-gecertificeerdInformatiebeveiliging volgens een internationaal erkende norm.

Microsoft 365-licenties toewijzen

Veelgestelde vragen

  • Waarom kan ik geen licentie toewijzen aan een gebruiker?

    Meestal ontbreekt de usage location. Zet die met `Update-MgUser -UsageLocation NL` of in het profiel van de gebruiker. Andere oorzaken zijn dat er geen licenties meer vrij zijn in het abonnement, of dat een service plan botst met een licentie die de gebruiker al heeft.

  • Wat is het verschil tussen een SKU en een service plan?

    Een SKU is het product dat je koopt en toewijst, bijvoorbeeld Microsoft 365 E3 (`SPE_E3`). Een service plan is een onderdeel daarvan, zoals Exchange Online of Sway. Je kunt per toewijzing service plans uitzetten; de SKU telt dan nog steeds als één licentie.

  • Welk PowerShell-commando gebruik ik om een licentie toe te wijzen?

    `Set-MgUserLicense` uit de Microsoft Graph PowerShell SDK, met `-AddLicenses` en `-RemoveLicenses`. Gebruikt een oud script nog `Set-MsolUserLicense` uit de MSOnline-module, zet het dan om: Microsoft documenteert licentiebeheer alleen nog met Microsoft Graph.

  • Kan ik zien of een licentie direct of via een groep is toegewezen?

    Ja. In `licenseAssignmentStates` van de gebruiker is `assignedByGroup` leeg bij een directe toewijzing en gevuld met de groeps-ID bij een licentie via een groep. Op Billing > Licenses in het beheercentrum zie je bij een groepstoewijzing de groepsnaam.

  • Welke beheerdersrol heb ik nodig om licenties toe te wijzen?

    Minimaal License Administrator of User Administrator. Voor een koppeling via Microsoft Graph is `LicenseAssignment.ReadWrite.All` de permissie met de minste rechten.

Probeer Joinly bovenop je eigen Microsoft-omgeving

Rollen, workflows, externen en een auditlog voor Entra ID en Active Directory. Begin met demodata in de gratis proefomgeving.

Geen creditcard, geen installatie.

Liever eerst een gesprek? Praat met een IAM-specialist