更新 synchronizationSchema

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

更新给定作业或模板的同步架构。 此方法将当前架构完全替换为请求中提供的架构。 若要更新模板的架构,请对应用程序对象进行调用。 必须是应用程序的所有者。

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) Synchronization.ReadWrite.All CustomSecAttributeProvisioning.ReadWrite.All
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 Application.ReadWrite.OwnedBy CustomSecAttributeProvisioning.ReadWrite.All、Synchronization.ReadWrite.All

重要

在具有工作或学校帐户的委托方案中,登录用户必须是组的所有者或成员,或者分配有受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 此操作支持以下最低特权角色。

  • 应用程序管理员
  • 云 应用程序管理员
  • 混合标识管理员 - 配置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/beta/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/beta/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:向同步规则添加新的属性映射

请求

以下示例显示了一个请求。 synchornizationSchema 在 targetAttributeName 属性之间具有一对多关系。 如果架构没有“timezone”作为目标属性,则服务会为 extensionAttribute11 --> timezone 添加一个新映射。 如果应用程序在架构中将时区作为目标属性,则服务将引发错误,因为属性只能映射为目标一次。 此外,属性必须存在于架构中,然后才能将其添加到映射。

注意: 为了提高可读性,将缩短此处所示的请求对象。 提供实际调用中的所有属性。

PUT https://graph.microsoft.com/beta/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