Share via


API 駆動型プロビジョニングを拡張してカスタム属性を同期する

既定では、API 駆動型プロビジョニング アプリは、標準の SCIM Core ユーザー スキーマと Enterprise ユーザー スキーマの一部である属性の処理をサポートします。 レコードのシステムには、API 駆動型プロビジョニングの一部として含めたいカスタム属性が含まれている場合があります。 この高度なチュートリアルでは、API 駆動型プロビジョニング アプリを拡張して、追加のカスタム属性を処理する方法について説明します。

Note

この高度なシナリオを試す前に、すぐに使用できるプロビジョニング アプリの構成が期待どおりに動作することを、Graph エクスプローラーcURL、または Postman のいずれかの API クライアントを使用して確認することをお勧めします。

シナリオ例

API 駆動型プロビジョニング アプリの構成が完了しました。 構成したプロビジョニング アプリでは、標準の SCIM Core ユーザー スキーマと Enterprise ユーザー スキーマの一部である属性が正常に使われており、また、Microsoft Entra ID ではユーザーが正常にプロビジョニングされています。 そこで、2 つのカスタム属性 HireDateJobCode を HR システムからインバウンド プロビジョニング API エンドポイントに送信したいとします。 これら 2 つのカスタム属性を、Microsoft Entra 属性 employeeHireDatejobTitle にマップする必要があります。

手順 1 - プロビジョニング アプリ スキーマを拡張する

この手順では、標準の SCIM スキーマに含まれていない 2 つの属性 "HireDate" と "JobCode" をプロビジョニング アプリに追加し、それらをプロビジョニング データ フローで使用します。

  1. アプリケーション管理者以上の権限で Microsoft Entra 管理センターにサインインします。
  2. ID>アプリケーション>エンタープライズ アプリケーション を参照します。
  3. API 駆動型プロビジョニング アプリを開きます。
  4. [プロビジョニング] ブレードを開きます。
  5. [プロビジョニングの編集] ボタンをクリックします。
  6. [マッピング] セクション を展開し、属性マッピングのリンクをクリックします。
    Screenshot of edit attribute mapping.
  7. [属性マッピング] ページを下へスクロールします。 [詳細オプションの表示] を選択し、[API 属性リストの編集] リンクを クリックします。 Screenshot of edit API attribute list.
  8. [属性リストの編集] ページの一番下までスクロールします。
  9. 次の 2 つの属性を SCIM スキーマ拡張機能としてリストに追加します。 独自の SCIM スキーマ名前空間を使用できます。
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
    Screenshot of adding custom attributes.
  10. 変更を保存します

Note

プロビジョニング アプリにいくつかの属性のみを追加する場合は、Microsoft Entra 管理センターを使用してスキーマを拡張します。 より多くのカスタム属性 (たとえば 20 以上の属性など) を追加する場合は、上記の手動プロセスを自動化する CSV2SCIM PowerShell スクリプトの UpdateSchema モードを使用することをお勧めします。

手順 2 - カスタム属性をマップする

次に、これらの拡張をプロビジョニング アプリ属性マッピングに追加しましょう。

  1. [属性マッピング] ページの [新しいマッピングの追加] リンクをクリックします。 Screenshot of add new mapping.

  2. urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate 属性を employeeHireDate にマップします。 [OK] をクリックします。
    Screenshot of hire date mapping.

  3. 次に、title の既存のマッピングを選択し、それをクリックしてマッピングを編集します。

  4. 属性マッピングを編集して、jobTitle Microsoft Entra 属性の一部として urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode を含む式にします。

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

    Screenshot of job title mapping.

    この式マッピングでは、title が "Tour Lead" で JobCode が "TL-1001" の場合、Microsoft Entra 属性 jobTitle は "Tour Lead (TL-1001)" に設定されます。

  5. 属性マッピングを保存します。

手順 3 - カスタム属性を含む一括要求をアップロードする

  1. API クライアント (Graph エクスプローラー/Postman/cURL) を開きます。
  2. カスタム属性を含む一括要求をコピーして貼り付けます。
  3. プロビジョニング API エンドポイント URL にこの一括要求を送信します。
    Screenshot of bulk upload request.
  4. しばらくすると、プロビジョニング ログをチェックして、属性の変更を確認できます。
    Screenshot of provisioning logs.
  5. Microsoft Entra ユーザー プロファイルの変更も確認できます。 Employee hire date の値は、テナントのタイム ゾーンを反映します。
    Screenshot of user profile.

付録

カスタム属性を含む一括要求

この一括要求には、上記の手順で構成されたカスタム属性が含まれます。

要求本文

{
    "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
}

次のステップ