Поделиться через


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

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

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

Примечание.

Группы безопасности можно использовать для устройств или пользователей, но группы Microsoft 365 могут включать только пользователей.

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

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

Примечание.

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

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

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

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

Примечание.

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

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

Снимок экрана: добавление правила членства для динамической группы членства.

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

Одно выражение — это минимально возможная форма для правил членства, не содержащая только упомянутые выше три части. Правило с одним выражением выглядит примерно так: 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 или система ключевых слов.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 "aaaa-0000-1111-2222-bbbbbb"
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, или, а не логическим операторам. Логические операторы можно комбинировать друг с другом.

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

(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.

Свойства Значения Использование
assignedPlans Каждый объект в коллекции предоставляет следующие строковые параметры: capabilityStatus, service, servicePlanId user.assignedPlans -any (assignedPlan.servicePlanId -eq "aaaa0a0a-bb1b-cc2c-dd3d-eeee4e4e4e4e4e4e" -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 -eq null)

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

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

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

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

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

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

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

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

Direct Reports for "{objectID_of_manager}"

Ниже приведен пример допустимого правила, где "aaaaaaaa-0000-1111-2222-bbbb" является объектным идентификатором диспетчера:

Direct Reports for "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"

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

  • Идентификатор менеджера содержит идентификатор объекта руководителя. Его можно найти в параметрах профиля руководителя.
  • Чтобы такое правило работало, следует правильно заполнить свойство 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 или каталогом.

Имя пользовательского свойства можно найти в каталоге, запросив свойство пользователя из обозревателя графов и выполнив поиск по имени свойства. Кроме того, теперь можно выбрать ссылку "Получить настраиваемые свойства расширения" в построителе правил динамических групп членства, чтобы ввести уникальный идентификатор приложения и получить полный список свойств настраиваемых расширений, используемых при создании правила для динамических групп членства. Этот список можно обновить, чтобы просмотреть новые пользовательские свойства расширения для выбранного приложения. Атрибуты расширения и пользовательские свойства расширения должны быть получены из приложений в клиенте.

Дополнительные сведения см. в разделе "Использование атрибутов в динамических группах членства" в статье Microsoft Entra Connect 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'

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

Атрибут устройства Значения Пример
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 "iOS")
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 "aaaa-0000-1111-2222-bbbb"
profileType допустимый тип профиля в идентификаторе Microsoft Entra device.profileType -eq "RegisteredDevice"
systemLabels Строка только для чтения, соответствующая свойству устройства Intune для тегов современных устройств Workplace device.systemLabels -startsWith "M365Managed" SystemLabels

Примечание.

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

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

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