共用方式為


使用表達式產生器布建使用者

使用者布建有時可能很困難,例如,當企業應用程式中有重複的使用者使用 Microsoft Entra ID 時。 運算式產生器工具可簡化此程式,提供轉換和對應使用者屬性的彈性。

根據預設,使用者布建會根據UPN進行。 不過,可能有客戶使用舊版方法的實例,而 UPN 的格式可以是 a.b@onmicrosoft.com 和 a_b@onmicrosoft.com。

當我們有這種情況時,應用程式端可能會有使用者布建失敗。 例如,GitHub Copilot (GHCP) 等某些應用程式會以 a-b-test 格式布建使用者,其中 “a” 是 UPN 中的名字,“b” 是第二個名稱,測試 是 GHCP 實例名稱。

現在,如果我們有使用者 a.b@onmicrosoft.com 和 a_b@onmicrosoft.com,GHCP 會布建一個使用者,而另一個用戶會因為重複而失敗。

表達式產生器可根據組織需求啟用屬性轉換和對應,藉以簡化使用者布建。 雖然它提供彈性和精確度,但適當的測試和驗證對於在生產環境中的成功實作至關重要。

範例案例

以下是處理唯一屬性對應和使用者布建挑戰的案例和範例表達式。

案例 1:確保不重複的唯一用戶名稱

員工標識碼 等唯一屬性因為安全性而無法使用或限制時,對象標識碼 可作為可靠的選項。 物件標識碼 對每個使用者而言都是全域唯一的,可確保不會重複。

注意

每個應用程式都有使用者布建的字元限制。 例如,GitHub 的字元限制為 39。

表示式:

Append(Mid([displayName], 1, 15), Mid([objectId], 1, 8))

說明:

  • 採用用戶顯示名稱的前15個字元。
  • 附加使用者 物件識別碼的前八個字元,
  • 結合兩者來建立唯一標識碼。

優點:

  • 透過 物件標識碼確保唯一性。
  • 降低重複的風險。

案例 2:修改使用者主體名稱 (UPN) 以取得相容性

在某些系統中,UPN 需要修改才能進行適當的整合。 例如,附加物件標識碼的元件可確保唯一性。

表示式:

Append(Mid([objectId], 1, 2), Mid([userPrincipalName], 1, 50))

說明:

  • 物件標識碼擷取前 2 個字元。

  • 將這些字元附加至現有的UPN(限制為前50個字元。雖然大部分的使用者通常沒有達到此限制的 UPN,但意圖是從 物件識別碼 附加 2 個字元,以取得唯一性。

案例 3:特定用戶的條件式修改

若要為使用者子集套用自定義變更,可以使用IIF語句的條件式邏輯。

表示式:

IIF([userPrincipalName] = “Aman.Gupta@xpl57.onmicrosoft.com”, Append(Mid([objectId], 1, 2), [userPrincipalName]), IIF( [userPrincipalName] = “Aarti@xpl57.onmicrosoft.com”, Append(Mid([objectId], 1, 2), [userPrincipalName], IIF([userPrincipalName] = “AdeleV@xpl57.onmicrosoft.com”, Append(Mid([objectId], 1, 2), [userPrincipalName], [userPrincipalName] )

表達式會根據 UPN 檢查特定使用者,並藉由將 對象識別碼 的前兩個字元附加至 userPrincipalName 中的 Aman.Gupta@xpl57.onmicrosoft.com、Aarti@xpl57.onmicrosoft.com和 AdeleV@xpl57.onmicrosoft.com來檢查特定使用者。

範例測試案例:

  • 輸入UPN:Aman.Gupta@xpl57.onmicrosoft.com

  • 預期輸出:39Aman.Gupta@xpl57.onmicrosoft.com

更進階的范例如下:

IIF([userPrincipalName] = “Aman.Gupta@xpl57.onmicrosoft.com”, Append([displayName], Append(“”“, Mid([objectId], 1, 8)),IIF([userPrincipalName] = ”harjit@xpl57.onmicrosoft.com“, Append([displayName], Append(”“, Mid([objectId], 1, 8))), IIF( [userPrincipalName] = ”AdeleV@xpl57.onmicrosoft.com“, Append([displayName], Append(”_“, Mid([objectId], 1, 8)), [userPrincipalName] ) )

用於測試的 表示式:

Append(Mid([objectId], 1, 8), [userPrincipalName])

此程式會根據 UPN 檢查特定使用者,並將其 物件 識別子的前八個字元附加至顯示名稱,以套用自定義修改。 包含的使用者越多,表達式就越長,會增加複雜度。 因此,此方法最適合小型使用者子集。

重要建議

  • 廣泛測試: 非生產環境中一律測試表達式來驗證功能。
  • 字元限制: 確定轉換的用戶名稱不會超過應用程式指定的字元限制(例如,GitHub 有 39 個字元的限制)。
  • 檔: 維護表達式和變更的清楚檔,以進行疑難解答和未來的參考。

用於測試的工具和步驟

  1. 在 Entra ID 或相關的布建介面中開啟表達式產生器。
  2. 使用測試表達式功能搭配範例用戶數據。
  3. 驗證輸出以確保適當的轉換。

後續步驟

瞭解特定使用者何時能夠在 Microsoft Entra Application Provisioning 存取應用程式