清除屬性值(預覽)

當對應的來源屬性為 null 或空白時,Microsoft Entra 佈建可以清除現有的目標屬性值。 此功能也稱為「空值配置」,當某個值從你的記錄系統中移除,且對應的值也必須從目標系統中移除時非常有用。

Note

清除屬性值目前處於預覽階段。 我們依照適用於預覽的條款,向客戶提供預覽。 這些條款概述在 線上服務的整體 Microsoft 產品條款中。

屬性值清除的設定在支援的配置整合中保持一致。 然而,原始碼結構編輯器以及原始碼系統表示空值的方式會因整合而有所不同。

預覽範圍與限制

  • 以下項目目前提供預覽版,可清除屬性值:
    • API 驅動的入站配置至 Microsoft Entra ID 及 內部部署的 Active Directory。
    • Workday 的入站使用者配置至 Microsoft Entra ID 及 內部部署的 Active Directory。
    • SAP SuccessFactors 將使用者配置導入至 Microsoft Entra ID 及 內部部署的 Active Directory。
  • 僅支援單一值屬性的清除。
  • 此功能可用於 自訂安全屬性配置。
  • 目前尚不支援在輸出應用程式佈建案例中清除屬性值,包括 Workday Writeback 和 SAP SuccessFactors Writeback。
  • 不支援清除多值屬性。

屬性值如何被清除

清除屬性值的功能預設為停用,且必須明確啟用。 清除屬性值使用雙閘保護機制來防止意外資料遺失。 你必須為來源屬性及其對應的目標映射啟用「流通 Null 值」選項。

來源值 啟用清算時的結果
屬性的值非空。 配置服務會利用設定的屬性映射來評估該值。
屬性的值為 null 或空值。 在更新過程中,配置服務會清除映射目標屬性中的現有值。
以 API 驅動的配置為例,假設你省略了一個啟用 null flow 的屬性。 在更新時,配置服務會將該屬性視為空,並清除現有映射的目標值。

建立使用者時,null、空白或省略的來源值不會帶入目標屬性,除非你已設定 若為 null 時的預設值。 預設值僅在建立時生效。 在更新過程中,配置服務會清除目標值,而非套用建立時間的預設值。

Note

僅針對來源值為空白或 null 時必須移除現有目標值的屬性,設定清除屬性值。 不要為比對或建立使用者所需的屬性啟用此功能。

先決條件

在您開始前,請確定:

若要使用 API 驅動的 內部部署的 Active Directory 入站配置,請檢視額外的角色與伺服器前置條件,然後設定配置代理程式與 Active Directory 連線。

針對 HR 驅動的佈建,請先設定其中一個支援的輸入佈建應用程式:

啟用對來源屬性的空值流

首先,將來源結構屬性設定為 flow null 值。 來源結構編輯器的名稱會依配置整合而異。

  1. 至少以應用程式管理員身份登入 Microsoft Entra 系統管理中心。
  2. 導航至 Entra ID>Enterprise apps。
  3. 搜尋並選擇你的配置應用程式。
  4. 選擇 配置>屬性映射。
  5. 打開你想設定的物件的屬性映射。
  6. 展開 進階選項,然後選擇編輯來源屬性清單的選項。 選項名稱用來識別來源系統或連接器。
  7. 在 Flow null values 欄位中,為每個可清除其映射目標屬性的來源屬性勾選核取方塊。
  8. 選取 [儲存]。

在目標映射中啟用空值流

接著,為每個對應的目標屬性映射啟用空值流。

  1. 返回屬性 映射 頁面。
  2. 選擇你想清除的目標屬性的映射。
  3. 選擇 流程空值。
  4. 選擇 確定 以關閉映射編輯器。
  5. 選擇 儲存 以儲存屬性映射。
  6. 對每個必須接受空值的目標屬性重複這些步驟。

這兩種設定都是必須的。 如果來源結構屬性或目標映射未選擇 Flow 的 null 值 ,配置服務不會用 null 或空的原始碼值來清除目標屬性。

API 驅動的配置範例

以下範例說明如何設定 API 驅動的輸入佈建,以清除屬性值,並在 /bulkUpload 請求中傳送 null 值或空白值。

在原始結構中啟用空值流程

對於 API 驅動的配置,展開 「進階」選項,然後選擇 「編輯 API 使用者屬性」。 找到 Flow 的 null 值 欄位,並選擇可傳送 null 或空值的來源屬性。 在下方範例中,已針對 SCIM 擴充屬性 department 和 啟用 division。 此設定會指示佈建服務處理這些屬性的 null 值或空白值,並針對 null 流程評估目標屬性對應。

截圖,標示 API 使用者屬性架構中 Flow 空值欄位。

API 使用者屬性的螢幕截圖,其中 division 和 department 屬性已選取 Flow 空值。

Note

只在來源屬性啟用該選項並不會清除目標值;目標映射也必須允許空值流動,如下一節所述。

在目標映射中啟用空值流

開啟每個對應的目標屬性對應表,並選取 傳遞 Null 值。 以下範例將來源 SCIM 擴充屬性department映射到 Active Directory 屬性department,並啟用 Flow 的 null 值,當來源 SCIM 屬性為 null 或為空時,departmentActive Directory 中該屬性值會被清除。

一張選取 Flow 空值的屬性映射截圖。

傳送 null 或空值

在請求中包含屬性 /bulkUpload ,並將其值設為 JSON null 或空字串。

Important

對於 API 驅動的佈建,啟用 Flow null 值 會改變部分 payload 的處理方式。 假設你省略了一個啟用了 null flow 的來源屬性,那麼 provisioning service 就會清除其映射的目標值。 因此,不完整或部分的來源酬載可能會無意間清除現有的屬性值。 作為最佳實務,在每個批量請求中包含完整的原始使用者紀錄,無論是完整同步還是三角態同步,並使用明確的 JSON null 或空字串來請求確定性清除。

以下摘錄清除已匹配用戶的現有 department 值與 division 數值:

{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:BulkRequest"
  ],
  "Operations": [
    {
      "method": "POST",
      "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
      "path": "/Users",
      "data": {
        "schemas": [
          "urn:ietf:params:scim:schemas:core:2.0:User",
          "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
        ],
        "externalId": "701984",
        "userName": "bjensen@example.com",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
          "department": null,
          "division": ""
        }
      }
    }
  ],
  "failOnErrors": null
}

使用你配置應用程式架構中的來源屬性名稱。 確保請求包含你設定所需的匹配屬性,例如 externalId。

關於提交請求的說明,請參閱 使用 Graph Explorer 快速啟動 API 驅動的入站配置 ,或使用 cURL 快速啟動 API 驅動的入站配置。

Workday 與 SAP SuccessFactors 佈建

對於 Workday 和 SAP SuccessFactor 的入站配置,連接器會在配置週期中直接從人力資源系統取得屬性值。 你不需要提交 /bulkUpload 清除屬性值的請求。

  1. 請依照「 啟用來源屬性的空值流程」中的步驟操作。
  2. 在 進階選項中,請選擇 Workday 的 Edit 屬性清單 ,或 SuccessFactors 的 Edit 屬性清單。
  3. 僅對每個來源屬性選擇 Flow 的 null 值 ,其 null 或 empty 值應會移除映射的目標值。
  4. 請針對每個對應的目標屬性,依照 在目標對應中啟用空值流程 中的步驟操作。
  5. 在 Workday 或 SAP SuccessFactors 中清空該值。
  6. 讓下一個配置週期處理來源變更,或使用 按需配置 來測試特定使用者。

Workday 使用 XPath 表達式,而 SAP SuccessFactors 則使用 JSONPath 表達式來取得原始屬性。 該屬性必須存在於佈建應用程式的結構描述中,且必須先由連接器擷取,佈建服務才能評估其值是否為 null 或空白。

Note

在增量同步期間,Workday 只會回傳交易日誌中記錄的變更。 如果未偵測到來源屬性變更,請參見「 部分 Workday 屬性更新遺失」。

若 null 值或空值應以後援值填入,或應保留現有的目標值而不是將其清除,請參閱 排解 HR 使用者更新問題。

確認屬性是否已清除

配置服務處理原始更新後,請在配置日誌及目標目錄中確認結果。

  1. 在你的配置應用程式中,選擇 「配置日誌」。

  2. 為使用者開啟配置事件。

  3. 選擇 「修改屬性 」標籤。

  4. 確認目標屬性顯示的新值為空白。

    修改過的屬性截圖顯示公司和部門的新值為空。

  5. 確認該屬性在目標系統中物件上已不再有值。

在這個 內部部署的 Active Directory 範例中,API 來源屬性division映射到目標屬性 company。 對於 內部部署的 Active Directory,配置服務會移除屬性值,而不是寫入空字串。

排除清除屬性值的故障

如果目標屬性未被清除,請使用以下指引。

Issue Resolution
null 值或空值會被忽略。 確認來源結構屬性和目標映射都已選取 Flow null values。
錯誤的目標屬性被清除。 檢視屬性映射,確認來源屬性是否對應到預期的目標屬性。
原始碼使用佔位值取代空值。 將來源整合設定為回傳 null 值或空值,而非佔位符,或在佈建前先轉換佔位符。
API 驅動的配置請求不會清除該屬性。 使用明確的 JSON null 或空字串值。 如果你對子屬性採用省略方式,請確認包含該子屬性的複雜物件或集合元素仍保留在承載資料中。 同時確認有效載荷匹配屬性是否識別現有目標使用者。
API 驅動的配置請求意外清除屬性。 確認該屬性沒有被遺漏在有效載荷中。 只要想保留現有目標值,就包含其目前非空值。
Workday 或 SAP SuccessFactor 的變更並不會清除該屬性。 確認 HR 連接器已擷取來源端變更。 使用隨選配置來測試使用者,並檢視連接器回傳的原始值的配置日誌。

下一步