750 字
4 分鐘
Entra ID Directory Extensions 與 Connect Sync
2024-11-15
無標籤

前文介紹過 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 分鐘同步到雲端。

參考資料:


AD 與 Entra ID 的欄位#

並不是所有欄位預設都會透過 Entra Connect 從 AD 同步到 Entra ID,這部分就要另外開啟同步,而且會被同步到 Directory Extensions 中。舉個例子,AD 中帳號過期日(accountExpires)、員工類型 (employeeType)、帳號啟用日 (whenCreated) ,就是這樣的案例。

要同步這些預設不會同步的欄位,要到設定中把這些欄位選擇起來,如下圖所示。

參考資料:


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。

Terminal window
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 的權限,否則會無權讀取。

Terminal window
GET https://graph.microsoft.com/v1.0/applications/<objectid>/extensionProperties

取出來的資訊如下圖所示,會包含欄位全稱、應用的目標物件(這裡是 Users ,代表是使用者的擴充欄位)、型別等等。

參考資料: