Compartilhar via


Sincronização de atualizaçõesSchema

Namespace: microsoft.graph

Atualize o esquema de sincronização de um determinado trabalho ou modelo. Este método substitui totalmente o esquema atual pelo fornecido no pedido. Para atualizar o esquema de um modelo, faça a chamada no objeto da aplicação. Tem de ser o proprietário da aplicação.

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) Synchronization.ReadWrite.All CustomSecAttributeProvisioning.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Application.ReadWrite.OwnedBy CustomSecAttributeProvisioning.ReadWrite.All, Synchronization.ReadWrite.All

Em cenários delegados com contas escolares ou profissionais, o utilizador com sessão iniciada tem de ser proprietário ou membro do grupo ou ser-lhe atribuída uma função de Microsoft Entra suportada ou uma função personalizada com uma permissão de função suportada. As seguintes funções com menos privilégios são suportadas para esta operação.

  • Administrador de Aplicativos
  • Administrador de Aplicativos de Nuvem
  • Administrador de Identidade Híbrida – para configurar o Microsoft Entra Cloud Sync

Solicitação HTTP

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

Cabeçalhos de solicitação

Nome Tipo Descrição
Autorização string {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

No corpo do pedido, forneça o objeto synchronizationSchema para substituir o esquema existente por.

Resposta

Se for bem-sucedido, devolve um código de 204 No Content resposta. Não devolve nada no corpo da resposta.

Exemplos

Exemplo 1: Atualizar esquema

Solicitação

O exemplo a seguir mostra uma solicitação.

Nota: O objeto de pedido apresentado aqui é abreviado para legibilidade. Forneça todas as propriedades numa chamada real.

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"
                        },
                    ]
                },
            ]
        },
    ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 2: adicionar o atributo "CustomAttribute" ao esquema do sistema de destino

Solicitação

O exemplo a seguir mostra uma solicitação. Assume que o atributo "CustomAttribute" não existe no esquema do diretório de destino. Se existir, o atributo é atualizado.

Nota: O objeto de pedido apresentado aqui é abreviado para legibilidade. Forneça todas as propriedades numa chamada real.

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":[]
                  }
               ]
            }
         ]
      }
   ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 3: adicionar um novo mapeamento de atributos às regras de sincronização

Solicitação

O exemplo a seguir mostra uma solicitação. A synchronizationSchema tem uma relação um-para-muitos entre targetAttributeName e atributos de origem . Se o esquema não tiver "fuso horário" como atributo de destino, o serviço adiciona um novo mapeamento para extensionAttribute11 --> fuso horário. Se a sua aplicação tiver o fuso horário como um atributo de destino no esquema, o serviço gera um erro porque um atributo só pode ser mapeado como um destino uma vez. Além disso, o atributo tem de existir no esquema antes de poder ser adicionado aos mapeamentos.

Nota: O objeto de pedido apresentado aqui é abreviado para legibilidade. Forneça todas as propriedades numa chamada real.

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

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content