Создание более простых, более эффективных правил для динамических групп членства в идентификаторе Microsoft Entra
Группа инженеров Microsoft Entra ID, часть Microsoft Entra, получает отчеты об инцидентах, связанных с динамическими группами членства и временем обработки правил членства. Сообщаемые сведения представлены в этой статье. В этой статье также рассматриваются наиболее распространенные методы, с помощью которых Корпорация Майкрософт помогает клиентам упростить свои правила для динамических групп членства. Более простые и эффективные правила приводят к сокращению времени обработки динамических групп.
При написании правил членства для динамических групп членства выполните действия, описанные в этой статье, чтобы обеспечить максимально эффективное создание этих правил.
Постарайтесь поменьше использовать оператор MATCH
Старайтесь как можно реже использовать оператор match
в правилах. Вместо этого изучите, можно ли использовать startswith
операторы или -eq
операторы. Рекомендуется использовать другие свойства, позволяющие создавать правила для выбора пользователей, которые должны находиться в группе, без использования оператора -match
. Например, если требуется правило для группы для всех пользователей, находящихся в городе Lagos, вместо использования таких правил:
user.city -match "ago"
user.city -match ".*?ago.*"
Лучше использовать такие правила:
user.city -startswith "Lag"
Или лучше всего:
user.city -eq "Lagos"
Минимизация использования CONTAINS
Аналогично использованию MATCH. Старайтесь как можно реже использовать оператор contains
в правилах. Вместо этого изучите, можно ли использовать startswith
операторы или -eq
операторы. Использование CONTAINS может увеличить время обработки, особенно для клиентов с множеством динамических групп членства.
Используйте меньше операторов OR
В правиле определите, когда оно использует различные значения для одного свойства, связанные с помощью операторов -or
. Вместо этого объедините их в один критерий с помощью оператора -in
, чтобы упростить оценку правила. Например, вместо такого правила:
(user.department -eq "Accounts" -and user.city -eq "Lagos") -or
(user.department -eq "Accounts" -and user.city -eq "Ibadan") -or
(user.department -eq "Accounts" -and user.city -eq "Kaduna") -or
(user.department -eq "Accounts" -and user.city -eq "Abuja") -or
(user.department -eq "Accounts" -and user.city -eq "Port Harcourt")
Лучше использовать такое правило:
user.department -eq "Accounts" -and user.city -in ["Lagos", "Ibadan", "Kaduna", "Abuja", "Port Harcourt"]
И наоборот, определите схожие дополнительные вложенные критерии с одинаковым свойством, не равным различным значениям, связанным с помощью операторов -and
. Затем объедините их в один критерий с помощью оператора -notin
, чтобы сделать правило более понятным и упростить его оценку. Например, вместо такого правила:
(user.city -ne "Lagos") -and (user.city -ne "Ibadan") -and (user.city -ne "Kaduna") -and (user.city -ne "Abuja") -and (user.city -ne "Port Harcourt")
Лучше использовать следующее правило:
user.city -notin ["Lagos", "Ibadan", "Kaduna", "Abuja", "Port Harcourt"]
Избегайте избыточных критериев
Убедитесь, что в правиле не используются избыточные критерии. Например, вместо такого правила:
user.city -eq "Lagos" or user.city -startswith "Lag"
Лучше использовать следующее правило:
user.city -startswith "Lag"