在 Microsoft Entra ID 中為動態群組建立更簡單、更有效率的規則

Microsoft Entra 標識符小組是 Microsoft Entra 的一部分,會接收與動態群組相關的事件報告,以及其成員資格規則的處理時間。 本文使用報告的信息來呈現我們工程小組協助客戶簡化其成員資格規則的最常見方法。 更簡單且更有效率的規則會產生更佳的動態群組處理時間。 撰寫動態群組的成員資格規則時,請遵循下列步驟,以確保您的規則盡可能有效率。

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

下一步