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