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

Zespół firmy Microsoft Entra ID, część firmy Microsoft Entra, otrzymuje raporty o zdarzeniach związanych z grupami dynamicznymi i czas przetwarzania reguł członkostwa. W tym artykule użyto tych zgłoszonych informacji, aby przedstawić najbardziej typowe metody, za pomocą których nasz zespół inżynierów pomaga klientom uprościć reguły członkostwa. Prostsze i bardziej wydajne reguły powodują lepsze czasy przetwarzania grup dynamicznych. Podczas pisania reguł członkostwa dla grup dynamicznych wykonaj następujące kroki, aby upewnić się, że 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 grupami dynamicznymi.

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