應用程式布建在 Microsoft Entra ID 中的運作方式

自動布建是指在使用者需要存取的雲端應用程式中建立使用者身分識別和角色。 除了建立使用者識別之外,自動佈建還包括在狀態或角色變更時,維護及移除使用者識別。 開始部署之前,您可以檢閱本文以瞭解 Microsoft Entra 布建的運作方式,並取得設定建議。

Microsoft Entra 布建服務會藉由連線到應用程式廠商或內部部署布建代理程式所提供的系統,將使用者布建至 SaaS 應用程式和其他系統,以進行跨網域身分識別管理 (SCIM) 2.0 使用者管理 API 端點。 此 SCIM 端點可讓 Microsoft Entra 識別碼以程式設計方式建立、更新及移除使用者。 對於選取的應用程式,布建服務也可以建立、更新和移除額外的身分識別相關物件,例如群組。 用於在 Microsoft Entra ID 與應用程式之間佈建的通道會使用 HTTPS TLS 1.2 加密進行加密。

Microsoft Entra 佈建服務圖 1:Microsoft Entra 布建服務

輸出使用者布建工作流程圖 2:從 Microsoft Entra ID 到熱門 SaaS 應用程式的「輸出」使用者布建工作流程

輸入使用者布建工作流程圖 3:從熱門人力資源管理 (HCM) 應用程式到 Microsoft Entra ID 和 Windows Server Active Directory 的「輸入」使用者布建工作流程

使用 SCIM 2.0 進行佈建

Microsoft Entra 布建服務會使用 SCIM 2.0 通訊協議 進行自動布建。 服務會連線到應用程式的SCIM端點,並使用SCIM使用者物件架構和REST API,將使用者和群組的布建和取消布建自動化。 MICROSOFT Entra 資源庫中大部分的應用程式都會提供 SCIM 型佈建連接器。 開發人員會使用 Microsoft Entra ID 中的 SCIM 2.0 使用者管理 API,為其應用程式建置與布建服務整合的端點。 如需詳細資訊,請參閱 建置 SCIM 端點並設定使用者布建。 內部部署布建代理程式也會將 Microsoft Entra SCIM 作業轉譯為 LDAP、SQL、REST 或 SOAP、PowerShell、呼叫自定義 ECMA 連接器,或合作夥伴所建置的連接器和網關。

若要要求目前沒有 Microsoft Entra 應用程式之應用程式的自動 Microsoft Entra 布建連接器,請參閱 Microsoft Entra 應用程式要求

授權

Microsoft Entra ID 需要認證才能連線到應用程式的使用者管理 API。 當您為應用程式設定自動使用者布建時,您必須輸入有效的認證。 針對資源庫應用程式,您可以參考應用程式教學課程來尋找應用程式的認證類型和需求。 對於非資源庫應用程式,您可以參考 SCIM 檔以瞭解認證類型和需求。 在 Microsoft Entra 系統管理中心,您可以讓 Microsoft Entra ID 嘗試使用提供的認證連線到應用程式的佈建應用程式,藉此測試認證。

對應屬性

當您為第三方 SaaS 應用程式啟用使用者布建時,Microsoft Entra 系統管理中心會透過屬性對應控制其屬性值。 對應會決定在布建或更新用戶帳戶時,Microsoft Entra ID 與目標應用程式之間流動的用戶屬性。

Microsoft Entra 用戶物件與每個 SaaS 應用程式的使用者對象之間有一組預先設定的屬性和屬性對應。 某些應用程式會與使用者一起管理其他類型的物件,例如群組。

設定布建時,請務必檢閱和設定屬性對應和工作流程,以定義哪些使用者(或群組)屬性會從 Microsoft Entra ID 流向應用程式。 檢閱並設定比對屬性(使用這個屬性比對物件),用來唯一識別和比對兩個系統之間的使用者/群組。

您可以根據您的業務需求自定義預設屬性對應。 因此,您可以變更或刪除現有的屬性對應,或建立新的屬性對應。 如需詳細資訊,請參閱 自定義 SaaS 應用程式的使用者布建屬性對應。

當您設定布建至 SaaS 應用程式時,您可以指定的其中一種屬性對應類型是表達式對應。 針對這些對應,您必須撰寫類似腳本的表達式,以便將使用者的數據轉換成 SaaS 應用程式更容易接受的格式。 如需詳細資訊,請參閱 撰寫屬性對應的表達式。

範圍

以工作分派為基礎的範圍界定

對於從 Microsoft Entra ID 到 SaaS 應用程式的輸出布建,依賴 使用者或群組指派 是判斷哪些用戶位於布建範圍的最常用方式。 由於使用者指派也用於啟用單一登錄,因此相同的方法可用於管理存取和布建。 指派型範圍不適用於輸入布建案例,例如 Workday 和 Successfactors。

  • 群組。 透過 Microsoft Entra ID P1 或 P2 授權方案,您可以使用群組來指派 SaaS 應用程式的存取權。 然後,當布建範圍設定為 [僅同步指派的使用者和群組] 時,Microsoft Entra 布建服務會根據他們是否為指派給應用程式的群組成員來布建或取消布建使用者。 除非應用程式支援群組對象,否則不會布建群組物件本身。 確定指派給應用程式的群組將屬性 「SecurityEnabled」 設定為 「True」。

  • 動態群組。 Microsoft Entra 使用者布建服務可以在動態群組讀取和布建使用者。 請記住這些注意事項和建議:

    • 動態群組可能會影響從 Microsoft Entra ID 到 SaaS 應用程式的端對端布建效能。

    • 在 SaaS 應用程式中布建或取消布建動態群組中的使用者速度取決於動態群組評估成員資格變更的速度。 如需如何檢查動態群組處理狀態的資訊,請參閱 檢查成員資格規則的處理狀態。

    • 當使用者失去動態群組的成員資格時,它就會被視為取消布建事件。 建立動態群組的規則時,請考慮此案例。

  • 巢狀群組。 Microsoft Entra 使用者布建服務無法在巢狀群組中讀取或布建使用者。 服務只能讀取和布建明確指派群組的立即成員的使用者。 「群組型應用程式指派」的這項限制也會影響單一登錄(請參閱 使用群組來管理 SaaS 應用程式的存取權)。 相反地,直接在包含需要布建之使用者的群組中指派或其他範圍。

屬性型範圍界定

您可以使用範圍篩選來定義屬性型規則,以決定哪些使用者已布建至應用程式。 這個方法通常用於從 HCM 應用程式到 Microsoft Entra ID 和 Active Directory 的輸入布建。 範圍篩選條件會設定為每個 Microsoft Entra 使用者布建連接器屬性對應的一部分。 如需設定屬性型範圍篩選的詳細資訊,請參閱 使用範圍篩選器布建屬性型應用程式。

B2B (來賓) 使用者

您可以使用 Microsoft Entra 使用者布建服務,將 Microsoft Entra 識別碼中的 B2B(來賓)使用者布建至 SaaS 應用程式。 不過,若要讓 B2B 使用者使用 Microsoft Entra ID 登入 SaaS 應用程式,您必須手動設定 SaaS 應用程式,以使用 Microsoft Entra ID 作為安全性判斷提示標記語言 (SAML) 識別提供者。

設定 B2B (來賓) 使用者的 SaaS 應用程式時,請遵循下列一般指導方針:

  • 針對大部分的應用程式,用戶設定必須手動進行。 用戶也必須在應用程式中手動建立。
  • 對於支援自動設定的應用程式,例如Dropbox,會從應用程式建立個別的邀請。 用戶必須確定接受每個邀請。
  • 在使用者屬性中,若要減輕來賓用戶中使用者配置檔磁碟 (UPD) 的任何問題,請一律將使用者標識元設定為 user.mail

注意

B2B 共同作業使用者的userPrincipalName代表外部使用者的電子郵件位址alias@theirdomain為 “alias_theirdomain#EXT#@yourdomain”。 當userPrincipalName屬性包含在屬性對應中做為來源屬性,且布建 B2B 使用者時,#EXT# 和您的網域會從 userPrincipalName 中移除,因此只會使用其原始alias@theirdomain進行比對或布建。 如果您需要完整的用戶主體名稱,包括 #EXT# 和您的網域存在,請將userPrincipalName取代為originalUserPrincipalName做為來源屬性。
userPrincipalName = alias@theirdomain
originalUserPrincipalName = alias_theirdomain#EXT#@yourdomain

布建週期:初始和累加

當 Microsoft Entra ID 是來源系統時,布建服務會使用 差異查詢來追蹤 Microsoft Graph 數據 中的變更,以監視使用者和群組。 布建服務會針對來源系統和目標系統執行初始迴圈,後面接著定期累加迴圈。

初始迴圈

當布建服務啟動時,第一個迴圈會:

  1. 從來源系統查詢所有使用者和群組,擷取屬性對應定義的所有屬性。

  2. 使用任何已設定 的指派屬性型範圍篩選條件,篩選傳回的使用者和群組。

  3. 指派使用者或布建範圍時,服務會使用指定的 比對屬性來查詢目標系統是否有相符的使用者。 範例:如果來源系統中的userPrincipal名稱是相符的屬性,並對應至目標系統中的userName,則布建服務會查詢目標系統以取得符合來源系統中userPrincipal名稱值的目標系統。

  4. 如果在目標系統中找不到相符的使用者,則會使用從來源系統傳回的屬性來建立。 建立使用者帳戶之後,布建服務會偵測並快取新使用者的目標系統標識碼。 此標識碼可用來在該用戶上執行所有未來的作業。

  5. 如果找到相符的使用者,則會使用來源系統所提供的屬性來更新。 比對用戶帳戶之後,布建服務會偵測並快取新使用者的目標系統標識符。 此標識碼可用來在該用戶上執行所有未來的作業。

  6. 如果屬性對應包含「參考」屬性,服務會在目標系統上執行更多更新,以建立及鏈接參考的物件。 例如,使用者可能有目標系統中的 「Manager」 屬性,而該屬性會連結到在目標系統中建立的另一位使用者。

  7. 在初始循環結束時保存水位線,以提供後續累加循環的起點。

ServiceNow、G Suite 和 Box 等某些應用程式不僅支援布建使用者,也支援布建群組及其成員。 在這些情況下,如果在對應啟用群組布建,布建服務會同步處理使用者和群組,然後稍後同步處理群組成員資格。

累加迴圈

初始循環之後,所有其他循環都會:

  1. 查詢來源系統,以尋找自上次儲存浮水印後更新的任何使用者和群組。

  2. 使用任何已設定 的指派屬性型範圍篩選條件,篩選傳回的使用者和群組。

  3. 指派使用者或布建範圍時,服務會使用指定的 比對屬性來查詢目標系統是否有相符的使用者。

  4. 如果在目標系統中找不到相符的使用者,則會使用從來源系統傳回的屬性來建立。 建立使用者帳戶之後,布建服務會偵測並快取新使用者的目標系統標識碼。 此標識碼可用來在該用戶上執行所有未來的作業。

  5. 如果找到相符的使用者,則會使用來源系統所提供的屬性來更新。 如果是符合的新指派帳戶,布建服務會偵測並快取新使用者的目標系統標識符。 此標識碼可用來在該用戶上執行所有未來的作業。

  6. 如果屬性對應包含「參考」屬性,服務會在目標系統上執行更多更新,以建立及鏈接參考的物件。 例如,使用者可能有目標系統中的 「Manager」 屬性,而該屬性會連結到在目標系統中建立的另一位使用者。

  7. 如果先前在布建範圍內的使用者已從範圍中移除,包括未指派,服務會透過更新停用目標系統中的使用者。

  8. 如果先前在布建範圍內的使用者已在來源系統中停用或虛刪除,服務會透過更新停用目標系統中的使用者。

  9. 如果先前在布建範圍內的使用者已在來源系統中實刪除,服務就會刪除目標系統中的使用者。 在 Microsoft Entra 識別碼中,使用者會在虛刪除 30 天后進行硬式刪除。

  10. 在累加循環結束時保存新的水位線,以提供後續累加循環的起點。

注意

您可以選擇性地使用 [對應] 區段中的 [目標物件動作] 複選框來停用建立更新或刪除作業。 在更新期間停用用戶的邏輯也會透過來自 accountEnabled字段的屬性對應來控制。

布建服務會無限期地繼續以每個應用程式專屬教學課程中定義的間隔,無限期地執行回溯累加迴圈。 累加循環會持續到其中一個事件發生為止:

  • 使用 Microsoft Entra 系統管理中心或使用適當的 Microsoft Graph API 命令,手動停止服務。
  • 使用 Microsoft Entra 系統管理中心的 [重新啟動] 布建選項,或使用適當的 Microsoft Graph API 命令來觸發新的初始迴圈。 動作會清除任何儲存的浮浮水印,並導致所有來源物件再次評估。 此外,動作不會中斷來源和目標對象之間的連結。 若要中斷連結,請使用 Restart synchronizationJob 搭配要求:
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/restart
Authorization: Bearer <token>
Content-type: application/json
{
   "criteria": {
       "resetScope": "Full"
   }
}
  • 由於屬性對應或範圍篩選條件有所變更,因此會觸發新的初始迴圈。 此動作也會清除任何儲存的浮浮水印,並導致所有來源物件再次評估。
  • 布建程式因為錯誤率很高而進入隔離區(請參閱範例),並停留在隔離區超過四周。 在此事件中,服務會自動停用。

錯誤和重試

如果目標系統中的錯誤會防止個別使用者在目標系統中新增、更新或刪除,則會在下一個同步處理週期中重試作業。 這些錯誤會持續重試,逐漸縮減重試的頻率。 若要解決失敗,系統管理員必須檢查 布建記錄 ,以判斷根本原因並採取適當的動作。 常見的失敗可能包括:

  • 用戶沒有在目標系統中所需的來源系統中填入屬性
  • 在目標系統中有唯一條件約束的來源系統中具有屬性值的使用者,而相同值則存在於另一個用戶記錄中

藉由調整來源系統中受影響用戶的屬性值,或調整屬性對應來解決這些失敗,以免造成衝突。

隔離

如果針對目標系統進行的大部分或所有呼叫一致失敗,因為發生錯誤(例如無效的系統管理認證),布建作業就會進入「隔離」狀態。 如果在 Microsoft Entra 系統管理中心設定電子郵件通知,則會在 布建摘要報告中 指出此狀態。

隔離時,累加循環的頻率會逐漸減少為每天一次。

布建作業會在修正所有違規錯誤之後結束隔離,並啟動下一個同步處理週期。 如果布建作業在隔離區中停留超過四周,則會停用布建作業。 在這裡深入瞭解隔離狀態

布建需要多久時間

效能取決於您的布建作業是執行初始布建周期還是累加迴圈。 如需布建所花費的時間長度以及如何監視布建服務狀態的詳細資訊,請參閱 檢查使用者布建的狀態。

如何判斷使用者是否已正確布建

使用者布建服務執行的所有作業都會記錄在 Microsoft Entra Provisioning logs (預覽) 中。 記錄檔包含對來源和目標系統所做的所有讀取和寫入作業,以及每個作業期間讀取或寫入的用戶數據。 如需如何在 Microsoft Entra 系統管理中心讀取布建記錄的資訊,請參閱布 建報告指南

解除佈建

拿掉使用者存取權時,Microsoft Entra 布建服務會取消布建帳戶,讓來源和目標系統保持同步。

布建服務支援刪除和停用(有時稱為虛刪除)使用者。 停用和刪除的確切定義會根據目標應用程式的實作而有所不同,但通常停用表示用戶無法登入。 刪除表示使用者已從應用程式完全移除。 針對 SCIM 應用程式,停用是要求在使用者上將作用屬性設定為 false。

設定您的應用程式以停用使用者

確認已選取更新的複選框。

確認應用程式的使用中對應。 如果您是從應用連結庫使用應用程式,則對應可能稍有不同。 在此情況下,請使用資源庫應用程式的預設對應。

停用使用者

設定您的應用程式以刪除使用者

此案例會觸發停用或刪除:

  • Microsoft Entra ID 中會虛刪除使用者(傳送至回收站/AccountEnabled 屬性設定為 false)。 在 Microsoft Entra ID 中刪除使用者三十天后,使用者就會從租使用者永久刪除。 此時,布建服務會傳送 DELETE 要求,以永久刪除應用程式中的使用者。 在 30 天時段內,您可以隨時 手動刪除使用者,以永久方式將刪除要求傳送給應用程式。
  • 使用者會永久刪除/從 Microsoft Entra ID 中的回收站移除。
  • 使用者從應用程式取消指派。
  • 使用者從範圍到超出範圍(不再傳遞範圍篩選)。

刪除使用者

根據預設,Microsoft Entra 布建服務會虛刪除或停用超出範圍的使用者。 如果您想要覆寫此預設行為,您可以設定旗標來 略過範圍外刪除。

當發生四個事件之一且目標應用程式不支援虛刪除時,布建服務會傳送 DELETE 要求,以從應用程式永久刪除使用者。

如果您在 IsSoftDeleted 屬性對應中看到,則會用來判斷用戶的狀態,以及是否使用 active = false 傳送更新要求來虛刪除使用者。

取消布建事件

下表描述如何使用 Microsoft Entra 布建服務來設定取消布建動作。 這些規則是以非資源庫/自定義應用程式撰寫,但通常會套用至資源庫中的應用程式。 不過,資源庫應用程式的行為可能會有所不同,因為它們已優化以符合應用程式的需求。 例如,如果目標應用程式不支援虛刪除,則 Microsoft Entra 布建服務可能會傳送實刪除要求來刪除使用者,而不是傳送虛刪除。

案例 如何在 Microsoft Entra 識別符中設定
使用者從應用程式取消指派、在 Microsoft Entra ID 中虛刪除,或遭到封鎖而無法登入。 你不想做任何事情。 isSoftDeleted屬性對應中移除 和 /,或將略過範圍刪除屬性設定為 true。
使用者從應用程式取消指派、在 Microsoft Entra ID 中虛刪除,或遭到封鎖而無法登入。 您要將特定屬性設定為 truefalse 對應 isSoftDeleted 至您想要設定為 false 的屬性。
Microsoft Entra ID 中停用使用者、從應用程式取消指派、在 Microsoft Entra ID 中虛刪除或封鎖登入。 您想要將 DELETE 要求傳送至目標應用程式。 目前支援一組有限的資源庫應用程式,其中需要此功能。 客戶無法設定。
使用者會在 Microsoft Entra ID 中刪除。 您不希望在目標應用程式中執行任何動作。 確定 [刪除] 未選取為屬性組態體驗中的其中一個目標物件動作。
使用者會在 Microsoft Entra ID 中刪除。 您要在目標應用程式中設定屬性值。 不支援。
使用者會在 Microsoft Entra ID 中刪除。 您要刪除目標應用程式中的使用者 確定已選取 [刪除] 作為屬性組態體驗中的其中一個目標物件動作。

已知限制

  • 當使用者或群組從應用程式取消指派,且不再使用布建服務進行管理時,就會傳送停用要求。 此時,服務不會管理使用者,而且從目錄中刪除使用者時不會傳送刪除要求。
  • 不支援在 Microsoft Entra ID 中布建已停用的使用者。 在布建之前,它們必須在 Microsoft Entra ID 中處於作用中狀態。
  • 當使用者從虛刪除到作用中時,Microsoft Entra 布建服務會在目標應用程式中啟動使用者,但不會自動還原群組成員資格。 目標應用程式應維護處於非使用中狀態之使用者的群組成員資格。 如果目標應用程式不支援維護非使用中狀態,您可以重新啟動布建以更新群組成員資格。

建議

開發應用程式時,請一律支援虛刪除和硬刪除。 它可讓客戶在不小心停用用戶時復原。

後續步驟

規劃自動使用者布建部署

設定資源庫應用程式的布建

建置 SCIM 端點,並在建立您自己的應用程式時設定布建

針對將用戶設定及布建至應用程式的問題進行疑難解答。