Entra ID: memberOf končí – co zkontrolovat a čím ho nahradit

Používáte Dynamické skupiny? Microsoft ukončuje preview provoz operátoru memberOf v Entra ID. Od 3. listopadu 2026 se konfigurace, které na něm závisí, přestanou průběžně aktualizovat. Zůstanou v posledním známém stavu. Pokud přes memberOf řídíte přístupy nebo licence, doporučuji rychlou kontrolu a najít náhradní řešení - zastaralé členství nemusí být na první pohled vidět.

Microsoft změnu oznámil také v Message Center pod číslem MC1529463. Ověřte si toto oznámení přímo ve vašem Message Center svého tenantu, protože veřejný dokument Microsoft Learn toto ID neuvádí.

Schéma změny členství skupin v Entra ID
Konec operátoru memberOf v dynamickém členství

Co se zastaví a proč to řešit včas

memberOf umožňovalo vytvořit dynamické členství podle členství uživatle v jiných skupinách. Microsoft tuto možnost vyřazuje, protože při používání této (stále preview) funkce může zpomalit zpracování dynamického členství v celém tenantu. Microsoft proto nedoporučoval používat ji v produkčním prostředí.

Změna se týká tří míst:

  • dynamických skupin,
  • dynamických administrativních jednotek (Administrative Units),
  • automatického přiřazování access packages v Entra ID Entitlement Management.

Praktický problém je jednoduchý: skupina se přestane pravidelně aktualizovat. Novému zaměstnanci se nemusí přiřadit licence nebo přístup, který měl dostat. Člověk, který už oprávnění mít nemá, může naopak zůstat členem skupiny. Podle toho, co na skupinu navazuje, se to může projevit u aplikací, Conditional Access, Teams, SharePointu, licencí nebo access packages.

Jak najít dynamické skupiny s memberOf

Nejdřív si udělejte inventuru. Následující příkazy konfiguraci pouze čtou; nic v tenantu nemění. Spusťte je účtem s odpovídajícími oprávněními Microsoft Graph. Přístupová oprávnění si mohou při připojení vyžádat ke schválení správcem.

Dynamické skupiny

Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph.Groups
Connect-MgGraph -Scopes 'Group.Read.All'

$groups = Get-MgGroup -All -Property Id,DisplayName,GroupTypes,MembershipRule,MembershipRuleProcessingState

$memberOfGroups = $groups | Where-Object {
    $_.GroupTypes -contains 'DynamicMembership' -and
    $_.MembershipRule -match '(?i)memberOf'
}

$memberOfGroups |
    Select-Object Id,DisplayName,MembershipRule,MembershipRuleProcessingState |
    Export-Csv '.\Entra-memberOf-dynamic-groups.csv' -NoTypeInformation -Encoding utf8

$memberOfGroups |
    Select-Object Id,DisplayName,MembershipRule,MembershipRuleProcessingState |
    Format-Table -Wrap

-All načte všechny stránky výsledků. Filtr pak hledá memberOf v pravidle dynamických skupin a ukládá nálezy do CSV. Pro kontrolu skupin ověřte také stav zpracování, aktuální členy a to, co se jejich členstvím řídí.[3]

Dynamické administrativní jednotky (Administrative Units)

Import-Module Microsoft.Graph.Identity.DirectoryManagement
Connect-MgGraph -Scopes 'AdministrativeUnit.Read.All'

$administrativeUnits = Get-MgDirectoryAdministrativeUnit -All

$memberOfAdministrativeUnits = $administrativeUnits | Where-Object {
    $_.MembershipType -eq 'Dynamic' -and
    $_.MembershipRule -match '(?i)memberOf'
}

$memberOfAdministrativeUnits |
    Select-Object Id,DisplayName,MembershipType,MembershipRule,MembershipRuleProcessingState |
    Export-Csv '.\Entra-memberOf-administrative-units.csv' -NoTypeInformation -Encoding utf8

$memberOfAdministrativeUnits |
    Select-Object Id,DisplayName,MembershipRule,MembershipRuleProcessingState |
    Format-Table -Wrap

U nalezených administrativních jednotek zkontrolujte hlavně přiřazené role a jejich scope. Změna členství může změnit, které objekty může delegovaný správce spravovat.

Automatické přiřazování access packages

Import-Module Microsoft.Graph.Identity.Governance
Connect-MgGraph -Scopes 'EntitlementManagement.Read.All'

$policies = Get-MgEntitlementManagementAssignmentPolicy -All

$memberOfPolicies = foreach ($policy in $policies) {
    $json = $policy | ConvertTo-Json -Depth 40
    if ($json -match '(?i)memberOf') {
        [pscustomobject]@{
            Id              = $policy.Id
            DisplayName     = $policy.DisplayName
            AccessPackageId = $policy.AccessPackage.Id
            PolicyJson      = $json
        }
    }
}

$memberOfPolicies |
    Export-Csv '.\Entra-memberOf-access-package-policies.csv' -NoTypeInformation -Encoding utf8

$memberOfPolicies | Select-Object Id,DisplayName,AccessPackageId | Format-Table -Wrap

Tady záměrně hledáme řetězec v celém objektu politiky, protože pravidlo může být vnořené v konfiguraci cílových uživatelů. Každý nález proto otevřete a ověřte, že memberOf skutečně figuruje v pravidle členství. Prázdný výsledek nic nedokazuje, pokud Microsoft Graph vrátil chybu oprávnění nebo neúplný seznam. Cmdlet Get-MgEntitlementManagementAssignmentPolicy slouží k načtení těchto politik.

Až kontrolu dokončíte:

Disconnect-MgGraph

Čím memberOf nahradit

Univerzální náhrada neexistuje. Nejdřív je potřeba si definovat, proč pravidlo vzniklo a kdo má být členem. Teprve potom zvolte způsob, který zachová stejný výsledek.

Dynamické pravidlo podle atributu dává smysl, pokud lze cílovou skupinu přesně popsat vlastnostmi uživatele, které se udržují spolehlivě. Může jít například o oddělení nebo zemi. Pravidlo user.department -eq "Finance" ale není náhradou za členství v jiné skupině, pokud členové původní skupiny neodpovídají přesně tomuto atributu. Microsoft doporučuje držet dynamická pravidla jednoduchá a používat vhodné podporované operátory.

Přiřazované členství může být praktičtější, když neexistuje odpovídající atributové pravidlo. Znamená to ale převzít odpovědnost za přidávání i odebírání členů. Určete vlastníka skupiny a proces, který zachytí nástupy, odchody i změny rolí. Jednorázové zkopírování seznamu členů problém neřeší - seznam se dál sám neudržuje.

Přiřazované členství lze doplnit také o možnost pravidelného čtení členství vybraných skupin a automatického přidělení členství pomocí PowerShell skriptu spouštěného přes Azure Automation.

U access packages přestavte pravidlo na podporované atributové podmínky, pokud to scénář umožňuje. Když rovnocenné pravidlo neexistuje, naplánujte jiný způsob přiřazení dřív, než starou politiku odstraníte. Jinak se mohou zastavit nejen nová přiřazení, ale i jejich odebírání.

U administrativních jednotek zvažte podporované atributové pravidlo nebo přiřazované členství. Před změnou si zaznamenejte delegované role a po změně ověřte jejich rozsah - tady může chyba znamenat, že správce uvidí nebo spravuje jinou sadu objektů.

Checklist: co prověřit

  • [ ] V Message Center ověřte oznámení MC1529463 a případné novější informace.
  • [ ] Prohledejte dynamické skupiny, dynamické Administrative Units a access package auto-assignment policies.
  • [ ] U každého nálezu poznamenejte účel, vlastníka, současné členství a návazné licence, aplikace, politiky a role.
  • [ ] Zjistěte, co by se stalo při nástupu, odchodu nebo změně role uživatele.
  • [ ] Vyberte náhradu podle skutečného účelu pravidla; nepřepisujte memberOf na atribut, který jen přibližně odpovídá původní skupině.
  • [ ] Změnu proveďte podle interního schvalovacího postupu. Pokud je to možné, nejdřív ji otestujte na malé skupině.
  • [ ] Po změně porovnejte členství před a po. U Administrative Units ověřte scope rolí; u access packages přiřazení a odebírání přístupů.
  • [ ] Otestujte návazné přístupy, Conditional Access, Teams, SharePoint a skupinové licence.
  • [ ] Zkontrolujte auditní protokoly a poznamenejte, kdo bude nové členství průběžně udržovat.[7]
  • [ ] Pokud už termín uplynul, ověřte současný stav přímo v tenantovi. Nepředpokládejte, že se zastavené zpracování samo obnoví.

Já bych začal inventurou a dopady, ne hromadnou úpravou pravidel. Nejdřív je potřeba vědět, které přístupy nebo licence jsou na členství navázané. Pak lze zvolit náhradu a ověřit, že se po změně lidem opravdu přidává i odebírá to, co má.

Související dokumentace Microsoft Learn

  1. Configure dynamic membership groups with the memberOf operator - konec preview, datum a migrace.
  2. Automatic assignment policies for access packages - dopad na automatická přiřazení.
  3. Get-MgGroup - načítání skupin přes Graph PowerShell.
  4. List administrativeUnits - administrativní jednotky přes Graph.
  5. Get-MgEntitlementManagementAssignmentPolicy - načítání access package politik.
  6. Create simpler and faster rules for dynamic membership groups - doporučení k pravidlům.
  7. Microsoft Entra audit logs - kontrola auditních záznamů.
Miroslav Šraga

Sdílím své zkušenosti s Microsoft 365 a Azure. Návody, řešení problémů a postřehy ze správy IT.