共用方式為


在 Microsoft Entra ID 中為組動態成員資格群組建立更簡單且更有效率的規則

Microsoft Entra ID 工程小組 (Microsoft Entra 的一部分) 會收到與組動態成員資格群組相關的事件報告,以及其成員資格規則的處理時間。 本文會提供所報告的資訊。 本文也會討論 Microsoft 最常採用的方法,以協助客戶簡化組動態成員資格群組規則。 更簡單且更有效率的規則會導致更好的動態群組處理時間。

為組動態成員資格群組撰寫成員資格規則時,請遵循本文所述步驟來確保建立盡可能有效率的規則。

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

下一步