Hoe maak je dynamische groepen op basis van HR attributen?

Marcel van Beek

8 min read

Een dynamische groep in Entra ID vult zichzelf op basis van een regel over gebruikersattributen, bijvoorbeeld iedereen met department Finance of jobTitle Teamleider. Je maakt hem aan via Entra ID → Groups → New group, kiest membership type Dynamic User en bouwt de regel in de rule builder. De groep werkt alleen zo goed als de HR attributen waarop hij draait: staan afdeling en functie niet betrouwbaar in Entra, dan doet de mooiste regel niets.

Dat laatste is in de praktijk het echte werk. De regel bouwen kost vijf minuten; zorgen dat department, jobTitle en employeeType voor élke medewerker gevuld en actueel zijn, is een doorlopend proces. Dit artikel behandelt beide kanten.

Quick facts

Feit

Waarde

Benodigde rol

Minimaal Groups Administrator

Waar

entra.microsoft.com → Entra ID → Groups → All groups → New group

Licentie

Entra ID P1 voor elke unieke gebruiker in een dynamische groep

Bruikbare HR attributen

department, jobTitle, companyName, employeeType, officeLocation, city, country, employeeHireDate, extensionAttributes 1 t/m 15

Rule builder

Max 5 expressies; complexere regels via de syntax editor

Verwerkingstijd

Meestal minuten, gegarandeerd binnen 24 uur

Limiet

Max 15.000 dynamische groepen per tenant

Let op

Geen handmatige leden mogelijk; veiligheid hangt af van wie de attributen kan schrijven

De regel is het makkelijke deel

De syntax van een membership rule is steeds hetzelfde patroon: attribuut, operator, waarde.

(user.department -eq "Finance")
(user.department -eq "Finance") and (user.jobTitle -contains "Teamleider")
(user.employeeType -eq "Medewerker") and (user.officeLocation -in ["Amsterdam","Utrecht"])
(user.department -eq "Finance")
(user.department -eq "Finance") and (user.jobTitle -contains "Teamleider")
(user.employeeType -eq "Medewerker") and (user.officeLocation -in ["Amsterdam","Utrecht"])

De operators die je het meest gebruikt: -eq en -ne voor exacte waarden, -contains en -startsWith voor gedeeltelijke matches, -in voor lijstjes en -any voor meerwaardige attributen. Met and, or en not combineer je expressies; de rule builder ondersteunt er vijf, daarna schakel je naar de syntax editor.

Gebruik de knop Validate Rules vóór je opslaat: je selecteert een paar bestaande gebruikers en ziet direct of ze wel of niet matchen, inclusief uitleg waarom. Dat voorkomt de klassieker waarbij een regel op "Financien" niemand vangt omdat HR "财务" of gewoon "Finance" aanlevert.

Welke attributen kies je

Kies attributen die een systeem vult, niet een mens. department en jobTitle komen idealiter uit je HR koppeling of AD synchronisatie. employeeType is waardevol om medewerkers, inhuur en stagiairs te scheiden. De extensionAttributes zijn de vluchtroute voor alles wat nergens anders past, zoals een kostenplaats of teamcode; documenteer dan wél wat er in welk nummer staat, want over een jaar weet niemand meer wat extensionAttribute7 betekent.

Twee attributen verdienen extra aandacht. employeeHireDate maakt regels mogelijk rond indiensttreding, maar de meeste HR koppelingen vullen dit veld niet standaard. En manager is géén bruikbaar attribuut in dynamische regels; wie op hiërarchie wil sturen, loopt hier vast.

De drie manieren waarop dit misgaat

Eén: lege of vervuilde attributen. Een dynamische regel evalueert wat er stáát, niet wat er zou moeten staan. Elke typefout in een afdelingsnaam is een medewerker zonder toegang, of erger, mét verkeerde toegang. Twee: schrijfrechten. De veiligheid van de groep is precies zo sterk als de controle op wie de attributen mag wijzigen. Kan een servicedeskmedewerker of een slecht ingerichte sync het department veld aanpassen, dan kan die persoon in feite toegang uitdelen. Controleer dit expliciet voor attributen die vanuit on-premises AD gesynchroniseerd worden. Drie: geen uitzonderingen. Aan een dynamische groep kun je niemand handmatig toevoegen. De stagiair die tijdelijk met Finance meedraait krijg je er alleen in door de regel te vervuilen of het HR attribuut te misbruiken, en beide keuzes wreken zich later.

Waarom je dit in Joinly wilt regelen

Dynamische groepen verplaatsen het beheerprobleem van groepslidmaatschappen naar datakwaliteit. Dat is winst, maar alleen als iets die datakwaliteit ook echt bewaakt. In de praktijk zie ik omgevingen met tientallen dynamische regels bovenop attributen die niemand onderhoudt: de logica versnippert over losse groepen, er is geen overzicht van welke regel welke toegang geeft, uitzonderingen zijn onmogelijk en elke gebruiker in zo'n groep kost een P1 licentie.

Joinly pakt het bij de bron. De HR koppeling met AFAS, HR2Day, Visma Raet, YouServe of Workday vult de attributen betrouwbaar én beheert de groepslidmaatschappen rechtstreeks vanuit business rules: afdeling plus functie bepaalt de groepen, in Entra ID en on-premises AD tegelijk. Uitzonderingen leg je gewoon vast, met reden en einddatum. En omdat Joinly de lidmaatschappen zelf uitvoert, heb je de dynamische regels en de bijbehorende P1 eis niet eens nodig. Wat overblijft is één centraal model met een audit trail per mutatie.

Wil je weten hoe betrouwbaar jouw HR attributen in Entra nu zijn? De gratis scan op scan.joinly.app laat het binnen tien minuten zien.

Installation guide

Stap 1: Controleer eerst je data

Trek een rapport van de attributen waarop je wilt sturen, vóór je ook maar één regel bouwt:

powershell

Connect-MgGraph -Scopes "User.Read.All"

Get-MgUser -All -Property DisplayName,Department,JobTitle,EmployeeType |
  Group-Object Department | Sort-Object Count -Descending |
  Select-Object Name, Count
Connect-MgGraph -Scopes "User.Read.All"

Get-MgUser -All -Property DisplayName,Department,JobTitle,EmployeeType |
  Group-Object Department | Sort-Object Count -Descending |
  Select-Object Name, Count

Elke variant, typefout en lege waarde die hier opduikt, wordt straks een gat in je groepslidmaatschap. Los dit eerst op in de bron (HR of AD), niet in Entra.

Stap 2: Maak de groep aan

  1. Ga naar entra.microsoft.com, meld je aan als minimaal Groups Administrator.

  2. Entra ID → Groups → All groups → New group.

  3. Group type: Security. Naam volgens je conventie, beschrijving met het doel.

  4. Membership type: Dynamic User.

Stap 3: Bouw en valideer de regel

  1. Klik Add dynamic query.

  2. Bouw de expressie in de rule builder: property department, operator Equals, value Finance. Combineer met jobTitle waar nodig.

  3. Klik Validate Rules, voeg drie tot vijf bestaande gebruikers toe en controleer of de uitkomst klopt, ook voor iemand die er juist níét in hoort.

  4. Save en Create.

Stap 4: Controleer de verwerking

Open na een paar minuten Groups → jouw groep → Members en vergelijk het aantal met je verwachting uit stap 1. Wijkt het af, kijk dan bij Dynamic membership rules naar de processing status. Grote tenants kunnen tot 24 uur nodig hebben.

Stap 5: Koppel de toegang

Hang de groep nu aan de resources: app assignment via Enterprise applications, licenties via group-based licensing, rechten op SharePoint. Vanaf dat moment stuurt HR data de toegang: wijzigt het department van een medewerker, dan volgen lidmaatschap en alles wat eraan hangt vanzelf.

Alternatief: via PowerShell/Graph

powershell

New-MgGroup -DisplayName "ROL-Finance-Medewerker" `
  -MailEnabled:$false -MailNickname "rol-finance-medewerker" `
  -SecurityEnabled:$true `
  -GroupTypes @("DynamicMembership") `
  -MembershipRule '(user.department -eq "Finance")' `
  -MembershipRuleProcessingState "On"
New-MgGroup -DisplayName "ROL-Finance-Medewerker" `
  -MailEnabled:$false -MailNickname "rol-finance-medewerker" `
  -SecurityEnabled:$true `
  -GroupTypes @("DynamicMembership") `
  -MembershipRule '(user.department -eq "Finance")' `
  -MembershipRuleProcessingState "On"

Zo doe je dit in Joinly

In Joinly sla je de tussenstap over. De business rule staat niet in een losse groep maar in het centrale rollenmodel: conditie op de HR brongegevens (afdeling, functie, type dienstverband), gekoppeld aan de groepslidmaatschappen die daarbij horen, in Entra én on-premises AD. Joinly bewaakt bovendien de datakwaliteit uit stap 1 doorlopend, omdat de HR koppeling de bron is in plaats van een handmatig gevuld attribuut. Uitzonderingen met einddatum, elke mutatie in de audit trail, en geen P1 licentie nodig voor het lidmaatschapsbeheer.

Een dynamische groep in Entra ID vult zichzelf op basis van een regel over gebruikersattributen, bijvoorbeeld iedereen met department Finance of jobTitle Teamleider. Je maakt hem aan via Entra ID → Groups → New group, kiest membership type Dynamic User en bouwt de regel in de rule builder. De groep werkt alleen zo goed als de HR attributen waarop hij draait: staan afdeling en functie niet betrouwbaar in Entra, dan doet de mooiste regel niets.

Dat laatste is in de praktijk het echte werk. De regel bouwen kost vijf minuten; zorgen dat department, jobTitle en employeeType voor élke medewerker gevuld en actueel zijn, is een doorlopend proces. Dit artikel behandelt beide kanten.

Quick facts

Feit

Waarde

Benodigde rol

Minimaal Groups Administrator

Waar

entra.microsoft.com → Entra ID → Groups → All groups → New group

Licentie

Entra ID P1 voor elke unieke gebruiker in een dynamische groep

Bruikbare HR attributen

department, jobTitle, companyName, employeeType, officeLocation, city, country, employeeHireDate, extensionAttributes 1 t/m 15

Rule builder

Max 5 expressies; complexere regels via de syntax editor

Verwerkingstijd

Meestal minuten, gegarandeerd binnen 24 uur

Limiet

Max 15.000 dynamische groepen per tenant

Let op

Geen handmatige leden mogelijk; veiligheid hangt af van wie de attributen kan schrijven

De regel is het makkelijke deel

De syntax van een membership rule is steeds hetzelfde patroon: attribuut, operator, waarde.

(user.department -eq "Finance")
(user.department -eq "Finance") and (user.jobTitle -contains "Teamleider")
(user.employeeType -eq "Medewerker") and (user.officeLocation -in ["Amsterdam","Utrecht"])

De operators die je het meest gebruikt: -eq en -ne voor exacte waarden, -contains en -startsWith voor gedeeltelijke matches, -in voor lijstjes en -any voor meerwaardige attributen. Met and, or en not combineer je expressies; de rule builder ondersteunt er vijf, daarna schakel je naar de syntax editor.

Gebruik de knop Validate Rules vóór je opslaat: je selecteert een paar bestaande gebruikers en ziet direct of ze wel of niet matchen, inclusief uitleg waarom. Dat voorkomt de klassieker waarbij een regel op "Financien" niemand vangt omdat HR "财务" of gewoon "Finance" aanlevert.

Welke attributen kies je

Kies attributen die een systeem vult, niet een mens. department en jobTitle komen idealiter uit je HR koppeling of AD synchronisatie. employeeType is waardevol om medewerkers, inhuur en stagiairs te scheiden. De extensionAttributes zijn de vluchtroute voor alles wat nergens anders past, zoals een kostenplaats of teamcode; documenteer dan wél wat er in welk nummer staat, want over een jaar weet niemand meer wat extensionAttribute7 betekent.

Twee attributen verdienen extra aandacht. employeeHireDate maakt regels mogelijk rond indiensttreding, maar de meeste HR koppelingen vullen dit veld niet standaard. En manager is géén bruikbaar attribuut in dynamische regels; wie op hiërarchie wil sturen, loopt hier vast.

De drie manieren waarop dit misgaat

Eén: lege of vervuilde attributen. Een dynamische regel evalueert wat er stáát, niet wat er zou moeten staan. Elke typefout in een afdelingsnaam is een medewerker zonder toegang, of erger, mét verkeerde toegang. Twee: schrijfrechten. De veiligheid van de groep is precies zo sterk als de controle op wie de attributen mag wijzigen. Kan een servicedeskmedewerker of een slecht ingerichte sync het department veld aanpassen, dan kan die persoon in feite toegang uitdelen. Controleer dit expliciet voor attributen die vanuit on-premises AD gesynchroniseerd worden. Drie: geen uitzonderingen. Aan een dynamische groep kun je niemand handmatig toevoegen. De stagiair die tijdelijk met Finance meedraait krijg je er alleen in door de regel te vervuilen of het HR attribuut te misbruiken, en beide keuzes wreken zich later.

Waarom je dit in Joinly wilt regelen

Dynamische groepen verplaatsen het beheerprobleem van groepslidmaatschappen naar datakwaliteit. Dat is winst, maar alleen als iets die datakwaliteit ook echt bewaakt. In de praktijk zie ik omgevingen met tientallen dynamische regels bovenop attributen die niemand onderhoudt: de logica versnippert over losse groepen, er is geen overzicht van welke regel welke toegang geeft, uitzonderingen zijn onmogelijk en elke gebruiker in zo'n groep kost een P1 licentie.

Joinly pakt het bij de bron. De HR koppeling met AFAS, HR2Day, Visma Raet, YouServe of Workday vult de attributen betrouwbaar én beheert de groepslidmaatschappen rechtstreeks vanuit business rules: afdeling plus functie bepaalt de groepen, in Entra ID en on-premises AD tegelijk. Uitzonderingen leg je gewoon vast, met reden en einddatum. En omdat Joinly de lidmaatschappen zelf uitvoert, heb je de dynamische regels en de bijbehorende P1 eis niet eens nodig. Wat overblijft is één centraal model met een audit trail per mutatie.

Wil je weten hoe betrouwbaar jouw HR attributen in Entra nu zijn? De gratis scan op scan.joinly.app laat het binnen tien minuten zien.

Installation guide

Stap 1: Controleer eerst je data

Trek een rapport van de attributen waarop je wilt sturen, vóór je ook maar één regel bouwt:

powershell

Connect-MgGraph -Scopes "User.Read.All"

Get-MgUser -All -Property DisplayName,Department,JobTitle,EmployeeType |
  Group-Object Department | Sort-Object Count -Descending |
  Select-Object Name, Count

Elke variant, typefout en lege waarde die hier opduikt, wordt straks een gat in je groepslidmaatschap. Los dit eerst op in de bron (HR of AD), niet in Entra.

Stap 2: Maak de groep aan

  1. Ga naar entra.microsoft.com, meld je aan als minimaal Groups Administrator.

  2. Entra ID → Groups → All groups → New group.

  3. Group type: Security. Naam volgens je conventie, beschrijving met het doel.

  4. Membership type: Dynamic User.

Stap 3: Bouw en valideer de regel

  1. Klik Add dynamic query.

  2. Bouw de expressie in de rule builder: property department, operator Equals, value Finance. Combineer met jobTitle waar nodig.

  3. Klik Validate Rules, voeg drie tot vijf bestaande gebruikers toe en controleer of de uitkomst klopt, ook voor iemand die er juist níét in hoort.

  4. Save en Create.

Stap 4: Controleer de verwerking

Open na een paar minuten Groups → jouw groep → Members en vergelijk het aantal met je verwachting uit stap 1. Wijkt het af, kijk dan bij Dynamic membership rules naar de processing status. Grote tenants kunnen tot 24 uur nodig hebben.

Stap 5: Koppel de toegang

Hang de groep nu aan de resources: app assignment via Enterprise applications, licenties via group-based licensing, rechten op SharePoint. Vanaf dat moment stuurt HR data de toegang: wijzigt het department van een medewerker, dan volgen lidmaatschap en alles wat eraan hangt vanzelf.

Alternatief: via PowerShell/Graph

powershell

New-MgGroup -DisplayName "ROL-Finance-Medewerker" `
  -MailEnabled:$false -MailNickname "rol-finance-medewerker" `
  -SecurityEnabled:$true `
  -GroupTypes @("DynamicMembership") `
  -MembershipRule '(user.department -eq "Finance")' `
  -MembershipRuleProcessingState "On"

Zo doe je dit in Joinly

In Joinly sla je de tussenstap over. De business rule staat niet in een losse groep maar in het centrale rollenmodel: conditie op de HR brongegevens (afdeling, functie, type dienstverband), gekoppeld aan de groepslidmaatschappen die daarbij horen, in Entra én on-premises AD. Joinly bewaakt bovendien de datakwaliteit uit stap 1 doorlopend, omdat de HR koppeling de bron is in plaats van een handmatig gevuld attribuut. Uitzonderingen met einddatum, elke mutatie in de audit trail, en geen P1 licentie nodig voor het lidmaatschapsbeheer.

Kijken kost niets

Plan een vrijblijvende demo

In 30 minuten laat we je graag zien hoe Joinly toegevoegde waarde biedt voor de gehele organisatie.

Kijken kost niets

Plan een vrijblijvende demo

In 30 minuten laat we je graag zien hoe Joinly toegevoegde waarde biedt voor de gehele organisatie.

Kijken kost niets

Plan een vrijblijvende demo

In 30 minuten laat we je graag zien hoe Joinly toegevoegde waarde biedt voor de gehele organisatie.