共用方式為


擴充 API 驅動佈建以同步處理自訂屬性

根據預設,API 驅動佈建應用程式支援處理屬於標準 SCIM 核心使用者和企業使用者結構描述一部分的屬性。 您的記錄系統可能有您想要包含在 API 驅動佈建中的自訂屬性。 本進階教學課程說明如何擴充 API 驅動的佈建應用程式,以處理其他自訂屬性。

注意

嘗試此進階案例之前,建議您先確認您的現成布建應用程式組態是否如預期般運作,使用下列其中一個 API 用戶端 Graph ExplorercURL

範例案例

您已設定 API 驅動輸入佈建應用程式。 您正在佈建的應用程式成功取用屬於標準 SCIM 核心使用者和企業使用者結構描述的屬性,並在 Microsoft Entra ID 中佈建使用者。 您現在想要將兩個自訂屬性 HireDateJobCode 從您的 HR 系統傳送至輸入佈建 API 端點。 您要將這兩個自訂屬性對應至 Microsoft Entra 屬性 employeeHireDatejobTitle

步驟 1 - 擴充佈建應用程式結構描述

在此步驟中,我們會將不屬於標準 SCIM 結構描述的兩個屬性「HireDate」和「JobCode」新增至佈建應用程式,並在佈建資料流程中使用它們。

  1. 以至少應用程式管理員身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 Entra ID>企業應用程式
  3. 開啟您的 API 驅動佈建應用程式。
  4. 開啟 佈建面板。
  5. 點擊 編輯布建 按鈕。
  6. 展開 對應 區段,然後點擊屬性對應連結。
    編輯屬性對應的螢幕快照。
  7. 向下捲動屬性對應頁面。 選取 [顯示進階選項 ],然後按兩下 [ API] 連結的 [編輯屬性] 清單 編輯 API 屬性清單的螢幕快照。
  8. 向下捲動至 [ 編輯屬性清單 ] 頁面的結尾。
  9. 將下列兩個屬性新增至清單作為 SCIM 結構描述延伸模組。 您可以使用自己的 SCIM 結構描述命名空間。
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
    新增自訂屬性的螢幕快照。
  10. 儲存 變更

注意

如果您想要只將一些額外屬性新增至佈建應用程式,請使用 Microsoft Entra 系統管理中心來擴充結構描述。 如果您想要新增更多自定義屬性(假設有20個以上的屬性),建議您使用 UpdateSchema CSV2SCIM PowerShell 腳本的模式 ,以自動化上述手動程式。

步驟 2 - 對應自訂屬性

現在讓我們將這些延伸模組新增至佈建應用程式屬性對應。

  1. 屬性對應頁面上點擊新增對應連結。 添加新對應的螢幕快照。

  2. urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate 屬性對應至 employeeHireDate。 按一下 [確定]
    僱用日期對應的螢幕快照。

  3. 接下來,選取 title 的現有對應,然後在它上面按一下以編輯對應。

  4. 編輯屬性對應至運算式,該運算式將包含 urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode 做為 jobTitle Microsoft Entra 屬性的一部分。

      Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
    

    職稱對應的螢幕快照。

    使用此運算式對應時,如果 title 為「Tour Lead」,且 JobCode 為「TL-1001」,則 Microsoft Entra 屬性 jobTitle 會設定為「Tour Lead (TL-1001)」。

  5. 儲存屬性對應。

步驟 3 - 使用自訂屬性上傳大量要求

  1. 開啟您的 API 用戶端 (Graph Explorer / cURL)。
  2. 具備自訂屬性的大量請求複製並貼上
  3. 將大量要求傳送至佈建 API 端點 URL。
    大量上傳要求的螢幕快照。
  4. 經過一段時間之後,您可以檢查佈建記錄,以驗證屬性變更。
    配置記錄的螢幕快照。
  5. 您也可以驗證 Microsoft Entra 使用者設定檔中的變更。 Employee hire date 的值會反映您的租用戶時區。
    使用者配置檔的螢幕快照。

附錄

有自訂屬性的大量要求

大量要求包含上述步驟中所設定的自訂屬性。

請求主體

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "701984",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "234300 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                "employeeNumber": "701984",
                "costCenter": "4130",
                "organization": "Universal Studios",
                "division": "Theme Park",
                "department": "Tour Operations",
                "manager": {
                  "value": "89607",
                  "displayName": "John Smith"
                 }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2021-05-01T00:00:00-05:00",
                "JobCode": "TG-1001"
            }            
        }
    },
    {
        "method": "POST",
        "bulkId": "701985",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
              "employeeNumber": "701984",
              "costCenter": "4130",
              "organization": "Universal Studios",
              "division": "Theme Park",
              "department": "Tour Operations",
              "manager": {
                "value": "701984",
                "displayName": "Barbara Jensen"
             }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2022-07-15T00:00:00-05:00",
                "JobCode": "TL-1003"
            }            
        }
    }
],
    "failOnErrors": null
}

下一步