Pravidla dynamického členství pro skupiny v Azure Active Directory

V Azure Active Directory (Azure AD) můžete vytvořit složitá pravidla založená na atributech, která umožňují dynamické členství pro skupiny. Dynamické členství ve skupinách snižuje administrativní režii při přidávání a odebírání uživatelů. Tento článek podrobně popisuje vlastnosti a syntaxi pro vytvoření pravidel dynamického členství pro uživatele nebo zařízení. Můžete nastavit pravidlo pro dynamické členství ve skupinách zabezpečení nebo Microsoft 365 skupinách.

Když se změní všechny atributy uživatele nebo zařízení, systém vyhodnotí všechna pravidla dynamických skupin v adresáři a zjistí, jestli by tato změna aktivovala přidání nebo odebrání jakékoli skupiny. Pokud uživatel nebo zařízení splňuje pravidlo ve skupině, přidají se jako člen této skupiny. Pokud už pravidlo nevyhovuje, odeberou se. Člena dynamické skupiny nemůžete přidat ani odebrat ručně.

  • Dynamickou skupinu můžete vytvořit pro zařízení nebo pro uživatele, ale nemůžete vytvořit pravidlo, které obsahuje uživatele i zařízení.
  • Skupinu zařízení nemůžete vytvořit na základě atributů vlastníků zařízení. Pravidla členství zařízení můžou odkazovat pouze na atributy zařízení.

Poznámka

Tato funkce vyžaduje licenci Azure AD Premium P1 nebo Intune pro vzdělávací organizace pro každého jedinečného uživatele, který je členem jedné nebo více dynamických skupin. Licence uživatelům nemusíte přiřazovat, aby byly členy dynamických skupin, ale musíte mít minimální počet licencí v organizaci Azure AD, aby se mohli pokrýt všichni tito uživatelé. Pokud byste například měli celkem 1 000 jedinečných uživatelů ve všech dynamických skupinách ve vaší organizaci, budete potřebovat alespoň 1 000 licencí pro Azure AD Premium P1, aby bylo možné splnit licenční požadavek. Pro zařízení, která jsou členy dynamické skupiny zařízení, se nevyžaduje žádná licence.

Tvůrce pravidel v Azure Portal

Azure AD poskytuje tvůrce pravidel pro rychlejší vytváření a aktualizaci důležitých pravidel. Tvůrce pravidel podporuje vytváření až pěti výrazů. Tvůrce pravidel usnadňuje vytvoření pravidla s několika jednoduchými výrazy, ale nedá se použít k reprodukování každého pravidla. Pokud tvůrce pravidel nepodporuje pravidlo, které chcete vytvořit, můžete použít textové pole.

Tady je několik příkladů pokročilých pravidel nebo syntaxe, pro které doporučujeme vytvořit pomocí textového pole:

Poznámka

Tvůrce pravidel nemusí být schopen zobrazit některá pravidla daná v textovém poli. Pokud tvůrce pravidel nemůže pravidlo zobrazit, může se zobrazit zpráva. Tvůrce pravidel nijak nemění podporovanou syntaxi, ověřování ani zpracování pravidel dynamické skupiny.

Další podrobné pokyny najdete v tématu Vytvoření nebo aktualizace dynamické skupiny.

Add membership rule for a dynamic group

Syntaxe pravidla pro jeden výraz

Jediný výraz je nejjednodušší forma pravidla členství a má pouze tři části uvedené výše. Pravidlo s jedním výrazem vypadá podobně jako tento: Property Operator Value, kde syntaxe vlastnosti je název object.property.

Následuje příklad správně vytvořeného pravidla členství s jedním výrazem:

user.department -eq "Sales"

Závorky jsou volitelné pro jeden výraz. Celková délka těla pravidla členství nesmí překročit 3072 znaků.

Vytvoření těla pravidla členství

Pravidlo členství, které automaticky naplní skupinu uživateli nebo zařízeními, je binární výraz, který má za následek pravdivý nebo nepravdivý výsledek. Tři části jednoduchého pravidla jsou:

  • Vlastnost
  • Operátor
  • Hodnota

Pořadí částí ve výrazu je důležité, aby nedocházelo k chybám syntaxe.

Podporované vlastnosti

Existují tři typy vlastností, které lze použít k vytvoření pravidla členství.

  • Logická hodnota
  • Řetězec
  • Kolekce řetězců

Následují vlastnosti uživatele, které můžete použít k vytvoření jednoho výrazu.

Vlastnosti typu boolean

Vlastnosti Povolené hodnoty Využití
accountEnabled true false user.accountEnabled -eq true
dirSyncEnabled true false user.dirSyncEnabled -eq true

Vlastnosti řetězce typu

Vlastnosti Povolené hodnoty Využití
city Libovolná řetězcová hodnota nebo hodnota null (user.city -eq "value")
country Libovolná řetězcová hodnota nebo hodnota null (user.country -eq "value")
Companyname Libovolná řetězcová hodnota nebo hodnota null (user.companyName -eq "value")
Oddělení Libovolná řetězcová hodnota nebo hodnota null (user.department -eq "value")
displayName Libovolná řetězcová hodnota (user.displayName -eq "value")
Employeeid Libovolná řetězcová hodnota (user.employeeId -eq "value")
(user.employeeId -ne null)
facsimileTelephoneNumber Libovolná řetězcová hodnota nebo hodnota null (user.facsimileTelephoneNumber -eq "value")
givenName Libovolná řetězcová hodnota nebo hodnota null (user.givenName -eq "value")
jobTitle Libovolná řetězcová hodnota nebo hodnota null (user.jobTitle -eq "value")
pošta Libovolná řetězcová hodnota nebo null (adresa SMTP uživatele) (user.mail -eq "value")
mailNickName Libovolná řetězcová hodnota (alias e-mailu uživatele) (user.mailNickName -eq "value")
mobil Libovolná řetězcová hodnota nebo hodnota null (user.mobile -eq "value")
objectId IDENTIFIKÁTOR GUID objektu uživatele (user.objectId -eq "11111111-1111-1111-1111-111111111")
onPremisesDistinguishedName (Preview) Libovolná řetězcová hodnota nebo hodnota null (user.onPremisesDistinguishedName -eq "value")
onPremisesSecurityIdentifier Identifikátor siD místního zabezpečení (SID) pro uživatele, kteří byli synchronizovaní z místního prostředí do cloudu. (user.onPremisesSecurityIdentifier -eq "S-1-1-11-1111111111-1111111111-111111111-1111111111")
passwordPolicies None DisableStrongPassword DisablePasswordExpiration DisablePasswordExpiration, DisableStrongPassword (user.passwordPolicies -eq "DisableStrongPassword")
physicalDeliveryOfficeName Libovolná řetězcová hodnota nebo hodnota null (user.physicalDeliveryOfficeName -eq "value")
postalCode Libovolná řetězcová hodnota nebo hodnota null (user.postalCode -eq "value")
preferredLanguage Kód ISO 639-1 (user.preferredLanguage -eq "en-US")
sipProxyAddress Libovolná řetězcová hodnota nebo hodnota null (user.sipProxyAddress -eq "value")
state Libovolná řetězcová hodnota nebo hodnota null (user.state -eq "value")
streetAddress Libovolná řetězcová hodnota nebo hodnota null (user.streetAddress -eq "value")
surname Libovolná řetězcová hodnota nebo hodnota null (user.příjmení -eq "value")
telephoneNumber Libovolná řetězcová hodnota nebo hodnota null (user.telephoneNumber -eq "value")
usageLocation Dvoumísmenný kód země/oblasti (user.usageLocation -eq "US")
userPrincipalName (Hlavní název uživatele) Libovolná řetězcová hodnota (user.userPrincipalName -eq "alias@domain")
userType člen host null (user.userType -eq "Member")

Vlastnosti kolekce řetězců typu

Vlastnosti Povolené hodnoty Využití
další e-maily Libovolná řetězcová hodnota (user.otherMails -contains "alias@domain")
proxyAddresses SMTP: alias@domain smtp: alias@domain (user.proxyAddresses -contains "SMTP: alias@domain")

Vlastnosti používané pro pravidla zařízení najdete v tématu Pravidla pro zařízení.

Podporované operátory výrazů

Následující tabulka uvádí všechny podporované operátory a jejich syntaxi pro jeden výraz. Operátory lze použít s předponou spojovníku (-). Operátor Contains se shoduje s částečným řetězcem, ale nikoli s položkou v kolekci.

Operátor Syntax
Nerovná se -ne
Je rovno -eq
Nezačíná na -notStartsWith
Začíná na -startsWith
Neobsahuje -notContains
Contains -contains
Neodpovídá -notMatch
Shoda -match
V -in
Není v -notIn

Použití operátorů -in a -notIn

Pokud chcete porovnat hodnotu atributu uživatele s řadou různých hodnot, můžete použít operátory -in nebo -notIn. K zahájení a ukončení seznamu hodnot použijte symboly závorek "[" a "]".

V následujícím příkladu se výraz vyhodnotí jako true, pokud se hodnota user.department rovná některé z hodnot v seznamu:

   user.department -in ["50001","50002","50003","50005","50006","50007","50008","50016","50020","50024","50038","50039","51100"]

Použití operátoru -match

Operátor -match se používá pro porovnávání libovolného regulárního výrazu. Příklady:

user.displayName -match "Da.*"   

Da, Dav, David vyhodnotí hodnotu true, aDa se vyhodnotí jako false.

user.displayName -match ".*vid"

David vyhodnotí hodnotu true, Da vyhodnotí hodnotu false.

Podporované hodnoty

Hodnoty použité ve výrazu se můžou skládat z několika typů, mezi které patří:

  • Řetězce
  • Logická hodnota – true, false
  • Čísla
  • Pole – číselná matice, řetězcová matice

Při zadávání hodnoty ve výrazu je důležité použít správnou syntaxi, aby nedocházelo k chybám. Mezi tipy pro syntaxi patří:

  • Dvojité uvozovky jsou volitelné, pokud se nejedná o řetězec.
  • Operace řetězců a regulárních výrazů nerozlišují malá a velká písmena.
  • Pokud řetězcová hodnota obsahuje dvojité uvozovky, měly by být obě uvozovky uvozovány pomocí znaku ', například user.department -eq '"Sales" je správná syntaxe, když je hodnota "Sales". Jednoduché uvozovky by měly být uvozovány pomocí dvou jednoduchých uvozovek místo jednoho pokaždé.
  • Můžete také provést kontroly null s použitím hodnoty null jako hodnoty, user.department -eq nullnapříklad .

Použití hodnot Null

Pokud chcete zadat hodnotu null v pravidle, můžete použít hodnotu null .

  • Při porovnávání hodnoty null ve výrazu použijte parametr -eq nebo -ne.
  • Uvozovky kolem slova null použijte pouze v případě, že chcete, aby byla interpretována jako hodnota literálového řetězce.
  • Operátor -not nelze použít jako srovnávací operátor pro hodnotu null. Pokud ho použijete, zobrazí se chyba bez ohledu na to, jestli používáte hodnotu null nebo $null.

Správný způsob, jak odkazovat na hodnotu null, je následující:

   user.mail –ne null

Pravidla s více výrazy

Pravidlo členství ve skupině se může skládat z více než jednoho výrazu propojeného operátory -, -or a -not logických operátorů. Logické operátory lze použít také v kombinaci.

Tady jsou příklady správně vytvořených pravidel členství s více výrazy:

(user.department -eq "Sales") -or (user.department -eq "Marketing")
(user.department -eq "Sales") -and -not (user.jobTitle -contains "SDE")

Priorita operátorů

Všechny operátory jsou uvedené níže v pořadí podle priority od nejvyšších po nejnižší. Operátory na stejném řádku mají stejnou prioritu:

-eq -ne -startsWith -notStartsWith -contains -notContains -match –notMatch -in -notIn
-not
-and
-or
-any -all

Následuje příklad priority operátoru, kde se pro uživatele vyhodnocují dva výrazy:

   user.department –eq "Marketing" –and user.country –eq "US"

Závorky jsou potřeba jenom v případě, že priorita nesplňuje vaše požadavky. Pokud například chcete, aby se oddělení vyhodnocoval jako první, ukazuje následující příklad, jak se dají závorky použít k určení pořadí:

   user.country –eq "US" –and (user.department –eq "Marketing" –or user.department –eq "Sales")

Pravidla se složitými výrazy

Pravidlo členství se může skládat ze složitých výrazů, kde vlastnosti, operátory a hodnoty mají složitější tvary. Výrazy jsou považovány za složité, pokud platí některá z následujících výrazů:

  • Vlastnost se skládá z kolekce hodnot; konkrétně vícehodnotové vlastnosti
  • Výrazy používají operátory -any a -all.
  • Hodnota výrazu může být jeden nebo více výrazů.

Vlastnosti s více hodnotami

Vlastnosti s více hodnotami jsou kolekce objektů stejného typu. Dají se použít k vytvoření pravidel členství pomocí logických operátorů -any a -all.

Vlastnosti Hodnoty Využití
assignedPlans Každý objekt v kolekci zveřejňuje následující vlastnosti řetězce: capabilityStatus, service, servicePlanId user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled")
proxyAddresses SMTP: alias@domain smtp: alias@domain (user.proxyAddresses -any (_ -contains "contoso"))

Použití operátorů -any a -all

Pomocí operátoru -any a -all můžete použít podmínku pro jednu nebo všechny položky v kolekci.

  • -any (splněno, když alespoň jedna položka v kolekci odpovídá podmínce)
  • -all (splněno, když všechny položky v kolekci odpovídají podmínce)

Příklad 1

assignedPlans je vlastnost s více hodnotami, která obsahuje seznam všech plánů služeb přiřazených uživateli. Následující výraz vybere uživatele, kteří mají plán služby Exchange Online (Plán 2) (jako hodnotu GUID), který je také ve stavu Povoleno:

user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled")

Pravidlo, jako je tento, se dá použít k seskupení všech uživatelů, pro které je povolená Microsoft 365 (nebo jiná online služba Microsoftu). Pak můžete u skupiny použít sadu zásad.

Příklad 2

Následující výraz vybere všechny uživatele, kteří mají jakýkoli plán služby přidružený ke službě Intune (identifikovaný názvem služby SCO):

user.assignedPlans -any (assignedPlan.service -eq "SCO" -and assignedPlan.capabilityStatus -eq "Enabled")

Příklad 3

Následující výraz vybere všechny uživatele, kteří nemají žádný přiřazený plán služby:

user.assignedPlans -all (assignedPlan.servicePlanId -eq "")

Použití syntaxe podtržítka (_)

Syntaxe podtržítka (_) odpovídá výskytům konkrétní hodnoty v jedné z vlastností kolekce řetězců s více hodnotami pro přidání uživatelů nebo zařízení do dynamické skupiny. Používá se s operátory -any nebo -all.

Tady je příklad použití podtržítka (_) v pravidle k přidání členů na základě user.proxyAddress (funguje stejně pro user.otherMails). Toto pravidlo přidá do skupiny libovolného uživatele s adresou proxy, která obsahuje "contoso".

(user.proxyAddresses -any (_ -contains "contoso"))

Další vlastnosti a běžná pravidla

Vytvoření pravidla přímé sestavy

Můžete vytvořit skupinu obsahující všechny přímé sestavy manažera. Když se přímé sestavy manažera v budoucnu změní, členství ve skupině se automaticky upraví.

Pravidlo přímých sestav se konstruuje pomocí následující syntaxe:

Direct Reports for "{objectID_of_manager}"

Tady je příklad platného pravidla, kde "62e19b97-8b3d-4d4a-a106-4ce66896a863" je ID objektu správce:

Direct Reports for "62e19b97-8b3d-4d4a-a106-4ce66896a863"

Následující tipy vám můžou pomoct správně použít pravidlo.

  • ID správce je ID objektu správce. Najdete ho v profilu manažera.
  • Aby pravidlo fungovalo, ujistěte se, že je vlastnost Správce správně nastavená pro uživatele ve vaší organizaci. Aktuální hodnotu můžete zkontrolovat v profilu uživatele.
  • Toto pravidlo podporuje pouze přímé sestavy manažera. Jinými slovy, nemůžete vytvořit skupinu s přímými sestavami manažera a jejich sestavami.
  • Toto pravidlo nelze kombinovat s jinými pravidly členství.

Vytvoření pravidla Všichni uživatelé

Pomocí pravidla členství můžete vytvořit skupinu obsahující všechny uživatele v organizaci. Když se uživatelé přidají nebo odeberou z organizace v budoucnu, členství ve skupině se automaticky upraví.

Pravidlo Všichni uživatelé se konstruuje pomocí jednoho výrazu pomocí operátoru -ne a hodnoty null. Toto pravidlo přidá uživatele typu host B2B i členské uživatele do skupiny.

user.objectId -ne null

Pokud chcete, aby vaše skupina vyloučila uživatele typu host a zahrnovala jenom členy vaší organizace, můžete použít následující syntaxi:

(user.objectId -ne null) -and (user.userType -eq "Member")

Vytvoření pravidla Všechna zařízení

Pomocí pravidla členství můžete vytvořit skupinu obsahující všechna zařízení v organizaci. Po přidání nebo odebrání zařízení z organizace v budoucnu se členství ve skupině automaticky upraví.

Pravidlo Všechna zařízení se konstruuje pomocí jednoho výrazu pomocí operátoru -ne a hodnoty null:

device.objectId -ne null

Vlastnosti rozšíření a vlastní vlastnosti rozšíření

Atributy rozšíření a vlastní vlastnosti rozšíření se podporují jako vlastnosti řetězce v pravidlech dynamického členství. Atributy rozšíření se synchronizují z místní služby AD Windows Serveru a přebírají formát ExtensionAttributeX, kde X se rovná 1 až 15. Tady je příklad pravidla, které jako vlastnost používá atribut rozšíření:

(user.extensionAttribute15 -eq "Marketing")

Vlastní vlastnosti rozšíření se synchronizují z místního Windows Server AD nebo z připojené aplikace SaaS a jsou ve formátu user.extension_[GUID]_[Attribute], kde:

  • [GUID] je jedinečný identifikátor v Azure AD pro aplikaci, která vytvořila vlastnost v Azure AD
  • [Attribute] je název vlastnosti při jeho vytvoření.

Příkladem pravidla, které používá vlastní vlastnost rozšíření, je:

user.extension_c272a57b722d4eb29bfe327874ae79cb_OfficeNumber -eq "123"

Název vlastní vlastnosti najdete v adresáři dotazováním vlastnosti uživatele pomocí průzkumníka Graph a vyhledáním názvu vlastnosti. V tvůrci pravidel dynamické skupiny uživatelů teď můžete také vybrat odkaz Získat vlastní vlastnosti rozšíření a zadat jedinečné ID aplikace a získat úplný seznam vlastností vlastního rozšíření, které se mají použít při vytváření pravidla dynamického členství. Tento seznam lze také aktualizovat, aby se pro danou aplikaci získaly nové vlastnosti vlastního rozšíření. Atributy rozšíření a vlastnosti vlastního rozšíření musí být z aplikací ve vašem tenantovi.

Další informace najdete v tématu Použití atributů v dynamických skupinách v článku Azure AD Připojení synchronizace: Rozšíření adresáře.

Pravidla pro zařízení

Můžete také vytvořit pravidlo, které vybere objekty zařízení pro členství ve skupině. Jako členové skupiny nemůžete mít uživatele i zařízení.

Poznámka

Atribut OrganizačníUnit už není uvedený a neměl by být použit. Tento řetězec je nastaven Intune v konkrétních případech, ale není rozpoznán Azure AD, takže žádná zařízení nejsou přidána do skupin založených na tomto atributu.

Poznámka

systemlabels je atribut jen pro čtení, který nelze nastavit pomocí Intune.

Pro Windows 10 je správný formát atributu deviceOSVersion následující: (device.deviceOSVersion -startWith "10.0.1"). Formátování je možné ověřit pomocí rutiny powershellu Get-MsolDevice.

Můžete použít následující atributy zařízení.

Atribut zařízení Hodnoty Příklad
accountEnabled true false (device.accountEnabled -eq true)
displayName libovolná řetězcová hodnota (device.displayName -eq "Rob iPhone")
deviceOSType libovolná řetězcová hodnota (device.deviceOSType -eq "iPad") – nebo (device.deviceOSType -eq "iPhone")
(device.deviceOSType –obsahuje "AndroidEnterprise")
(device.deviceOSType -eq "AndroidForWork")
(device.deviceOSType -eq "Windows")
deviceOSVersion libovolná řetězcová hodnota (device.deviceOSVersion -eq "9.1")
(device.deviceOSVersion -startWith "10.0.1")
deviceCategory platný název kategorie zařízení (device.deviceCategory -eq "BYOD")
deviceManufacturer libovolná řetězcová hodnota (device.deviceManufacturer -eq "Samsung")
deviceModel libovolná řetězcová hodnota (device.deviceModel -eq "iPad Air")
deviceOwnership Osobní, Společnost, Neznámá (device.deviceOwnership -eq "Company")
enrollmentProfileName Název profilu registrace zařízení Apple, Android Enterprise název vyhrazeného profilu registrace zařízení ve vlastnictví firmy nebo Windows název profilu Autopilotu (device.enrollmentProfileName -eq "DEP iPhones")
isRooted true false (device.isRooted -eq true)
managementType MDM (pro mobilní zařízení) (device.managementType -eq "MDM")
deviceId platné ID zařízení Azure AD (device.deviceId -eq "d4fe7726-5966-431c-b3b8-cddc8fdb717d")
objectId platné ID objektu Azure AD (device.objectId -eq "76ad43c9-32c5-45e8-a272-7b58b58f596d")
devicePhysicalIds libovolná řetězcová hodnota používaná autopilotem, například všechna zařízení Autopilot, OrderID nebo PurchaseOrderID (device.devicePhysicalIDs -any _ -contains "[ZTDId]") (device.devicePhysicalIds -any _ -eq "[OrderID]:179887111881") (device.devicePhysicalIds -any _ -eq "[PurchaseOrderId]:76222342342")
systemLabels libovolný řetězec odpovídající vlastnosti zařízení Intune pro označování zařízení moderního pracoviště (device.systemLabels –obsahuje M365Managed)

Poznámka

Pro zařízeníOwnership při vytváření dynamických skupin pro zařízení potřebujete nastavit hodnotu rovnou "Společnost". Na Intune je vlastnictví zařízení reprezentováno jako firemní. Další podrobnosti najdete v části OwnerTypes .

Další kroky

Tyto články obsahují další informace o skupinách v Azure Active Directory.