前文介紹過 Directory Extensions 的功能,本文說明微軟自己在 Directory Extensions 的應用。我們可以透過 Entra Connect Sync 將地端的 AD 使用者清單同步到 Entra ID 中,其中有一些使用者的欄位就被微軟放置在 Directory Extensions 中,將說明其原理。
Entra Connect Sync
Entra Connect Sync 是一款工具,專為將 Microsoft Entra ID 與本地 Active Directory (AD) 同步而設計。它的主要功能是將本地 AD 中的用戶、群組和其他對象的屬性同步至 Entra ID,讓用戶能夠在雲端和本地環境中進行一致的身份驗證和授權。透過 Entra Connect Sync,企業可以實現單一登入 (SSO),簡化身份管理,同時保持雲端和本地環境的同步,確保用戶的帳號資料是最新的。
通常需要在相同 AD 的地端環境架設一台 Windows Server,安裝 Azure AD Connect 應用程式,並登入 Entra ID 帳號,就會每 30 分鐘同步到雲端。

參考資料:
- Microsoft Entra Connect 同步:理解和自訂同步處理
- Microsoft Entra Connect 同步處理:了解預設組態
- Microsoft Entra Connect 的自訂安裝
AD 與 Entra ID 的欄位
並不是所有欄位預設都會透過 Entra Connect 從 AD 同步到 Entra ID,這部分就要另外開啟同步,而且會被同步到 Directory Extensions 中。舉個例子,AD 中帳號過期日(accountExpires)、員工類型 (employeeType)、帳號啟用日 (whenCreated) ,就是這樣的案例。
要同步這些預設不會同步的欄位,要到設定中把這些欄位選擇起來,如下圖所示。

參考資料:
- Microsoft Entra Connect Sync:同步處理至 Microsoft Entra ID 的屬性
- Microsoft Entra Connect 同步:目錄擴充
- 同步處理擴充屬性以進行 Microsoft Entra 應用程式佈建
Directory Extensions
上述欄位會被同步到一個微軟建立的 Entra ID 應用程式「Tenant Schema Extension App」,這裡要複製他的應用程式識別碼。

欄位格式會是 extenstion_<appid>_<attr>。其中 appid 為應用程式識別碼,且去掉 -,attr 為 AD 欄位名稱,英文大小寫需完全
假設應用程式識別碼是 12345678-abcd-1234-efgh-123456789012,我們將 employeeType 同步到 Entra ID,那他的欄位會是 extension_12345678abcd1234efgh123456789012_employeeType。
透過 Graph Explorer 可以進行測試,可以取得 employeeType。
GET https://graph.microsoft.com/v1.0/me?$select=extension_<appid>_employeeType
查看應用程式的 Directory Extensions 資訊
要知道應用程式有哪些 Directory Extensions 目前只能透過 API 取得,在 Azure Portal 無法查看。
我們需要取得 Tenant Schema Extension App 的物件識別碼,這裡要注意不是上面的應用程式的識別碼。
並透過 Graph Explorer 取的 Directory Extensions 資訊,objectid 為物件識別碼,是否包含 -都可以。要做此動作要授權 Graph Explorer 有 Application.Read.All 的權限,否則會無權讀取。
GET https://graph.microsoft.com/v1.0/applications/<objectid>/extensionProperties取出來的資訊如下圖所示,會包含欄位全稱、應用的目標物件(這裡是 Users ,代表是使用者的擴充欄位)、型別等等。

參考資料: