同期の更新Schema

名前空間: microsoft.graph

特定のジョブまたはテンプレートの同期スキーマを更新します。 このメソッドは、現在のスキーマを要求で指定されたものに完全に置き換えます。 テンプレートのスキーマを更新するには、アプリケーション オブジェクトで を呼び出します。 アプリケーションの所有者である必要があります。

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Synchronization.ReadWrite.All CustomSecAttributeProvisioning.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Application.ReadWrite.OwnedBy CustomSecAttributeProvisioning.ReadWrite.All、Synchronization.ReadWrite.All

職場または学校アカウントを使用した委任されたシナリオでは、サインインしているユーザーは、グループの所有者またはメンバーであるか、サポートされているMicrosoft Entraロールまたはサポートされているロールのアクセス許可を持つカスタム ロールが割り当てられている必要があります。 この操作では、次の最小特権ロールがサポートされています。

  • アプリケーション管理者
  • クラウド アプリケーション管理者
  • ハイブリッド ID 管理者 - クラウド同期Microsoft Entra構成する

HTTP 要求

PUT /servicePrincipals/{id}/synchronization/jobs/{jobId}/schema
PUT /applications/{id}/synchronization/templates/{templateId}/schema

要求ヘッダー

名前 説明
Authorization string ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。

要求本文

要求本文で、既存のスキーマを に置き換える synchronizationSchema オブジェクトを指定します。

応答

成功した場合は、 204 No Content 応答コードを返します。 応答本文では何も返されません。

例 1: スキーマを更新する

要求

次の例は要求を示しています。

手記: ここで示す要求オブジェクトは、読みやすくするために短縮されています。 実際の呼び出しですべてのプロパティを指定します。

PUT https://graph.microsoft.com/v1.0/servicePrincipals/{id}/synchronization/jobs/{jobId}/schema
Content-type: application/json

{
    "directories": [
        {
            "name": "Azure Active Directory",
            "objects": [
                {
                    "name": "User",
                    "attributes": [
                        {
                            "name": "userPrincipalName",
                            "type": "string"
                        }
                    ]
                },
            ]
        },
        {
            "name": "Salesforce",
        }
    ],
    "synchronizationRules":[
        {
            "name": "USER_TO_USER",
            "sourceDirectoryName": "Azure Active Directory",
            "targetDirectoryName": "Salesforce",
            "objectMappings": [
                {
                    "sourceObjectName": "User",
                    "targetObjectName": "User",
                    "attributeMappings": [
                        {
                            "source": {},
                            "targetAttributeName": "userName"
                        },
                    ]
                },
            ]
        },
    ]
}

応答

次の例は応答を示しています。

HTTP/1.1 204 No Content

例 2: ターゲット システム スキーマに属性 "CustomAttribute" を追加する

要求

次の例は要求を示しています。 ターゲット ディレクトリ スキーマに属性 "CustomAttribute" が存在しないことを前提としています。 存在する場合は、属性が更新されます。

手記: ここで示す要求オブジェクトは、読みやすくするために短縮されています。 実際の呼び出しですべてのプロパティを指定します。

PUT https://graph.microsoft.com/v1.0/servicePrincipals/{id}/synchronization/jobs/{jobId}/schema
Content-type: application/json

{
   "directories":[
      {
         "id":"09760868-cafb-47ac-9031-0a3262300427",
         "name":"customappsso",
         "objects":[
            {
               "name":"User",
               "attributes":[
                  {
                     "anchor":false,
                     "caseExact":false,
                     "defaultValue":null,
                     "flowNullValues":false,
                     "multivalued":false,
                     "mutability":"ReadWrite",
                     "name":"urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User:CustomAttribute",
                     "required":false,
                     "type":"String",
                     "apiExpressions":[],
                     "metadata":[],
                     "referencedObjects":[]
                  }
               ]
            }
         ]
      }
   ]
}

応答

次の例は応答を示しています。

HTTP/1.1 204 No Content

例 3: 同期規則に新しい属性マッピングを追加する

要求

次の例は要求を示しています。 synchronizationSchema には、 targetAttributeNameソース 属性の間に 1 対多のリレーションシップがあります。 スキーマにターゲット属性として "タイムゾーン" がない場合、サービスは extensionAttribute11 --> タイムゾーンの新しいマッピングを追加します。 アプリケーションがスキーマのターゲット属性としてタイムゾーンを持っている場合、属性をターゲットとしてマップできるのは 1 回だけであるため、サービスはエラーをスローします。 さらに、マッピングに追加する前に、属性がスキーマに存在している必要があります。

手記: ここで示す要求オブジェクトは、読みやすくするために短縮されています。 実際の呼び出しですべてのプロパティを指定します。

PUT https://graph.microsoft.com/v1.0/servicePrincipals/{id}/synchronization/jobs/{jobId}/schema
Content-type: application/json

{
   "@odata.type":"#microsoft.graph.synchronizationSchema",
   "synchronizationRules":[
      {
         "defaultValue":"",
         "exportMissingReferences":false,
         "flowBehavior":"FlowWhenChanged",
         "flowType":"Always",
         "matchingPriority":0,
         "source":{
            "expression":"[extensionAttribute11]",
            "name":"extensionAttribute11",
            "parameters":[],
            "type":"Attribute"
         },
         "targetAttributeName":"timezone"
      }
   ]
}

応答

次の例は応答を示しています。

HTTP/1.1 204 No Content