共用方式為


使用 PowerShell 腳本進行 API 驅動的輸入布建

本教學課程說明如何使用PowerShell腳本來實作 Microsoft Entra ID API 導向的輸入布建。 使用本教學課程中的步驟,您可以將包含 HR 數據的 CSV 檔案轉換成大量要求承載,並將其傳送至 Microsoft Entra 布 建 /bulkUpload API 端點。 本文也提供如何搭配任何記錄系統使用相同整合模式的指引。

整合案例

商務需求

記錄系統會定期產生包含背景工作數據的 CSV 檔案匯出。 您想要實作整合,從 CSV 檔案讀取數據,並在目標目錄中自動布建用戶帳戶(內部部署的 Active Directory 混合式使用者和僅限雲端使用者的 Microsoft Entra ID)。

實作需求

從實作的觀點來看:

  • 您想要使用自動PowerShell腳本從 CSV 檔案匯出讀取資料,並將其傳送至輸入布建 API 端點。
  • 在 PowerShell 腳本中,您不想實作在記錄和目標目錄系統之間比較身分識別數據的複雜邏輯。
  • 您想要使用 Microsoft Entra 布建服務來套用 IT 受控布建規則,以在目標目錄中自動建立/更新/啟用/停用帳戶(內部部署的 Active Directory 或 Microsoft Entra ID)。

Graphic of PowerShell-based integration.

整合案例變化

雖然本教學課程使用 CSV 檔案作為記錄系統,但您可以自定義範例 PowerShell 腳本,以從任何記錄系統讀取數據。 以下是企業整合案例變化的清單,其中 API 驅動的輸入布建可以使用 PowerShell 腳本來實作。

# 記錄系統 使用 PowerShell 讀取源數據的整合指引
1 資料庫數據表 如果您使用 Azure SQL 資料庫或內部部署 SQL Server,您可以使用 Read-SqlTableData Cmdlet 來讀取儲存在 SQL Database 數據表中的數據。 您可以使用 Invoke-SqlCmd Cmdlet 來執行 Transact-SQL 或 XQuery 腳本。
如果您使用 Oracle / MySQL / Postgres 資料庫,您可以在 PowerShell 資源庫 中找到廠商發佈的 PowerShell 模組。 使用 模組從資料庫數據表讀取數據。
2 LDAP 伺服器 System.DirectoryServices.Protocols 使用 .NET API 或 PowerShell 資源庫可用的其中一個LDAP模組來查詢您的LDAP伺服器。 瞭解LDAP架構和階層,以從LDAP伺服器擷取用戶數據。
3 公開 REST API 的任何系統 若要使用 PowerShell 從 REST API 端點讀取數據,您可以使用模組中的 Microsoft.PowerShell.Utility Invoke-RestMethod Cmdlet。 查看 REST API 的檔,並找出預期的參數和標頭、傳回的格式,以及它所使用的驗證方法。 然後,您可以據以調整命令 Invoke-RestMethod
4 公開 SOAP API 的任何系統 若要使用 PowerShell 從 SOAP API 端點讀取數據,您可以使用模組中的 Microsoft.PowerShell.Management New-WebServiceProxy Cmdlet。 查看 SOAP API 的檔,並瞭解預期的參數和標頭、傳回的格式,以及它所使用的驗證方法。 然後,您可以據以調整命令 New-WebServiceProxy

讀取源數據之後,套用前置處理規則,並將記錄系統的輸出轉換成大量要求,以傳送至 Microsoft Entra 布建 bulkUpload API 端點。

重要

如果您想要與社群共用PowerShell整合腳本,請在 PowerShell 資源庫發佈它,並在 GitHub 存放庫entra-id-inbound-provisioning上通知我們,以便我們可以新增參考。

如何使用本教學課程

在 Microsoft Entra 輸入布建 GitHub 存放庫中發佈的 PowerShell 範例腳本會自動執行數項工作。 其邏輯可用來處理大型 CSV 檔案,並將大量要求區塊化,以在每個要求中傳送 50 筆記錄。 以下說明如何測試它,並根據您的整合需求加以自定義。

注意

範例 PowerShell 腳本會以「依目前方式」提供,以供實作參考使用。 如果您有與腳本相關的問題,或想要加強腳本,請使用 GitHub 專案存放庫

# 自動化工作 實作指引 進階自訂
1 從 CSV 檔案讀取背景工作數據。 下載PowerShell腳本。 它有現用的邏輯,可從任何 CSV 檔案讀取數據。 請參閱CSV2SCIM PowerShell 使用方式詳細數據,以熟悉此腳本的不同執行模式。 如果您的記錄系統不同,請參閱整合案例變化一節中提供的指引,以瞭解如何自定義PowerShell腳本。
2 預先處理數據並將數據轉換成 SCIM 格式。 根據預設,PowerShell 腳本會將 CSV 檔案中的每個記錄轉換成 SCIM 核心使用者 + 企業使用者表示法。 請遵循使用標準架構產生大量要求承載一節中的步驟,以熟悉此程式。 如果您的 CSV 檔案具有不同的字段,請 調整AttributeMapping.psd檔案 以產生有效的 SCIM 使用者。 您也可以 使用自定義 SCIM 架構產生大量要求。 更新 PowerShell 腳本以包含任何自定義 CSV 數據驗證邏輯。
3 使用憑證進行 Microsoft Entra 識別符的驗證。 建立可存取 輸入布建 API 的服務主體。 請參閱設定服務主體驗證客戶端憑證一節中的步驟,以瞭解如何使用用戶端憑證進行驗證。 如果您想要使用受控識別而非服務主體進行驗證,請檢閱範例腳本中的 用法 Connect-MgGraph ,並將它更新為使用 受控識別
4 在 內部部署的 Active Directory 或 Microsoft Entra 識別符中布建帳戶。 設定 API 驅動的輸入布建應用程式。 這會產生唯 一的 /bulkUpload API 端點。 請參閱以系統管理員使用者身分產生和上傳大量要求承載一節中的步驟,以瞭解如何將數據上傳至此端點。 驗證屬性流程,並根據您的整合需求自定義屬性對應。 若要使用服務主體搭配憑證型驗證來執行腳本,請參閱使用用戶端憑證驗證上傳大量要求承載一節 中的步驟 如果您打算搭配 自定義 SCIM 架構使用大量要求,請 擴充布建應用程式架構以包含您的自定義 SCIM 架構 元素。
5 掃描布建記錄,然後重試布建失敗的記錄。 請參閱取得最新同步週期布建記錄一節中的步驟,以瞭解如何擷取和分析布建記錄數據。 識別失敗的用戶記錄,並在下一個上傳週期中包含它們。 -
6 將PowerShell型自動化部署到生產環境。 驗證 API 驅動佈建流程並自訂 PowerShell 腳本以符合您的需求後,您可以在 Azure 自動化 或排程在 Windows 伺服器上執行的伺服器進程,將自動化部署為 PowerShell 工作流程 Runbook。 -

下載PowerShell腳本

  1. 存取 GitHub 存放函式庫 entra-id-inbound-provisioning
  2. 使用 [程序代碼 -> 複製] 或 [程序代碼 -> 下載 ZIP] 選項,將此存放庫的內容複製到本機資料夾。
  3. 流覽至 PowerShell/CSV2SCIM資料夾。 它有下列目錄結構:
    • Src
      • CSV2SCIM.ps1 (主要腳稿)
      • ScimSchemaRepresentations (資料夾包含驗證 AttributeMapping.psd1 檔案的標準 SCIM 架構定義)
        • EnterpriseUser.json、Group.json、Schema.json、User.json
    • 樣品
      • AttributeMapping.psd1 (CSV 檔案中數據行與標準 SCIM 屬性的範例對應)
      • csv-with-2-records.csv (包含兩筆記錄的 CSV 檔案範例)
      • csv-with-1000-records.csv (具有 1000 筆記錄的 CSV 檔案範例)
      • Test-ScriptCommands.ps1 (範例使用命令)
      • UseClientCertificate.ps1 (用來產生自我簽署憑證的腳本,並將其上傳為服務主體認證以用於 OAuth 流程)
      • Sample1 (資料夾包含 CSV 檔案資料行如何對應至 SCIM 標準屬性的更多範例。如果您為員工、承包商、實習生取得不同的 CSV 檔案,您可以為每個實體建立個別的 AttributeMapping.psd1 檔案。
  4. 下載並安裝最新版的PowerShell。
  5. 執行 命令以啟用遠端簽署文稿的執行:
    set-executionpolicy remotesigned
    
  6. 安裝下列必要條件模組:
    Install-Module -Name Microsoft.Graph.Applications,Microsoft.Graph.Reports
    

使用標準架構產生大量要求承載

本節說明如何從 CSV 檔案產生具有標準 SCIM 核心用戶和企業用戶屬性的大量要求承載。 為了說明程式,讓我們使用 CSV 檔案 Samples/csv-with-2-records.csv

  1. 在 記事本++ 或 Excel 中開啟 CSV 檔案Samples/csv-with-2-records.csv,以檢查檔案中存在的數據行。 Screenshot of columns in Excel.

  2. 在 記事本++ 或 Visual Studio Code 之類的原始碼編輯器中,開啟 PowerShell 數據檔Samples/AttributeMapping.psd1,以啟用 CSV 檔案數據行與 SCIM 標準架構屬性的對應。 現成隨附的檔案已預先設定 CSV 檔案數據行對應至對應的 SCIM 架構屬性。

        @{
        externalId   = 'WorkerID'
        name         = @{
            familyName = 'LastName'
            givenName  = 'FirstName'
        }
        active       = { $_.'WorkerStatus' -eq 'Active' }
        userName     = 'UserID'
        displayName  = 'FullName'
        nickName     = 'UserID'
        userType     = 'WorkerType'
        title        = 'JobTitle'
        addresses    = @(
            @{
                type          = { 'work' }
                streetAddress = 'StreetAddress'
                locality      = 'City'
                postalCode    = 'ZipCode'
                country       = 'CountryCode'
            }
        )
        phoneNumbers = @(
            @{
                type  = { 'work' }
                value = 'OfficePhone'
            }
        )
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{
            employeeNumber = 'WorkerID'
            costCenter     = 'CostCenter'
            organization   = 'Company'
            division       = 'Division'
            department     = 'Department'
            manager        = @{
                value = 'ManagerID'
            }
        }
    }
    
  3. 開啟 PowerShell 並變更至目錄 CSV2SCIM\src

  4. 執行下列命令來初始化 AttributeMapping 變數。

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  5. 執行下列命令來驗證檔案是否 AttributeMapping 具有有效的 SCIM 架構屬性。 如果驗證成功,此命令會 傳回 True

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  6. AttributeMapping假設檔案具有名為 userId 的無效 SCIM 屬性,然後ValidateAttributeMapping模式會顯示下列錯誤。

    Screenshot of a mapping error.

  7. 驗證 AttributeMapping 檔案是否有效之後,請執行下列命令,以在檔案 BulkRequestPayload.json 中產生大量要求,其中包含 CSV 檔案中存在的兩筆記錄。

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping > BulkRequestPayload.json
    
  8. 您可以開啟檔案 BulkRequestPayload.json 的內容,以確認 SCIM 屬性是否根據檔案 AttributeMapping.psd1中所定義的對應來設定。

  9. 您可以使用 Graph Explorer 或 Postman 或 cURL,將上述產生的檔案張貼至 與布建應用程式相關聯的 /bulkUpload API 端點。 參考:

  10. 若要使用相同的PowerShell腳本直接將產生的承載上傳至 API 端點,請參閱下一節。

以系統管理員使用者身分產生和上傳大量要求承載

本節說明如何將產生的大量要求承載傳送至您的輸入布建 API 端點。

  1. 以至少應用程式 管理員 istrator 身分登入您的 Microsoft Entra 系統管理中心

  2. 瀏覽至 [布建應用程式>屬性>] 物件識別碼,並複製ServicePrincipalId與您布建應用程式相關聯的 。

    Screenshot of the Object ID.

  3. 身為具有全域 管理員 istrator 角色的使用者,請提供 和TenantId的正確值ServicePrincipalId來執行下列命令。 如果此租使用者尚未存在已驗證的會話,則會提示您進行驗證。 請同意在驗證期間提示的許可權。

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com"
    
  4. 請流覽布建應用程式的 [ 布建記錄 ] 刀鋒視窗,以確認上述要求的處理。

設定服務主體驗證的客戶端憑證

注意

此處的指示示範如何產生自我簽署憑證。 根據預設,自我簽署憑證不受信任,而且難以維護。 此外,它們可能會使用過期的哈希和加密套件,可能不是強式。 為了獲得更好的安全性,請購買由已知證書頒發機構單位簽署的憑證。

  1. 執行下列 PowerShell 腳本來產生新的自我簽署憑證。 如果您已購買由已知證書頒發機構單位簽署的憑證,則可以略過此步驟。
    $ClientCertificate = New-SelfSignedCertificate -Subject 'CN=CSV2SCIM' -KeyExportPolicy 'NonExportable' -CertStoreLocation Cert:\CurrentUser\My
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    產生的憑證會 儲存目前的使用者\個人\憑證。 您可以使用 控制台 ->Manage user certificates 選項來檢視它。
  2. 若要將此憑證與有效的服務主體產生關聯,請以Application 管理員 istrator身分登入您的 Microsoft Entra 系統管理中心。
  3. 開啟您在 [應用程式註冊] 下設定的服務主體。
  4. 從 [概觀] 刀鋒視窗複製 [對象標識符]。 使用 值來取代字串 <AppObjectId>複製應用程式 (用戶端) 識別碼。我們稍後會使用它,並將它參考為 <AppClientId>
  5. 執行下列命令,將您的憑證上傳至已註冊的服務主體。
    Connect-MgGraph -Scopes "Application.ReadWrite.All"
    Update-MgApplication -ApplicationId '<AppObjectId>' -KeyCredentials @{
       Type = "AsymmetricX509Cert"
       Usage = "Verify"
       Key = $ClientCertificate.RawData
    }
    
    您應該會在已註冊應用程式的 [憑證與秘密] 刀鋒視窗下看到憑證。 Screenshot of client certificate.
  6. 將下列兩 個應用程式 許可權範圍新增至服務主體應用程式: Application.Read.AllSynchronization.Read.All。 PowerShell 腳本需要這些專案,才能藉由 ServicePrincipalId 查閱布建應用程式並擷取布建 JobId

使用客戶端憑證驗證上傳大量要求承載

本節說明如何使用受信任的用戶端憑證,將產生的大量要求承載傳送至輸入布建 API 端點。

  1. 開啟您 設定的 API 驅動佈建應用程式。 ServicePrincipalId佈建應用程式>屬性>物件識別碼複製與布建應用程式相關聯的 。

    Screenshot of the Object ID.

  2. 提供、 ClientIdTenantId的正確值ServicePrincipalId,以執行下列命令。

    $ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"}  
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -TenantId "contoso.onmicrosoft.com" -ServicePrincipalId "<ProvisioningAppObjectId>" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint)
    
  3. 請流覽布建應用程式的 [ 布建記錄 ] 刀鋒視窗,以確認上述要求的處理。

使用自定義 SCIM 架構產生大量要求

本節說明如何產生包含 CSV 檔案中欄位的自訂 SCIM 架構命名空間的大量要求。

  1. 在 記事本++ 或 Visual Studio Code 之類的原始碼編輯器中,開啟 PowerShell 數據檔Samples/AttributeMapping.psd1,讓 CSV 檔案數據行對應至 SCIM 標準架構屬性。 現成隨附的檔案已預先設定 CSV 檔案數據行對應至對應的 SCIM 架構屬性。

  2. 開啟 PowerShell 並變更至目錄 CSV2SCIM\src

  3. 執行下列命令來初始化 AttributeMapping 變數。

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  4. 執行下列命令來驗證檔案是否 AttributeMapping 具有有效的 SCIM 架構屬性。 如果驗證成功,此命令會 傳回 True

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  5. 除了 SCIM 核心使用者和企業使用者屬性之外,若要取得自定義 SCIM 架構命名空間 urn:ietf:params:scim:schemas:extension:contoso:1.0:User下所有 CSV 欄位的一般清單,請執行下列命令。

     .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"  > BulkRequestPayloadWithCustomNamespace.json
    

    CSV 欄位會顯示在自訂 SCIM 架構命名空間底下。 Screenshot of user details under custom schema.

擴充布建作業架構

HR 小組傳送的數據檔通常包含更多屬性,這些屬性在標準 SCIM 架構中沒有直接表示法。 若要表示這類屬性,建議您建立SCIM延伸模組架構,並在這個命名空間下新增屬性。

CSV2SCIM文本會提供稱為 UpdateSchema 的執行模式,其會讀取 CSV 檔案中的所有數據行、在擴充架構命名空間下新增它們,以及更新布建應用程式架構。

注意

如果布建應用程式架構中已經有屬性延伸,則此模式只會發出屬性延伸已經存在的警告。 因此,如果新的欄位新增至 CSV 檔案,而且您想要將它們新增為延伸模組,則無法以 UpdateSchema 模式執行CSV2SCIM腳本。

為了說明程序,我們將使用存在於 CSV2SCIM資料夾中的 CSV 檔案Samples/csv-with-2-records.csv

  1. 在 記事本、Excel 或 TextPad 中開啟 CSV 檔案Samples/csv-with-2-records.csv,以檢查檔案中存在的數據行。

    Screenshot of how to check CSV columns.

  2. 執行以下命令:

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -UpdateSchema -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"
    
  3. 您可以開啟 [屬性對應] 頁面並存取 [進階選項] 底下的 [API 編輯屬性清單] 選項,以確認布建應用程式架構的更新。

  4. [ 屬性清單 ] 會顯示新命名空間底下的屬性。

取得最新同步週期的布建記錄

傳送大量要求之後,您可以查詢 Microsoft Entra ID 所處理之最新同步處理周期的記錄。 您可以使用PowerShell腳本擷取同步統計數據和處理詳細數據,並加以儲存以供分析。

  1. 若要檢視控制臺上的記錄詳細資料和同步統計數據,請執行下列命令:

    .\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs -NumberOfCycles 1
    

    Screenshot of sync statistics.

    注意

    NumberOfCycles 預設為 1。 指定要擷取更多同步週期的數位。

  2. 若要檢視控制臺上的同步統計數據,並將記錄詳細資料儲存至變數,請執行下列命令:

    $logs=.\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs
    

    若要使用用戶端憑證驗證執行命令,請提供、 ClientIdTenantId的正確值ServicePrincipalId來執行命令:

    $ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"}  
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    $logs=.\CSV2SCIM.ps1 -ServicePrincipalId "<ProvisioningAppObjectId>" -TenantId "contoso.onmicrosoft.com" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint) -GetPreviousCycleLogs -NumberOfCycles 1
    
    • 若要查看特定記錄的詳細數據,我們可以迴圈查看集合,或選取它的特定索引,例如: $logs[0]

      Screenshot of a selected index.

    • 我們也可以使用語句來搜尋 where-object 使用sourceID或 DisplayName 的特定記錄。 在 ProvisioningLogs 屬性中,我們可以找到針對該特定記錄完成之作業的所有詳細數據。

      $user = $logs | where sourceId -eq '1222'
      $user.ProvisioningLogs | fl
      

      Screenshot of provisioning logs.

    • 我們可以在ModifiedProperties屬性上看到特定的使用者受影響的屬性。 $user.ProvisioningLogs.ModifiedProperties

      Screenshot of properties.

附錄

CSV2SCIM PowerShell 使用量詳細數據

以下是CSV2SCIM PowerShell 腳本所接受的命令行參數清單。

PS > CSV2SCIM.ps1 -Path <path-to-csv-file> 
[-ScimSchemaNamespace <customSCIMSchemaNamespace>] 
[-AttributeMapping $AttributeMapping] 
[-ServicePrincipalId <spn-guid>] 
[-ValidateAttributeMapping]
[-UpdateSchema]
[-ClientId <client-id>]
[-ClientCertificate <certificate-object>]
[-RestartService]

注意

AttributeMappingValidateAttributeMapping 命令行參數是指 CSV 資料行屬性與標準 SCIM 架構元素的對應。 它不會參考您在 Microsoft Entra 系統管理中心布建應用程式中執行的屬性對應,這些應用程式位於來源 SCIM 架構元素與目標 Microsoft Entra / 內部部署的 Active Directory 屬性之間。

參數 描述 處理備註
路徑 CSV 檔案的完整或相對路徑。 例如:.\Samples\csv-with-1000-records.csv 必要:是
ScimSchemaNamespace 自定義 SCIM 架構命名空間,用來將 CSV 檔案中的所有資料行傳送為屬於特定命名空間的自定義 SCIM 屬性。 例如,urn:ietf:params:scim:schemas:extension:csv:1.0:User 強制:只有在您想要:
- 更新布建應用程式架構或
當您想要在承載中包含自定義 SCIM 屬性時。
AttributeMapping 指向將 CSV 檔案中的數據行對應至 SCIM Core 使用者和企業用戶屬性的 PowerShell 資料 (.psd1 擴展名) 檔案。
請參閱範例: AttributeMapping.psd CSV2SCIM腳本的檔案。
例如: powershell $AttributeMapping = Import-PowerShellDataFile '.\Samples\AttributeMapping.psd1'`-AttributeMapping $AttributeMapping
必要:是
當您不需要指定此選項時,唯一的案例是在使用 UpdateSchema 參數時。
ValidateAttributeMapping 使用此 Switch 旗標來驗證 AttributeMapping 檔案是否包含符合 SCIM Core 和企業使用者架構的屬性。 必要:不建議
使用它以確保合規性。
ServicePrincipalId 布建應用程式服務主體標識碼的 GUID 值,您可以從布建應用程式>屬性>對象識別符擷取 強制:只有在您想要:
- 更新布建應用程式架構,或
將產生的大量要求傳送至 API 端點時。
UpdateSchema 使用此參數可指示文本讀取 CSV 資料行,並將其新增為布建應用程式架構中的自定義 SCIM 屬性。
ClientId 要用於 OAuth 驗證流程的 Microsoft Entra 註冊應用程式的用戶端識別碼。 此應用程式必須具備有效的憑證認證。 必要:只有在執行憑證式驗證時。
ClientCertificate 在 OAuth 流程期間使用的用戶端驗證憑證。 必要:只有在執行憑證式驗證時。
GetPreviousCycleLogs 若要取得最新同步週期的布建記錄。
NumberOfCycles 若要指定應該擷取多少個同步迴圈。 此值預設為 1。
RestartService 使用此選項時,腳本會在上傳數據之前暫時暫停布建作業,它會上傳數據,然後再次啟動作業,以確保立即處理承載。 僅在測試期間使用此選項。

AttributeMapping.psd檔案

此檔案可用來將 CSV 檔案中的數據行對應至標準 SCIM 核心使用者和企業使用者屬性架構元素。 檔案也會以大量要求承載的形式產生適當的 CSV 檔案內容表示法。

在下一個範例中,我們已將 CSV 檔案中的下列數據行對應至其對應的 SCIM 核心使用者和企業用戶屬性。

Screenshot of CSV columns for mapped attributes.

    @{
    externalId   = 'WorkerID'
    name         = @{
        familyName = 'LastName'
        givenName  = 'FirstName'
    }
    active       = { $_.'WorkerStatus' -eq 'Active' }
    userName     = 'UserID'
    displayName  = 'FullName'
    nickName     = 'UserID'
    userType     = 'WorkerType'
    title        = 'JobTitle'
    addresses    = @(
        @{
            type          = { 'work' }
            streetAddress = 'StreetAddress'
            locality      = 'City'
            postalCode    = 'ZipCode'
            country       = 'CountryCode'
        }
    )
    phoneNumbers = @(
        @{
            type  = { 'work' }
            value = 'OfficePhone'
        }
    )
    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{
        employeeNumber = 'WorkerID'
        costCenter     = 'CostCenter'
        organization   = 'Company'
        division       = 'Division'
        department     = 'Department'
        manager        = @{
            value = 'ManagerID'
        }
    }
}

下一步