適用於 Microsoft Graph 的 Microsoft Identity Manager 連接器
總結
適用於 Microsoft Graph 的
涵蓋的案例
B2B 帳戶生命週期管理
Microsoft Identity Manager 的 Microsoft Graph 連接器的初始使用情境是作為一個連接器,協助自動化外部使用者的 AD DS 帳戶生命週期管理。 在此情境中,組織會使用 Microsoft Entra Connect,將員工從 AD DS 同步處理至 Microsoft Entra ID,並且也會邀請來賓進入其 Microsoft Entra 目錄。 邀請來賓會導致外部用戶對象位於該組織的 Microsoft Entra 目錄,該目錄不在該組織的 AD DS 中。 然後,組織希望透過 Microsoft Entra 應用程式 Proxy 或其他閘道機制,授予這些來賓存取使用 Windows 整合式驗證或 Kerberos 的內部部署應用程式的權限。 Microsoft Entra 應用程式 Proxy 需要每個使用者有自己的 AD DS 帳戶,才能進行識別和委派。
若要瞭解如何設定 MIM 同步以自動建立和維護來賓的 AD DS 帳戶,閱讀本文中的指示後,繼續閱讀 MIM 2016 和 Microsoft Entra 應用程式 Proxy 的 Microsoft Entra 企業對企業 (B2B) 合作一文。 本文說明連接器所需的同步處理規則。
其他身分識別管理案例
連接器可用於其他特定的身分識別管理案例,這些案例不僅僅是將使用者和群組同步處理至 Microsoft Entra ID,還包括建立、讀取、更新和刪除 Microsoft Entra ID 中的使用者、群組及聯繫人物件。 評估潛在場景時,請記住:此連接器不能在會導致資料流程重疊或與 Microsoft Entra Connect 部署發生實際或潛在同步衝突的情況下運作。 Microsoft Entra Connect,建議將內部部署目錄與Microsoft Entra 識別元整合,方法是將使用者和群組從內部部署目錄同步至Microsoft Entra ID。 Microsoft Entra Connect 具有更多同步功能,可以實現如密碼和裝置回寫等場景,而這些場景是 MIM 所建立的物件無法做到的。 例如,如果數據被帶入AD DS中,請確定它已從Microsoft Entra Connect 中排除,嘗試將這些物件比對回Microsoft Entra 目錄。 此連接器也無法用來變更由 Microsoft Entra Connect 所建立Microsoft Entra 物件。
準備使用 Microsoft Graph 連接器
授權連接器擷取或管理您 Microsoft Entra 目錄中的物件
連接器需要在 Microsoft Entra ID 中創建 Web 應用程式/API 應用程式,以便透過 Microsoft Graph 獲得適當的許可權來操作 Microsoft Entra 物件。
圖片 1. 新增應用程式註冊
在 Azure 入口網站中,開啟已建立的應用程式,並將應用程式識別碼儲存為用戶端識別碼,以供稍後在 MA 的連線頁面上使用:
開啟 憑證 & 機密以生成新的客戶端密碼。 設定一些金鑰描述,然後選取持續時間上限。 儲存變更並擷取客戶端密碼。 離開頁面之後,將無法再次檢視客戶端密碼值。
圖片 2. 新增客戶端密碼
開啟 「API 許可權」,將適當的「Microsoft Graph」許可權授與應用程式
圖片 3。 新增 API
選取 [Microsoft Graph] 應用程式許可權。
撤銷所有不必要的許可權。
視案例而定,應將下列許可權新增至應用程式,以允許它使用「Microsoft Graph API」:
使用物件進行作業 需要許可權 許可權類型 架構偵測 Application.Read.All
應用 匯入群組 Group.Read.All
或Group.ReadWrite.All
應用 匯入使用者 User.Read.All
、User.ReadWrite.All
、Directory.Read.All
或Directory.ReadWrite.All
應用 如需所需權限的詳細資訊,請參閱 許可權參考。
注意
Application.Read.All 許可權是偵測架構所必須的,且無論連接器所使用的物件類型如何,都必須授予此許可權。
- 授予管理員對所選許可權的同意。
安裝連接器
- 安裝連接器之前,請確定您在同步伺服器上具有以下項目:
- Microsoft .NET 4.6.2 Framework 或更新版本
- Microsoft Identity Manager 2016 SP2,且必須使用 Hotfix 4.4.1642.0 KB4021562 或更新版本。
Microsoft Graph 連接器和其他適用於 Microsoft Identity Manager 2016 SP2 的連接器可從 Microsoft 下載中心下載。
重新啟動 MIM 同步處理服務。
連接器組態
- 在 Synchronization Service Manager 的用戶介面中,選取 [連接器],然後 [建立]。 選取 [Graph Microsoft]、建立連接器,併為其指定描述性名稱。
- 在 MIM 同步處理服務 UI 中,指定應用程式識別碼和產生的客戶端密碼。 MIM 同步中設定的每個管理代理程式都應該在 Microsoft Entra ID 中有自己的應用程式,以避免對相同應用程式平行進行匯入操作。
圖片 4. 連線頁面
連線頁面(圖片 4)包含使用的 Graph API 版本和租戶名稱。 [用戶端識別符] 和 [客戶端密碼] 代表先前 Microsoft在 entra ID 中建立之應用程式的 [應用程式識別符] 和 [金鑰] 值。
連接器預設為 v1.0,以及 Microsoft Graph 全域服務的登入和圖形端點。 如果您的租用戶位於國家雲端,則必須更改您的設定,以使用國家雲端的
- 在 [全域參數] 頁面上進行任何必要的變更:
圖片 5. 全域參數頁面
全域參數頁面包含下列設定:
DateTime 格式 – 用於任何具有 Edm.DateTimeOffset 類型之屬性的格式。 所有日期都會在匯入期間使用該格式轉換成字串。 設定格式會套用至儲存日期的任何屬性。
HTTP 逾時(秒)– 每次 HTTP 呼叫 Graph 時使用的逾時秒數。
在下一次登入時強制變更已建立使用者的密碼 – 此選項用於匯出期間建立的新使用者。 如果選項已啟用,則 forceChangePasswordNextSignIn 屬性會設定為 true,否則為 false。
設定連接器架構和作業
- 設定架構。 當與 Graph v1.0 端點搭配使用時,連接器支援下列物件類型清單:
使用者
完整/差異匯入
匯出 (新增、更新、刪除)
群
完整/差異匯入
匯出 (新增、更新、刪除)
當您將連接器設定為使用 Graph Beta 端點時,可能會顯示其他物件類型。
支援的屬性型態清單:
Edm.Boolean
Edm.String
Edm.DateTimeOffset
(連接器空間中的字串)microsoft.graph.directoryObject
(在連接器空間中參考任何支援的物件)microsoft.graph.contact
上述清單中的任何類型也支援多重值屬性 (Collection)。
連接器使用『id
』屬性作為錨點,並針對所有物件使用 DN。 因此,不需要重新命名,因為 Graph API 不允許物件變更其 id
屬性。
存取令牌存留期
圖形應用程式需要存取令牌,以存取圖形 API。 連接器會針對每個匯入反覆專案要求新的存取令牌(匯入反覆專案取決於頁面大小)。 例如:
Microsoft Entra 識別碼包含 10000 個物件
連接器中所設定的頁面大小為5000
在此情況下,匯入期間將會有兩次迭代,其中每一個都會傳回 5000 個物件至 Sync。因此,新的存取令牌將會被請求兩次。
在匯出期間,將會針對必須新增/更新/刪除的每個物件要求新的存取令牌。
查詢篩選條件
Graph API 端點可藉由引進 $filter 參數,限制 GET 查詢所傳回的對象數量。
若要啟用查詢篩選以提升完整匯入性能,請在連接器屬性的 [架構 1] 頁面上,啟用 [新增對象篩選] 複選框。
在
之後,在 架構 2 頁面上,輸入用來篩選使用者、群組、聯繫人或服務主體的表達式。
在上述截圖中,篩選器 startsWith(displayName, 'J') 被設定為只讀取其 displayName 屬性值以 'J' 開頭的使用者。
請確保在連接器屬性中選取了篩選表示式中使用的屬性。
如需 $filter 查詢參數使用方式的詳細資訊,請參閱這篇文章:使用查詢參數來自定義回應。
注意
Delta 查詢端點目前不提供篩選功能,因此篩選只能用於完整匯入。 啟用查詢篩選條件後嘗試啟動差異匯入作業時,您會遇到錯誤。
故障排除
啟用記錄
如果 Graph 中有任何問題,記錄可用來定位問題。 因此,可以用和泛型連接器相同的方式在 miiserver.exe.config
(system.diagnostics/sources
區段內):
<source name="ConnectorsLog" switchValue="Verbose">
<listeners>
<add initializeData="ConnectorsLog"
type="System.Diagnostics.EventLogTraceListener, System, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ConnectorsLogListener" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, Callstack" />
<remove name="Default" />
</listeners>
</source>
備註
如果已開啟「在個別行程中執行此管理代理程式」,則應該使用 dllhost.exe.config
,而不是 miiserver.exe.config
。
存取令牌過期錯誤
連接器可能會傳回 HTTP 錯誤 401 未經授權,訊息「存取令牌已過期」:
圖片 6. 「存取令牌已過期。」 錯誤
此問題的原因可能是從 Azure 端設定存取令牌存留期。 根據預設,存取令牌會在 1 小時後到期。 若要增加到期時間,請參閱本文 。
此範例使用 Azure AD PowerShell 模組公開預覽版本
New-AzureADPolicy -Definition @('{“TokenLifetimePolicy”:{“Version”:1, “AccessTokenLifetime”:“5:00:00”}}') -DisplayName “OrganizationDefaultPolicyScenario” -IsOrganizationDefault $true -Type “TokenLifetimePolicy”