Naar hoofdinhoud
Joinly by KoppelHet

Entra ID en Active Directory

Offboarding in Entra ID: voorkom dat oud-medewerkers toegang houden

Een medewerker is uit dienst en het account staat op geblokkeerd. Klaar? Niet helemaal. Bestaande sessies, rechten op gedeelde mailboxen en toegang tot andere applicaties vragen ook aandacht. Met deze checklist maak je offboarding in Microsoft Entra ID compleet en voorkom je dat belangrijke stappen worden vergeten.

Een account blokkeren is de eerste stap, niet de laatste

Je hebt het account van een vertrokken collega uitgezet. Daarmee voorkom je nieuwe aanmeldingen, maar bestaande sessies en rechten verdienen nog aandacht.

In het Microsoft Entra-beheercentrum zet je bij een vertrekkende medewerker Account enabled uit, of in het Microsoft 365-beheercentrum Aanmelden blokkeren. Vanaf dat moment krijgt hij geen nieuwe tokens meer. Dat is het belangrijkste, maar het is niet alles, want wie al was aangemeld, heeft tokens die nog een tijd geldig zijn. Dit artikel is de Entra-technische kant van vertrek. Het bredere proces, met HR en de manager, staat op offboarding en in automatische deprovisioning.

Een app die met Entra ID werkt, krijgt een access token voor de toegang en een refresh token om later een nieuw access token te halen. Een access token is standaard een uur geldig. Is het account uitgeschakeld, dan lukt het verversen niet meer, maar het access token dat de app al heeft, werkt tot het afloopt. Apps in de browser werken vaak met een eigen sessiecookie. Die app bepaalt zelf wanneer de gebruiker terug moet naar Entra ID, en Entra ID kan die sessie niet voor de app intrekken.

Wat er na het uitschakelen nog werkt
Soort toegangNa alleen uitschakelenNa uitschakelen en sessies intrekken
Nieuwe aanmeldingGeblokkeerdGeblokkeerd
Access token dat de app al heeftWerkt tot het verloopt, standaard een uurWerkt tot het verloopt, behalve bij apps die CAE ondersteunen
Refresh tokenVerversen lukt niet meerOngeldig gemaakt
Sessiecookie van Entra ID in de browserGeldig tot de volgende controleOngeldig gemaakt
Eigen sessie van een appTot de app de gebruiker terugstuurt naar Entra IDIdem; de app moet zelf afsluiten of het account moet in de app weg

Ook bestaande aanmeldingen beëindigen

Denk aan Outlook op een telefoon die nog is ingelogd. Met sessies intrekken maak je een belangrijke extra stap om toegang af te sluiten.

Revoke sessions maakt alle refresh tokens van de gebruiker ongeldig, en ook de sessiecookies in zijn browser. Technisch zet het de eigenschap signInSessionsValidFromDateTime op nu: alles wat daarvoor is uitgegeven, telt niet meer. Elke app die een nieuw token wil, moet de gebruiker opnieuw laten aanmelden, en met een uitgeschakeld account lukt dat niet.

  • In het beheercentrum: Entra ID, Users, kies de gebruiker en klik op de overzichtspagina op Revoke sessions.
  • In PowerShell: Revoke-MgUserSignInSession -UserId <id of UPN> uit de module Microsoft.Graph.Users.Actions.
  • Via Microsoft Graph: POST /users/{id}/revokeSignInSessions, met de permissie User.RevokeSessions.All.

Microsoft meldt dat het intrekken een paar minuten kan duren. Twee dingen doet het niet: access tokens die al zijn uitgegeven blijven geldig tot ze verlopen, behalve bij apps die Continuous Access Evaluation ondersteunen (zie hieronder). En voor gastgebruikers werkt het niet, omdat die zich aanmelden bij hun eigen organisatie.

Wanneer stopt toegang sneller dan het token verloopt?

Sommige Microsoft-diensten reageren sneller op een geblokkeerd account dan andere applicaties. Dat verschil is belangrijk als je zeker wilt weten wanneer toegang eindigt.

Met Continuous Access Evaluation (CAE) praat Entra ID direct met de dienst die het token ontvangt. Bij een aantal kritieke gebeurtenissen laat Entra ID de dienst weten dat de tokens van deze gebruiker niet meer gelden, ook als ze nog niet verlopen zijn. De client krijgt dan een claim challenge en moet opnieuw aanmelden. Microsoft noemt deze gebeurtenissen:

  • het account is verwijderd of uitgeschakeld;
  • het wachtwoord is gewijzigd of gereset;
  • MFA is voor de gebruiker aangezet;
  • een beheerder heeft alle refresh tokens ingetrokken (revoke sessions);
  • Entra ID Protection ziet een hoog gebruikersrisico.

Dit werkt voor Exchange Online, SharePoint Online en Teams, met clients die het ondersteunen, zoals de actuele versies van Outlook, Teams en OneDrive. Het staat los van Conditional Access en werkt dus in elke tenant. Microsoft streeft naar bijna direct, maar noemt een vertraging tot 15 minuten.

Welke toegang kan daarna nog overblijven?

Een account is meer dan een gebruikersnaam en wachtwoord. Denk ook aan gedeelde mailboxen, apparaten en toegang in andere systemen.

Zijn de tokens weg, dan is de directe toegang dicht. Maar een account bestaat uit meer dan aanmelden. Dit blijft staan tot iemand het opruimt:

WatWaarom het ertoe doet
MFA-methodenDe Authenticator op de privételefoon, een passkey of een telefoonnummer blijven aan het account hangen. Wordt het account later weer aangezet, voor een herintreder of per ongeluk, dan werkt die oude telefoon gewoon weer.
Doorsturen en inboxregelsEen regel die mail naar een privéadres doorstuurt, draait op de server. Zolang de mailbox bestaat, blijft hij werken, ook met een uitgeschakeld account.
Eigenaarschap van groepen, Teams en app-registratiesWas de vertrekker de enige eigenaar, dan kan niemand in dat team nog leden toevoegen of instellingen wijzigen, tot een beheerder ingrijpt.
ApparatenGeregistreerde apparaten blijven ingeschakeld in Entra ID, en de lokale bestanden op een laptop blijven staan. Een wipe via Intune werkt alleen als het apparaat online komt.
Toestemming voor appsApps waaraan de gebruiker zelf toestemming gaf, houden die toestemming. Met ingetrokken sessies krijgen ze geen nieuw token, maar de toestemming blijft in je tenant staan.
Accounts in andere applicatiesEen app met een eigen gebruikersbeheer weet niets van je uitgeschakelde Entra-account. Daar moet het account apart weg, of via provisioning.
Gedeelde accounts en wachtwoordenDe inlog van de receptie, een beheeraccount, een wachtwoordkluis: wat de vertrekker kende, wijzig je, ook als zijn eigen account dicht is.
Externen en inhuurDie staan vaak niet in HR, dus niemand krijgt een seintje als de opdracht afloopt. Zie gastaccounts opruimen.

De offboarding-checklist: dit doe je in welke volgorde

Met een vaste volgorde voorkom je dat toegang openblijft of belangrijke gegevens te vroeg verdwijnen.

De volgorde doet ertoe: eerst de deur dicht, dan de tokens weg, dan opruimen. Werk je hybride, met accounts uit Active Directory, begin dan in AD. Een gesynchroniseerd account zet je in AD uit; de status komt bij de volgende sync in Entra ID aan, en met de stappen in Entra ID hoef je daar niet op te wachten. Bij een gewoon vertrek doe je alles op de laatste werkdag; bij een vertrek met ruzie of een vermoeden van misbruik doe je stap 1 tot en met 4 meteen.

  1. Hybride: in Active Directory. Schakel het account uit met Disable-ADAccount en reset het wachtwoord. Microsoft raadt aan het twee keer te resetten, tegen pass-the-hash; kun je ervan uitgaan dat het account niet is overgenomen, dan is één keer genoeg.
  2. Aanmelden blokkeren in Entra ID (AccountEnabled op false).
  3. Sessies intrekken met Revoke-MgUserSignInSession.
  4. Apparaten uitschakelen die op de gebruiker staan, en waar nodig een wipe via Intune. Is het een eigen telefoon, wis dan alleen de bedrijfsgegevens uit de beheerde apps.
  5. MFA-methoden verwijderen, zodat een later heropend account opnieuw moet registreren.
  6. De mailbox: doorsturen en inboxregels met doorsturen weghalen, een automatisch antwoord met de nieuwe contactpersoon, en de mailbox omzetten naar een gedeelde mailbox of rechten geven aan de opvolger. Hoe dat werkt, staat in rechten op een gedeelde mailbox.
  7. Eigenaarschap overdragen van groepen, Teams en app-registraties waar de vertrekker eigenaar van was, en het account uit groepen en applicatietoewijzingen halen.
  8. Toestemmingen voor apps intrekken die de gebruiker zelf heeft gegeven.
  9. Licenties vrijgeven. Mail, contacten en agenda blijven daarna 30 dagen bewaard. Zie licentie intrekken bij uitdienst.
  10. Na de bewaartermijn verwijderen. Een verwijderd account staat 30 dagen bij de verwijderde gebruikers en is in die tijd terug te zetten. Een gesynchroniseerd account verwijder je in AD.
Stap 1 tot en met 4: account dicht, tokens weg, apparaten uit
# Hybride: eerst in Active Directory
Disable-ADAccount -Identity "jan.jansen"
Set-ADAccountPassword -Identity "jan.jansen" -Reset -NewPassword (Read-Host -AsSecureString "Nieuw wachtwoord 1")
Set-ADAccountPassword -Identity "jan.jansen" -Reset -NewPassword (Read-Host -AsSecureString "Nieuw wachtwoord 2")

# Entra ID
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.AccessAsUser.All"
$user = Get-MgUser -UserId "jan.jansen@bedrijf.nl"

Update-MgUser -UserId $user.Id -AccountEnabled:$false
Revoke-MgUserSignInSession -UserId $user.Id

Get-MgUserRegisteredDevice -UserId $user.Id -All | ForEach-Object {
  Update-MgDevice -DeviceId $_.Id -AccountEnabled:$false
}
Stap 5: MFA-methoden verwijderen
Connect-MgGraph -Scopes "UserAuthenticationMethod.ReadWrite.All"

Get-MgUserAuthenticationMicrosoftAuthenticatorMethod -UserId $user.Id | ForEach-Object {
  Remove-MgUserAuthenticationMicrosoftAuthenticatorMethod -UserId $user.Id -MicrosoftAuthenticatorAuthenticationMethodId $_.Id
}
Get-MgUserAuthenticationFido2Method -UserId $user.Id | ForEach-Object {
  Remove-MgUserAuthenticationFido2Method -UserId $user.Id -Fido2AuthenticationMethodId $_.Id
}
Get-MgUserAuthenticationSoftwareOathMethod -UserId $user.Id | ForEach-Object {
  Remove-MgUserAuthenticationSoftwareOathMethod -UserId $user.Id -SoftwareOathAuthenticationMethodId $_.Id
}
Get-MgUserAuthenticationPhoneMethod -UserId $user.Id | ForEach-Object {
  Remove-MgUserAuthenticationPhoneMethod -UserId $user.Id -PhoneAuthenticationMethodId $_.Id
}
Stap 6: doorsturen en inboxregels, automatisch antwoord, omzetten (Exchange Online PowerShell)
Connect-ExchangeOnline
$mb = "jan.jansen@bedrijf.nl"

Set-Mailbox -Identity $mb -ForwardingSmtpAddress $null -ForwardingAddress $null -DeliverToMailboxAndForward $false

Get-InboxRule -Mailbox $mb -IncludeHidden |
  Where-Object { $_.ForwardTo -or $_.ForwardAsAttachmentTo -or $_.RedirectTo } |
  ForEach-Object { Remove-InboxRule -Mailbox $mb -Identity $_.Identity -Confirm:$false }

Set-MailboxAutoReplyConfiguration -Identity $mb -AutoReplyState Enabled `
  -InternalMessage "Jan werkt hier niet meer. Neem contact op met Petra de Vries." `
  -ExternalMessage "Jan werkt hier niet meer. Neem contact op met Petra de Vries."

Set-Mailbox -Identity $mb -Type Shared
Stap 7 en 8: eigenaarschap en toestemmingen voor apps
# Groepen en Teams waar de vertrekker eigenaar van is
Get-MgUserOwnedObject -UserId $user.Id -All |
  Where-Object { $_.AdditionalProperties["@odata.type"] -eq "#microsoft.graph.group" } |
  ForEach-Object { $_.AdditionalProperties["displayName"] }

# Een nieuwe eigenaar toevoegen
$opvolger = Get-MgUser -UserId "petra.devries@bedrijf.nl"
New-MgGroupOwnerByRef -GroupId "<groep-id>" -BodyParameter @{
  "@odata.id" = "https://graph.microsoft.com/v1.0/users/$($opvolger.Id)"
}

# Toestemmingen die de gebruiker zelf aan apps gaf
Get-MgUserOauth2PermissionGrant -UserId $user.Id -All | ForEach-Object {
  Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

Waarom de vertrekdatum uit HR het verschil maakt

Als IT pas achteraf hoort dat iemand is vertrokken, begint de beveiligingsachterstand al vóór de eerste handeling.

De commando's zijn niet het lastige deel. Het lastige deel is dat ze op de juiste dag moeten draaien, voor iedereen die vertrekt, ook als HR het een dag te laat doorgeeft of als de beheerder die het altijd doet op vakantie is. Een gemiste stap merk je niet: een doorstuurregel die blijft lopen, geeft geen foutmelding.

Microsoft heeft hiervoor Lifecycle Workflows in Microsoft Entra ID Governance. Een leaver-workflow start op de uitdienstdatum (employeeLeaveDateTime) en kent taken als het account uitschakelen, uit groepen en Teams halen, licenties weghalen, alle refresh tokens intrekken en de gebruiker na een aantal dagen verwijderen. Dat vraagt een Governance-licentie, en een uitdienstdatum die betrouwbaar in Entra ID staat. Wie die vult, en of hij klopt, is de vraag die overblijft. Mailboxregels en accounts buiten Microsoft blijven daarnaast een eigen stap.

Joinly

Zorg dat een vertrek niet afhankelijk is van een losse e-mail aan IT

Een account uitschakelen is snel gedaan. Lastiger is weten dát iemand vertrekt, en alle stappen op tijd uitvoeren. HR weet de einddatum meestal al eerder.

Joinly kan die datum gebruiken om een offboardingworkflow te starten. Denk aan het uitschakelen van accounts, intrekken van sessies, aanpassen van groepen en licenties en taken voor de servicedesk. Wat eerst een checklist voor een beheerder was, wordt zo een herhaalbaar proces met inzicht in de uitgevoerde stappen. Bij spoed blokkeer je direct met de noodblokkering.

Een workflow in Joinly met triggers, condities en actiesOntdek automatische offboarding met 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.

Offboarding in Entra ID

Veelgestelde vragen

  • Is een uitgeschakeld account in Microsoft 365 direct overal uitgelogd?

    Nee. Het krijgt geen nieuwe tokens meer, maar tokens die al zijn uitgegeven blijven geldig tot ze verlopen, standaard een uur. Bij Exchange Online, SharePoint Online en Teams trekt Continuous Access Evaluation ze eerder in, met een vertraging tot 15 minuten. Apps met een eigen sessie merken het pas als ze de gebruiker terugsturen naar Entra ID.

  • Wat doet Revoke-MgUserSignInSession precies?

    Het maakt alle refresh tokens en browsersessies van de gebruiker ongeldig, door `signInSessionsValidFromDateTime` op nu te zetten. Elke app moet de gebruiker daarna opnieuw laten aanmelden. Access tokens die al zijn uitgegeven, blijven geldig tot ze verlopen, behalve bij diensten die CAE ondersteunen.

  • Moet ik eerst uitschakelen of eerst de sessies intrekken?

    Eerst uitschakelen, dan intrekken. Trek je eerst de sessies in, dan kan de gebruiker zich direct weer aanmelden zolang het account nog aanstaat.

  • Blijven doorstuurregels werken als het account is uitgeschakeld?

    Ja. Doorsturen en inboxregels draaien op de server zolang de mailbox bestaat. Haal ze weg met `Set-Mailbox` en `Remove-InboxRule` voordat je de mailbox omzet of aan een opvolger geeft.

  • Moet ik het account verwijderen of alleen uitschakelen?

    Eerst uitschakelen. Verwijderen doe je na de bewaartermijn die je hebt afgesproken, als de mailbox en de bestanden geregeld zijn. Een verwijderd account kun je daarna nog 30 dagen terugzetten; een gesynchroniseerd account verwijder je in Active Directory.

  • Hoe zorg ik dat offboarding ook gebeurt als HR het te laat doorgeeft?

    Laat het starten op de uitdienstdatum in plaats van op een melding. Met Lifecycle Workflows in Entra ID Governance kan dat op `employeeLeaveDateTime`. In Joinly start de einddatum uit het HR-systeem de workflow, en bij spoed is er een noodblokkering die niet op de datum wacht.

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