Правила динамического членства для групп в идентификаторе Microsoft Entra

Вы можете создать правила на основе атрибутов, чтобы включить динамическое членство в группе в идентификаторе Microsoft Entra, в составе Microsoft Entra. Динамическое членство в группах добавляет и удаляет участников группы автоматически с помощью правил членства на основе атрибутов членов. В этой статье подробно описываются свойства и синтаксис для создания правил динамического членства пользователей и (или) устройств. Вы можете настроить правило динамического членства для групп безопасности или групп Microsoft 365.

При изменении любых атрибутов пользователя или устройства система оценивает все правила динамических групп в каталоге, чтобы определить, приведет ли это изменение к добавлению или удалению в группах. Если пользователь или устройство отвечает правилу, установленному для группы, они добавляются в эту группу. Если они больше не соответствуют правилу, они удаляются. Нельзя вручную добавить или удалить элемент динамической группы.

  • Вы можете создать динамическую группу как для устройств, так и для пользователей, но невозможно создать правило, которое включает пользователей и устройства одновременно.
  • Нельзя создать группу устройств на основе атрибутов пользователя их владельцев. Правила членства для устройств могут ссылаться только на атрибуты этих устройств.

Примечание.

Для этой функции требуется лицензия Microsoft Entra ID P1 или Intune для образования для каждого уникального пользователя, являющегося членом одной или нескольких динамических групп. Вам не нужно назначать лицензии пользователям, чтобы они были членами динамических групп, но у вас должно быть минимальное количество лицензий в организации Microsoft Entra, чтобы охватывать всех таких пользователей. Например, если в организации было всего 1000 уникальных пользователей во всех динамических группах, вам потребуется не менее 1000 лицензий для Microsoft Entra ID P1 для удовлетворения требования лицензии. Для устройств, являющихся участниками динамической группы устройств, лицензия не требуется.

Построитель правил на портале Azure

Идентификатор Microsoft Entra предоставляет построитель правил для быстрого создания и обновления важных правил. Построитель правил позволяет создавать до пяти выражений. Построитель правил упрощает составление правил с использованием нескольких простых выражений, однако его невозможно использовать для воспроизведения каждого правила. Если построитель правил не поддерживает правило, которое требуется создать, можно воспользоваться текстовым полем.

Ниже приведены некоторые примеры расширенных правил или синтаксиса, требующих использования текстового поля:

Примечание.

Построитель правил, возможно, не сможет отобразить некоторые правила, составленные с помощью текстового поля. Если построитель правил не сможет отобразить правило, возможно, отобразится соответствующее сообщение. Построитель правил никоим образом не меняет поддерживаемый синтаксис, проверку или обработку правил для динамических групп.

Дополнительные пошаговые инструкции доступны в разделе Создание или обновление динамической группы.

Screenshot of the add membership rule for a dynamic group.

Синтаксис правила для одного выражения

Одно выражение — это минимально возможная форма для правил членства, не содержащая только упомянутые выше три части. Правило с одним выражением выглядит примерно так: Property Operator Value, где свойства указываются в формате "объект.свойство".

Ниже приведен пример правила членства с одним выражением в правильном формате:

user.department -eq "Sales"

Круглые скобки для одного выражения не обязательны. Общая длина текста для правила членства не может превышать 3072 символа.

Создание текста для правила членства

Правило членства, которое автоматически добавляет в группу пользователей или устройства, представляет собой выражение с двоичным результатом, то есть оно возвращает значение true или false. Простейшее правило состоит из трех частей:

  • Свойство
  • Оператор
  • Значение

Чтобы избежать синтаксических ошибок, важно соблюдать определенный порядок частей в этом выражении.

Поддерживаемые свойства

Существует три типа свойств, которые можно использовать для создания правил членства.

  • Логический
  • Дата/время
  • Строка
  • Коллекция строк

Ниже приведены свойства пользователя, которые можно использовать для создания одного выражения.

Свойства логического типа

Свойства Допустимые значения Использование
AccountEnabled true, false user.accountEnabled -eq true
dirSyncEnabled true, false user.dirSyncEnabled -eq true

Свойства типа dateTime

Свойства Допустимые значения Использование
employeeHireDate (предварительная версия) Любое значение DateTimeOffset или ключевое слово system.now user.employeeHireDate -eq "value"

Свойства строкового типа

Свойства Допустимые значения Использование
city Любое строковое значение или null. user.city -eq "value"
country Любое строковое значение или null. user.country -eq "value"
companyName Любое строковое значение или null. user.companyName -eq "value"
department Любое строковое значение или null. user.department -eq "value"
displayName Любое строковое значение user.displayName -eq "value"
employeeId Любое строковое значение user.employeeId -eq "value"
user.employeeId -ne null
facsimileTelephoneNumber Любое строковое значение или null. user.facsimileTelephoneNumber -eq "value"
givenName Любое строковое значение или null. user.givenName -eq "value"
jobTitle Любое строковое значение или null. user.jobTitle -eq "value"
mail Любое строковое значение или null (SMTP-адрес пользователя). user.mail -eq "value"
mailNickName Любое строковое значение (псевдоним электронной почты пользователя) user.mailNickName -eq "value"
memberOf Любое строковое значение (допустимый идентификатор объекта группы) user.memberof -any (group.objectId -in ['value'])
мобильный Любое строковое значение или null. user.mobile -eq "value"
objectId GUID объекта пользователя. user.objectId -eq "11111111-1111-1111-1111-111111111111"
onPremisesDistinguishedName Любое строковое значение или null. user.onPremisesDistinguishedName -eq "value"
onPremisesSecurityIdentifier; Локальный идентификатор безопасности (SID) для пользователей, которые были синхронизированы из локальной среды в облако. user.onPremisesSecurityIdentifier -eq "S-1-1-11-1111111111-1111111111-1111111111-1111111"
passwordPolicies нет
DisableStrongPassword
DisablePasswordExpiration
DisablePasswordExpiration, DisableStrongPassword
user.passwordPolicies -eq "DisableStrongPassword"
physicalDeliveryOfficeName Любое строковое значение или null. user.physicalDeliveryOfficeName -eq "value"
postalCode Любое строковое значение или null. user.postalCode -eq "value"
preferredLanguage Код ISO 639-1. user.preferredLanguage -eq "en-US"
sipProxyAddress Любое строковое значение или null. user.sipProxyAddress -eq "value"
state Любое строковое значение или null. user.state -eq "value"
streetAddress Любое строковое значение или null. user.streetAddress -eq "value"
surname; Любое строковое значение или null. user.surname -eq "value"
telephoneNumber Любое строковое значение или null. user.telephoneNumber -eq "value"
usageLocation Двухбуквенный код региона или страны user.usageLocation -eq "US"
userPrincipalName Любое строковое значение user.userPrincipalName -eq "alias@domain"
userType member, guest, null user.userType -eq "Member"

Свойства типа коллекции строк

Свойства Допустимые значения Пример
otherMails Любое строковое значение user.otherMails -startsWith "alias@domain"
proxyAddresses SMTP: alias@domain smtp: alias@domain user.proxyAddresses -startsWith "SMTP: alias@domain"

Свойства, используемые для правил устройств, описаны в разделе Правила для устройств.

Поддерживаемые операторы выражений

В следующей таблице перечислены все поддерживаемые операторы и их синтаксис для одного выражения. Все операторы можно использовать с дефисом в качестве префикса или без него. Оператор Contains выполняет частичное сопоставление строк, а не сопоставление элементов в коллекции.

Оператор Синтаксис
Не равно -ne
Равно -eq
Не начинается с -notStartsWith
Начинается с -startsWith
Не содержит -notContains
Содержит содержит-
Не соответствует -notMatch
Поиск совпадений (Match) -match
In -in
Не входит -notIn

Использование операторов -in и -notIn

Чтобы сравнить значение атрибута пользователя с несколькими значениями, можно использовать оператор -in или -notIn. Символы скобок [ и ] обозначают начало и конец списка значений.

Выражение в следующем примере принимает значение true, если значение user.department равно любому значению из списка.

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

Использование операторов -le и -ge

При использовании атрибута employeeHireDate в правилах динамической группы можно использовать операторы меньше (-le) или больше (-ge).
Примеры:

user.employeehiredate -ge system.now -plus p1d 

user.employeehiredate -le 2020-06-10T18:13:20Z 

Используйте оператор -match

Оператор -match используется для сопоставления с любым регулярным выражением. Примеры:

user.displayName -match "^Da.*"   

Da, Dav, David имеют значение true, aDa имеет значение false.

user.displayName -match ".*vid"

David имеет значение true, Da имеет значение false.

Поддерживаемые значения

Используемые в выражении значения могут состоять из нескольких типов, включая следующие:

  • Строки
  • логическое (true или false);
  • Числа
  • массивы (чисел или строк).

Включая значение в выражение, важно использовать правильный синтаксис, чтобы избежать ошибок. Вот несколько советов по синтаксису:

  • Двойные кавычки использовать не обязательно, если значение не является строкой.
  • В операциях со строками и регулярными выражениями регистр символов не учитывается.
  • Если строковое значение содержит двойные кавычки, обе кавычки следует экранировать символом, например так: user.department -eq `"Sales`". Это правильный синтаксис, если Sales является строковым выражением. Одинарные кавычки должны быть экранированы с помощью двух одинарных кавычек, а не одной.
  • Можно также выполнить проверку наличия значений NULL, используя значение NULL, например так: user.department -eq null.

Использование значений Null

Чтобы указать значение NULL в правиле, можно использовать значение null.

  • Используйте -eq или -ne при сравнении значения null в выражении.
  • Используйте кавычки вокруг null, если это значение нужно интерпретировать как литеральное строковое значение.
  • Оператор -not не может использоваться в качестве оператора сравнения со значением null. В противном случае при использовании значения null или $null произойдет ошибка.

Ниже показано, как правильно указывать значение NULL.

   user.mail –ne null

Правила с несколькими выражениями

Правило членства в группе может состоять из нескольких двоичных выражений, разделенных логическими операторами -and, -or и (или) -not. Логические операторы можно комбинировать друг с другом.

Ниже приведены примеры правильно составленных правил с несколькими выражениями:

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

Приоритет операторов

Все операторы перечислены в порядке убывания приоритета. Операторы в одной строке имеют одинаковый приоритет.

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

В качестве иллюстрации приоритетности операторов приведен следующий пример, в котором для пользователя вычисляются два выражения:

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

Скобки требуются только в том случае, если приоритет не соответствует вашим требованиям. Например, если сначала нужно проверить отдел, можно задать такой порядок с помощью круглых скобок:

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

Правила со сложными выражениями

Правило членства может состоять из более сложных выражений, содержащих свойства, операторы и значения. Выражения считаются сложными, если выполняется любое из следующих условий:

  • свойство состоит из коллекции значений (например, свойство с несколькими значениями);
  • в выражениях используются операторы -any и (или) -all;
  • значение выражения может представлять собой одно или несколько выражений.

Многозначные свойства

Многозначные свойства являются коллекциями объектов того же типа. Их можно использовать для создания правил членства с помощью логических операторов -any и (или) -all.

Свойства Values Использование
assignedPlans Каждый объект в коллекции предоставляет следующие строковые параметры: 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 (_ -startsWith "contoso"))

Использование операторов -any и -all

Вы можете использовать операторы -any и -all для применения условия к одному или ко всем элементам в коллекции соответственно.

  • -any (выполняется, когда условию соответствует хотя бы один элемент в коллекции)
  • -all (выполняется, когда условию соответствуют все элементы в коллекции)

Пример 1

assignedPlans — это многозначное свойство, которое перечисляет все сервисные планы, назначенные пользователю. Представленное ниже выражение отбирает пользователей, которым назначен план обслуживания Exchange Online (план 2), то есть присвоен идентификатор этого плана, и этот план находится в состоянии Enabled:

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

Правила подобного вида позволяют сгруппировать всех пользователей, для которых включен компонент Microsoft 365 (или другая служба Microsoft Online Service). После этого вы сможете применить к этой группе набор политик.

Пример 2

Следующее выражение выбирает всех пользователей, которым назначен любой план обслуживания, связанный со службой Intune (это определяется по имени службы "SCO").

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

Пример 3

Следующее выражение позволяет выбрать всех пользователей, которым не назначен план обслуживания:

user.assignedPlans -all (assignedPlan.servicePlanId -ne null)

Использование синтаксической конструкции с символом подчеркивания (_)

Символ подчеркивания (_) позволяет сопоставить вхождения определенного значения одного из свойств в коллекции многозначных строк, чтобы добавить пользователей или устройства в динамическую группу. Он используется в сочетании с оператором -any или -all.

Ниже приведен пример использования символа подчеркивания (_) в правиле для добавления участников в зависимости от значения user.proxyAddress (это правило также подходит для свойства user.otherMails). Это правило добавляет любого пользователя с прокси-адресом, начинающимся с contoso, в группу.

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

Другие свойства и типичные примеры правил

Создание правила "Непосредственные подчиненные"

Вы можете создать группу, в которую войдут все непосредственные подчиненные определенного руководителя. Если в будущем состав подчиненных этого руководителя изменится, членство в группе скорректируется автоматически.

Правило "Непосредственные подчиненные" создается с помощью следующего синтаксиса:

Direct Reports for "{objectID_of_manager}"

Вот пример допустимого правила, в котором объект руководителя имеет идентификатор "62e19b97-8b3d-4d4a-a106-4ce66896a863":

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

Следующие советы помогут вам правильно использовать правило.

  • Идентификатор менеджера содержит идентификатор объекта руководителя. Его можно найти в параметрах профиля руководителя.
  • Чтобы такое правило работало, следует правильно заполнить свойство Manager для пользователей вашей организации. Вы можете проверить текущее значение в профиле пользователя.
  • Это правило находит только непосредственных подчиненных руководителя. Другими словами, вы не сможете создать группу, включающую прямых подчиненных руководителя и их подчиненных.
  • Это правило нельзя объединять с любыми другими правилами членства.

Создание правила "Все пользователи"

С помощью правила членства можно создать группу, содержащую всех пользователей в организации. В будущем при добавлении пользователей в организацию или удалении их из нее членство в группе будет корректироваться автоматически.

Правило "Все пользователи" создается с помощью одного выражения с оператором -ne и значением null. Это правило добавляет в группу гостевых пользователей B2B, а также пользователей-участников.

user.objectId -ne null

Если вы хотите, чтобы группа включала только сотрудников организации и не включала гостевых пользователей, можно использовать следующий синтаксис:

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

Создание правила "Все устройства"

С помощью правила членства можно создать группу, содержащую все устройства в организации. В будущем при добавлении устройств в организацию или удалении их из нее членство в группе будет корректироваться автоматически.

Правило "Все устройства" создается с помощью одного выражения с оператором -ne и значением null.

device.objectId -ne null

Свойства расширения и пользовательские свойства расширения

В правилах динамического членства поддерживаются атрибуты расширения и пользовательские свойства расширения в виде строковых свойств. Атрибуты расширения могут синхронизироваться из локального каталога Windows Server Active Directory или обновляться с помощью Microsoft Graph, а также принимать формат ExtensionAttributeX, где X равно 1–15. Свойства расширения с несколькими значениями не поддерживаются в правилах динамического членства. Вот пример правила, которое использует в качестве свойства атрибут расширения:

(user.extensionAttribute15 -eq "Marketing")

Пользовательские свойства расширения могут синхронизироваться из локальной службы Windows Server Active Directory или из подключенного приложения SaaS, а также создаваться с помощью Microsoft Graph и имеют формат user.extension_[GUID]_[Attribute], где:

  • [GUID] — это отрезаная версия уникального идентификатора в идентификаторе Microsoft Entra для приложения, создавшего свойство. Содержит только символы 0–9 и A-Z.
  • [Attribute] — имя свойства, с которым оно было создано.

Пример правила, которое использует пользовательское свойство расширения:

user.extension_c272a57b722d4eb29bfe327874ae79cb_OfficeNumber -eq "123"

Настраиваемые свойства расширения также называются свойствами расширения Microsoft Entra или каталогом.

Имя пользовательского свойства можно найти в каталоге, запросив свойство пользователя из обозревателя графов и выполнив поиск по имени свойства. Также теперь вы сможете при создании динамического правила членства перейти по ссылке Get custom extension properties (Получить пользовательские свойства расширения) из конструктора динамических правил для пользовательских групп, ввести уникальный идентификатор приложения и получить полный список пользовательских свойств расширения. Этот список можно обновить, чтобы просмотреть новые пользовательские свойства расширения для выбранного приложения. Атрибуты расширения и пользовательские свойства расширения должны быть получены из приложений в клиенте.

Дополнительные сведения см. в разделе "Использование атрибутов в динамических группах" в статье Microsoft Entra Подключение Sync: расширения каталогов.

Правила для устройств

Можно также создать правило, которое выбирает объекты устройств для членства в группе. Членами одной группы не могут являться одновременно пользователи и устройства.

Примечание.

Атрибут organizationalUnit больше не доступен в списке, и его не следует использовать. Эта строка устанавливается Intune в определенных случаях, но не распознается идентификатором Microsoft Entra, поэтому устройства не добавляются в группы на основе этого атрибута.

Примечание.

systemlabels — это доступный только для чтения атрибут, который невозможно настроить с помощью Intune.

Для Windows 10 правильный формат атрибута deviceOSVersion имеет следующий вид: (device.deviceOSVersion -startsWith "10.0.1"). Форматирование можно проверить с помощью командлета Get-MgDevice PowerShell:

Get-MgDevice -Search "displayName:YourMachineNameHere" -ConsistencyLevel eventual | Select-Object -ExpandProperty 'OperatingSystemVersion'

Можно использовать следующие атрибуты устройства.

Атрибут устройства Values Пример
AccountEnabled true, false device.accountEnabled -eq true
deviceCategory Допустимое имя категории устройств. device.deviceCategory -eq "BYOD"
deviceId допустимый идентификатор устройства Microsoft Entra device.deviceId -eq "d4fe7726-5966-431c-b3b8-cddc8fdb717d"
deviceManagementAppId Допустимый идентификатор приложения MDM в идентификаторе Microsoft Entra device.deviceManagementAppId -eq "0000000a-0000-0000-c000-000000000000" для управляемых устройств Microsoft Intune или "54b943f8-d761-4f8d-951e-9cea1846db5a" для совместно управляемых устройств System Center Configuration Manager
deviceManufacturer Любое строковое значение device.deviceManufacturer -eq "Samsung"
deviceModel Любое строковое значение device.deviceModel -eq "iPad Air"
displayName Любое строковое значение device.displayName -eq "Rob iPhone"
deviceOSType Любое строковое значение (device.deviceOSType -eq "iPad") -or (device.deviceOSType -eq "iPhone")
device.deviceOSType -startsWith "AndroidEnterprise"
device.deviceOSType -eq "AndroidForWork"
device.deviceOSType -eq "Windows"
deviceOSVersion Любое строковое значение device.deviceOSVersion -eq "9.1"
device.deviceOSVersion -startsWith "10.0.1"
deviceOwnership Personal, Company, Unknown device.deviceOwnership -eq "Company"
devicePhysicalIds любое строковое значение, используемое Autopilot, такое как все устройства Autopilot, OrderID или PurchaseOrderID device.devicePhysicalIDs -any _ -startsWith "[ZTDId]"
(device.devicePhysicalIds -any _ -eq "[OrderID]:179887111881"
(device.devicePhysicalIds -any _ -eq "[PurchaseOrderId]:76222342342"
deviceTrustType AzureAD, ServerAD, Workplace device.deviceTrustType -eq "AzureAD"
enrollmentProfileName Имя профиля регистрации устройства Apple, имя профиля регистрации выделенного корпоративного устройства с ОС "Android для бизнеса" или имя профиля Windows Autopilot. device.enrollmentProfileName -eq "DEP iPhones"
extensionAttribute1 Любое строковое значение device.extensionAttribute1 -eq "строковое значение"
extensionAttribute2 Любое строковое значение device.extensionAttribute2 -eq "строковое значение"
extensionAttribute3 Любое строковое значение device.extensionAttribute3 -eq "строковое значение"
extensionAttribute4 Любое строковое значение device.extensionAttribute4 -eq "строковое значение"
extensionAttribute5 Любое строковое значение device.extensionAttribute5 -eq "строковое значение"
extensionAttribute6 Любое строковое значение device.extensionAttribute6 -eq "строковое значение"
extensionAttribute7 Любое строковое значение device.extensionAttribute7 -eq "строковое значение"
extensionAttribute8 Любое строковое значение device.extensionAttribute8 -eq "строковое значение"
extensionAttribute9 Любое строковое значение device.extensionAttribute9 -eq "строковое значение"
extensionAttribute10 Любое строковое значение device.extensionAttribute10 -eq "строковое значение"
extensionAttribute11 Любое строковое значение device.extensionAttribute11 -eq "строковое значение"
extensionAttribute12 Любое строковое значение device.extensionAttribute12 -eq "строковое значение"
extensionAttribute13 Любое строковое значение device.extensionAttribute13 -eq "строковое значение"
extensionAttribute14 Любое строковое значение device.extensionAttribute14 -eq "строковое значение"
extensionAttribute15 Любое строковое значение device.extensionAttribute15 -eq "строковое значение"
isRooted true, false device.isRooted -eq true
managementType MDM (для мобильных устройств). device.managementType -eq "MDM"
memberOf Любое строковое значение (допустимый идентификатор объекта группы) device.memberof -any (group.objectId -in ['value'])
objectId допустимый идентификатор объекта Microsoft Entra device.objectId -eq "76ad43c9-32c5-45e8-a272-7b58b58f596d"
profileType допустимый тип профиля в идентификаторе Microsoft Entra device.profileType -eq "RegisteredDevice"
systemLabels Любая строка, соответствующая свойству устройства Intune, для добавления тегов устройств в Modern Workplace. device.systemLabels -startsWith "M365Managed"

Примечание.

При использовании deviceOwnership для создания динамических групп для устройств необходимо задать значение, равное Companyзначению. В Intune этому значению соответствует тип владения устройством Corporate (Корпоративное). Дополнительные сведения см. в разделе Типы владельцев. При использовании deviceTrustType для создания динамических групп для устройств необходимо задать значение, равное AzureAD представлению устройств, присоединенных к Microsoft Entra, для представления гибридных устройств, присоединенных к Microsoft Entra, ServerAD или Workplace для представления зарегистрированных устройств Microsoft Entra. При использовании extensionAttribute1-15 для создания динамических групп для устройств необходимо задать значение extensionAttribute1-15 на устройстве. Узнайте больше о том, как написать extensionAttributes объект устройства Microsoft Entra

Следующие шаги

В этих статьях содержатся дополнительные сведения о группах в идентификаторе Microsoft Entra.