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


Создание более простых, более эффективных правил для динамических групп членства в идентификаторе Microsoft Entra

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

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

Минимизация использования оператора -match

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

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

  • 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"