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"