Microsoft Entra Connect 同步處理:了解預設組態

本文說明現用的組態規則。 它會記錄規則,以及這些規則如何影響設定。 它也會逐步引導您完成 Microsoft Entra 連線 Sync 的預設設定。目標是讀者瞭解組態模型,名為宣告式布建的方式,在真實世界的範例中運作。 本文假設您已經使用安裝精靈來安裝和設定 Microsoft Entra 連線 同步處理。

若要瞭解組態模型的詳細數據,請參閱 瞭解宣告式佈建。

從內部部署到 Microsoft Entra 識別碼的現用規則

您可以在現成組態中找到下列表達式。

用戶現用規則

這些規則也適用於 iNetOrgPerson 物件類型。

使用者物件必須滿足下列專案才能同步處理:

  • 必須有sourceAnchor。
  • 在 Microsoft Entra ID 中建立對象之後,sourceAnchor 就無法變更。 如果值在內部部署變更,物件會停止同步處理,直到 sourceAnchor 變更回其先前的值為止。
  • 必須填入 accountEnabled (userAccountControl) 屬性。 使用 內部部署的 Active Directory 時,此屬性一律存在並填入。

下列使用者物件 不會 同步處理至 Microsoft Entra ID:

  • IsPresent([isCriticalSystemObject]). 請確定 Active Directory 中的許多現成物件,例如內建的系統管理員帳戶,不會同步處理。
  • IsPresent([sAMAccountName]) = False. 請確定沒有 sAMAccountName 屬性的用戶物件不會同步處理。 此案例實際上只會發生在從 NT4 升級的網域中。
  • Left([sAMAccountName], 4) = "AAD_"Left([sAMAccountName], 5) = "MSOL_"。 請勿同步處理 Microsoft Entra 連線 Sync 及其舊版所使用的服務帳戶。
  • 請勿同步處理無法在 Exchange Online 中運作的 Exchange 帳戶。
    • [sAMAccountName] = "SUPPORT_388945a0"
    • Left([mailNickname], 14) = "SystemMailbox{"
    • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0))
    • (Left([sAMAccountName], 4) = "CAS_" && (InStr([sAMAccountName], "}")> 0))
  • 請勿同步處理無法在 Exchange Online 中運作的物件。 CBool(IIF(IsPresent([msExchRecipientTypeDetails]),BitAnd([msExchRecipientTypeDetails],&H21C07000) > 0,NULL))
    此位遮罩 (&H21C07000) 會篩選出下列物件:
    • 開啟郵件功能的公用資料夾(從 1.1.524.0 版起為預覽版)
    • 系統語音應答信箱
    • 信箱資料庫信箱 (系統信箱)
    • 通用安全組(不適用於使用者,但基於舊版原因而存在)
    • 非通用群組(不適用於使用者,但基於舊版原因而存在)
    • 信箱方案
    • 探索信箱
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 請不要同步處理任何複寫犧牲者物件。

適用下列屬性規則:

  • sourceAnchor <- IIF([msExchRecipientTypeDetails]=2,NULL,..). sourceAnchor 屬性不會從連結的信箱參與。 假設如果找到連結的信箱,則會稍後加入實際的帳戶。
  • 只有在mailNickName屬性具有值時,才會同步處理Exchange相關屬性。
  • 當有多個樹系時,會依下列順序取用屬性:
    1. 與登入相關的屬性(例如userPrincipalName)是從具有已啟用帳戶的樹系參與。
    2. 您可以在 Exchange GAL (全域通訊清單) 中找到的屬性,是從樹系中提供 Exchange 信箱。
    3. 如果找不到任何信箱,則這些屬性可能來自任何樹系。
    4. Exchange 相關屬性(GAL 中看不到的技術屬性)是從樹系提供,其中 mailNickname ISNOTNULL
    5. 如果有多個樹系滿足其中一項規則,則會使用 連線 器(樹系)的建立順序(日期/時間)來判斷哪些樹系會貢獻屬性。 第一個連線的樹系將是要同步的第一個樹系。

連絡現用規則

聯絡人物件必須滿足下列專案才能同步處理:

  • 必須具有郵件屬性值。
  • 聯繫人必須啟用郵件功能。 它會使用下列規則進行驗證:
    • IsPresent([proxyAddresses]) = True). 必須填入 proxyAddresses 屬性。
    • 您可以在 proxyAddresses 屬性或郵件屬性中找到主要電子郵件位址。 @ 的存在是用來驗證內容是否為電子郵件位址。 這兩個規則之一必須評估為 True。
      • (Contains([proxyAddresses], "SMTP:") > 0) && (InStr(Item([proxyAddresses], Contains([proxyAddresses], "SMTP:")), "@") > 0)). 是否有具有 “SMTP:” 的專案,如果有的話,可以在字串中找到 @ 嗎?
      • (IsPresent([mail]) = True && (InStr([mail], "@") > 0). 郵件屬性是否已填入,如果是,可以在字串中找到 @ 嗎?

下列聯絡人物件 不會 同步處理至 Microsoft Entra ID:

  • IsPresent([isCriticalSystemObject]). 請確定沒有標記為重要的連絡人物件進行同步處理。 不應該是任何具有預設組態的 。
  • ((InStr([displayName], "(MSOL)") > 0) && (CBool([msExchHideFromAddressLists]))).
  • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0)). 這些對象無法在 Exchange Online 中使用。
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 請不要同步處理任何複寫犧牲者物件。

分組現用規則

群組物件必須滿足下列專案才能同步處理:

  • 必須少於 250,000 個成員。 此計數是內部部署群組中的成員數目。
    • 如果第一次開始同步處理之前有更多成員,則不會同步處理群組。
    • 如果成員數目從最初建立時成長,則在達到 250,000 個成員時,它會停止同步處理,直到成員資格計數再次低於 250,000。
    • 注意:Microsoft Entra ID 也會強制執行 250,000 個成員資格計數。 即使修改或移除此規則,您也無法將群組與更多成員同步處理。
  • 如果群組是 通訊群組,則也必須啟用郵件。 請參閱 強制執行此規則的現用外規則

下列群組物件 不會 同步處理至 Microsoft Entra ID:

  • IsPresent([isCriticalSystemObject]). 請確定 Active Directory 中的許多現成物件,例如內建的系統管理員群組,不會同步處理。
  • [sAMAccountName] = "MSOL_AD_Sync_RichCoexistence". DirSync 所使用的舊版群組。
  • BitAnd([msExchRecipientTypeDetails],&amp;H40000000). 角色群組。
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0). 請不要同步處理任何複寫犧牲者物件。

ForeignSecurityPrincipal 現用規則

FSP 會聯結至 Metaverse 中的 “any” \ 物件。 事實上,此聯結只會針對使用者和安全組進行。 此設定可確保跨樹系成員資格在 Microsoft Entra 標識碼中解析並正確表示。

計算機現用規則

電腦物件必須滿足下列專案才能同步處理:

  • userCertificate ISNOTNULL. 只有 Windows 10 計算機會填入此屬性。 具有此屬性值的所有計算機物件都會同步處理。

了解現用規則案例

在此範例中,我們會使用部署搭配一個帳戶樹系 (A)、一個資源樹系 (R),以及一個 Microsoft Entra 目錄。

Picture with scenario description

在此設定中,假設帳戶樹系中有已啟用帳戶,且資源樹系中有已停用的帳戶與連結信箱。

我們的預設組態目標是:

  • 與登入相關的屬性會從樹系與已啟用的帳戶同步處理。
  • 在 GAL (全域通訊清單) 中找到的屬性會從樹系與信箱進行同步處理。 如果找不到任何信箱,則會使用任何其他樹系。
  • 如果找到連結信箱,則必須找到已啟用連結的帳戶,才能將對象匯出至 Microsoft Entra ID。

同步處理規則編輯器

您可以使用 [同步處理規則編輯器] 工具來檢視和變更組態,並在 [開始] 選單中找到它的快捷方式。

Synchronization Rules Editor icon

SRE 是一種資源套件工具,且會隨 Microsoft Entra 連線 Sync 一起安裝。若要能夠啟動它,您必須是ADSync管理員 s 群組的成員。 啟動時,您會看到類似如下的內容:

Synchronization Rules Inbound

在此窗格中,您會看到為組態建立的所有同步處理規則。 數據表中的每個行都是一個同步處理規則。 在左側的 [規則類型] 底下,會列出兩個不同的類型:輸入和輸出。 輸入和輸出來自Metaverse的檢視。 您主要將著重於此概觀中的輸入規則。 同步處理規則的實際清單取決於AD中偵測到的架構。 在上圖中,帳戶樹系 (fabrikamonline.com) 沒有任何服務,例如 Exchange 和 Lync,而且尚未為這些服務建立任何同步處理規則。 不過,在資源樹系 (res.fabrikamonline.com) 中,您會找到這些服務的同步處理規則。 規則的內容會根據偵測到的版本而有所不同。 例如,在具有 Exchange 2013 的部署中,設定的屬性流程比 Exchange 2010/2007 多。

同步處理規則

同步處理規則是一個組態物件,其中一組屬性會在滿足條件時流動。 它也可用來描述連接器空間中的物件如何與 Metaverse 中的對象相關,稱為 聯結比對。 同步處理規則具有優先順序值,指出它們彼此的關聯性。 具有較低數值的同步處理規則具有較高的優先順序,而且在屬性流程衝突中,較高的優先順序會贏得衝突解決。

例如,查看 AD 中的同步處理規則 – 使用者帳戶啟用。 在 SRE 中標示這一行,然後選取 [ 編輯]。

由於此規則是現成的規則,因此您在開啟規則時會收到警告。 您不應該對 現成規則進行任何變更,因此系統會詢問您的意圖。 在此情況下,您只想要檢視規則。 選取

Synchronization Rules warning

同步處理規則有四個組態區段:描述、範圍篩選、聯結規則和轉換。

描述

第一個區段提供基本資訊,例如名稱和描述。

Description tab in Sync rule editor

您也可以找到此規則所關聯之連接的系統、其所套用之連接系統中的物件類型,以及 Metaverse 物件類型的相關信息。 無論來源物件類型是使用者、iNetOrgPerson 或連絡人,Metaverse 物件類型一律為人員。 Metaverse 物件類型不應該變更,因此會建立為泛型類型。 連結類型可以設定為 Join、StickyJoin 或 Provision。 此設定可與 [聯結規則] 區段搭配運作,稍後會討論。

您也可以看到此同步處理規則用於密碼同步處理。如果使用者在此同步處理規則的範圍內,密碼會從內部部署同步處理到雲端(假設您已啟用密碼同步處理功能)。

範圍篩選

[範圍篩選] 區段是用來設定何時應套用同步處理規則。 由於您查看的同步處理規則名稱表示它只應該套用給已啟用的使用者,所以已設定範圍,因此 AD 屬性 userAccountControl 不得設定位 2。 當同步處理引擎在 AD 中尋找使用者時,它會在 userAccountControl 設定為十進位值 512 時套用此同步處理規則(已啟用一般使用者)。 當使用者將 userAccountControl 設定為514時,它不會套用規則(停用一般使用者)。

Screenshot that shows the

範圍篩選條件具有可巢狀的群組和子句。 必須滿足群組內的所有子句,才能套用同步處理規則。 定義多個群組時,至少必須滿足一個群組才能套用規則。 也就是說,會在群組之間評估邏輯 OR,並在群組內評估邏輯 AND。 您可以在輸出同步處理排除 至 Microsoft Entra ID – Group Join 中找到此設定的範例。 有數個同步處理篩選群組,例如一個用於安全組 (securityEnabled EQUAL True) 和一個用於通訊群組 (securityEnabled EQUAL False)。

Scoping tab in Sync rule editor

此規則可用來定義應布建至 Microsoft Entra 識別碼的群組。 通訊群組必須啟用郵件,才能與 Microsoft Entra ID 同步處理,但對於安全組而言,不需要電子郵件。

加入規則

第三個區段是用來設定連接器空間中的物件與Metaverse中對象的關係。 您稍早查看的規則沒有任何聯結規則的設定,因此您會從 AD – 使用者聯結查看 In。

Join rules tab in Sync rule editor

聯結規則的內容取決於安裝精靈中選取的相符選項。 針對輸入規則,評估會以來源連接器空間中的對象開始,而聯結規則中的每個群組會依序評估。 如果使用其中一個聯結規則,評估來源物件來比對 Metaverse 中的一個物件,則會聯結物件。 如果已評估所有規則且沒有相符專案,則會使用描述頁面上的連結類型。 如果此組態設定為 [布建],則會在目標 Metaverse 中建立新的物件,如果聯結準則中至少有一個屬性存在(具有值)。 若要將新的物件布建至 Metaverse,也稱為 將物件投影 至 Metaverse。

聯結規則只會評估一次。 聯結連接器空間物件和 Metaverse 物件時,只要同步處理規則的範圍仍滿足,它們就會保持聯結。

評估同步處理規則時,只有一個已定義聯結規則的同步處理規則必須位於範圍內。 如果找到一個物件有多個具有聯結規則的同步處理規則,則會擲回錯誤。 基於這個理由,最佳做法是只有一個同步處理規則與聯結定義,而當多個同步處理規則位於對象的範圍內時。 在 Microsoft Entra 連線 Sync 的現成組態中,查看名稱並尋找名稱結尾有 Join 一字的規則。 未定義任何聯結規則的同步處理規則會在另一個同步處理規則將對象聯結在一起或在目標中布建新物件時套用屬性流程。

如果您查看上圖,您可以看到規則嘗試將 objectSID 與 msExchMasterAccountSid (Exchange) 和 msRTCSIP-OriginatorSid (Lync) 聯結,這是我們在帳戶資源樹系拓撲中預期的結果。 您可以在所有樹系上找到相同的規則。 假設每個樹系可以是帳戶或資源樹系。 如果您的帳戶位於單一樹系中,而且不需要加入,則此設定也會運作。

轉換

轉換區段會定義所有屬性流程,這些流程會在聯結物件且滿足範圍篩選條件時套用至目標物件。 回到 [從 AD – 使用者帳戶][啟用同步處理規則],您會發現下列轉換:

Transformations tab in Sync rule editor

若要將此組態放在內容中,請在 Account-Resource 樹系部署中,預期會在帳戶樹系中尋找已啟用的帳戶,以及具有 Exchange 和 Lync 設定的資源樹系中已停用的帳戶。 您查看的同步處理規則包含登入所需的屬性,而且這些屬性應該會從已啟用帳戶的樹系流動。 所有這些屬性流程都會放在一個同步處理規則中。

轉換可以有不同的類型:常數、直接和表達式。

  • 常數流程一律會流動硬式編碼的值。 在上述案例中,它一律會在名為 accountEnabled 的 Metaverse 屬性中設定 True
  • 直接流程一律會將來源中的屬性值依目前方式流向目標屬性。
  • 第三個流程類型是 Expression,它允許更進階的設定。

表達式語言為 VBA (Visual Basic for Applications),因此具有 Microsoft Office 或 VBScript 體驗的人員會辨識格式。 屬性會以方括弧 [attributeName] 括住。 屬性名稱和函式名稱會區分大小寫,但同步處理規則編輯器會評估表示式,並在表達式無效時提供警告。 所有表達式都會以具有巢狀函式的單一行表示。 若要顯示組態語言的強大功能,以下是 pwdLastSet 的流程,但插入其他批注:

// If-then-else
IIF(
// (The evaluation for IIF) Is the attribute pwdLastSet present in AD?
IsPresent([pwdLastSet]),
// (The True part of IIF) If it is, then from right to left, convert the AD time format to a .NET datetime, change it to the time format used by Azure AD, and finally convert it to a string.
CStr(FormatDateTime(DateFromNum([pwdLastSet]),"yyyyMMddHHmmss.0Z")),
// (The False part of IIF) Nothing to contribute
NULL
)

如需屬性流程之表達式語言的詳細資訊,請參閱 瞭解宣告式布建運算式

優先順序

您現在已查看一些個別的同步處理規則,但是這些規則會在組態中一起運作。 在某些情況下,屬性值會從多個同步處理規則提供給相同的目標屬性。 在此情況下,會使用屬性優先順序來判斷哪一個屬性會獲勝。 例如,查看屬性 sourceAnchor。 此屬性是能夠登入 Microsoft Entra ID 的重要屬性。 您可以在兩個不同的同步處理規則中找到此屬性的屬性流程: In from AD – User AccountEnabledIn from AD – User Common。 由於同步處理規則優先順序,sourceAnchor 屬性會先從樹系中提供已啟用帳戶的樹系,當有數個對象聯結至 Metaverse 物件時。 如果沒有啟用的帳戶,同步處理引擎會使用AD – 使用者通用的 Catch-all 同步處理規則 In。 此設定可確保即使已停用的帳戶,仍有sourceAnchor。

Synchronization Rules Inbound

同步處理規則的優先順序是由安裝精靈在群組中設定。 群組中的所有規則都有相同的名稱,但它們會連線到不同的已連線目錄。 安裝精靈會提供來自AD – 用戶聯結最高優先順序的規則,並逐一查看所有連線的AD目錄。 然後,它會依預先定義的順序繼續進行下一組規則。 在群組內,規則會依精靈中新增 連線 器的順序新增。 如果透過精靈新增另一個 連線 or,則會重新排序同步處理規則,並在每個群組中最後插入新的 連線 or 規則。

融會貫通

我們現在已足夠瞭解同步處理規則,以便了解組態如何與不同的同步處理規則搭配運作。 如果您檢視參與 Metaverse 的使用者和屬性,規則會依下列順序套用:

名稱 註解
從 AD - 使用者加入 使用 Metaverse 聯結連接器空間對象的規則。
In from AD – UserAccount Enabled 登入 Microsoft Entra ID 和 Microsoft 365 所需的屬性。 我們想要從已啟用的帳戶取得這些屬性。
In from AD – User Common from Exchange 在全域通訊清單中找到的屬性。 我們假設數據品質在找到使用者信箱的樹系中最好。
In from AD – User Common 在全域通訊清單中找到的屬性。 如果找不到信箱,任何其他聯結的物件都可以貢獻屬性值。
In from AD – User Exchange 只有在偵測到 Exchange 時才存在。 它會流動所有基礎結構 Exchange 屬性。
從 AD - 使用者 Lync 只有在偵測到 Lync 時才存在。 它會流動所有基礎結構 Lync 屬性。

下一步

  • 深入了解瞭解宣告式佈建中的組態模型。
  • 在瞭解宣告式布建表示式深入了解表達式語言。
  • 繼續閱讀瞭解使用者和聯繫人中的 現用組態如何運作
  • 請參閱如何對預設組態進行變更,瞭解如何使用宣告式布建進行實際變更。

概觀主題