Udostępnij za pośrednictwem


Tworzenie prostszych, bardziej wydajnych reguł dla dynamicznych grup członkostwa w usłudze Microsoft Entra ID

Zespół inżynierów firmy Microsoft Entra ID, część firmy Microsoft Entra, otrzymuje raporty o zdarzeniach związanych z dynamicznymi grupami członkostwa i czas przetwarzania reguł członkostwa. Informacje zgłaszane są przedstawione w tym artykule. W tym artykule omówiono również najbardziej typowe metody, za pomocą których firma Microsoft pomaga klientom uprościć reguły dla dynamicznych grup członkostwa. Prostsze i bardziej wydajne reguły powodują lepsze czasy przetwarzania grup dynamicznych.

Podczas pisania reguł członkostwa dla dynamicznych grup członkostwa wykonaj kroki opisane w tym artykule, aby upewnić się, że te reguły są tak wydajne, jak to możliwe.

Minimalizuj użycie funkcji MATCH

Zminimalizuj użycie match operatora w regułach tak bardzo, jak to możliwe. Zamiast tego sprawdź, czy można użyć operatorów startswith or -eq . Rozważając użycie innych właściwości, które umożliwiają pisanie reguł w celu wybrania użytkowników, którzy mają znajdować się w grupie bez korzystania z -match operatora . Jeśli na przykład chcesz utworzyć regułę dla grupy dla wszystkich użytkowników, których miasto to Lagos, zamiast używać reguł, takich jak:

  • user.city -match "ago"
  • user.city -match ".*?ago.*"

Lepiej używać reguł, takich jak:

  • user.city -startswith "Lag"

Lub, najlepiej ze wszystkich:

  • user.city -eq "Lagos"

Minimalizuj użycie funkcji CONTAINS

Podobnie jak w przypadku użycia funkcji MATCH. Zminimalizuj użycie contains operatora w regułach tak bardzo, jak to możliwe. Zamiast tego sprawdź, czy można użyć operatorów startswith or -eq . Użycie funkcji CONTAINS może zwiększyć czas przetwarzania, szczególnie w przypadku dzierżaw z wieloma dynamicznymi grupami członkostwa.

Używanie mniejszej liczby operatorów OR

W regule zidentyfikuj, kiedy używa różnych wartości dla tej samej właściwości połączonej z operatorami -or . Zamiast tego użyj -in operatora , aby pogrupować je w jedno kryterium, aby ułatwić ocenę reguły. Na przykład zamiast reguły podobnej do następującej:

(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")

Lepiej jest mieć regułę podobną do następującej:

  • user.department -eq "Accounts" -and user.city -in ["Lagos", "Ibadan", "Kaduna", "Abuja", "Port Harcourt"]

Z drugiej strony zidentyfikuj podobne kryteria podrzędne z tą samą właściwością, która nie jest równa różnym wartościom, które są połączone z operatorami -and . Następnie użyj -notin operatora , aby pogrupować je w jedno kryterium, aby ułatwić zrozumienie i ocenę reguły. Na przykład zamiast używać reguły podobnej do następującej:

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

Lepiej użyć reguły podobnej do następującej:

  • user.city -notin ["Lagos", "Ibadan", "Kaduna", "Abuja", "Port Harcourt"]

Unikaj nadmiarowych kryteriów

Upewnij się, że nie używasz kryteriów nadmiarowych w regule. Na przykład zamiast używać reguły podobnej do następującej:

  • user.city -eq "Lagos" or user.city -startswith "Lag"

Lepiej użyć reguły podobnej do następującej:

  • user.city -startswith "Lag"

Następne kroki