Partager via


Mettre à jour synchronizationSchema

Espace de noms: microsoft.graph

Mettez à jour le schéma de synchronisation pour un travail ou un modèle donné. Cette méthode remplace entièrement le schéma actuel par celui fourni dans la requête. Pour mettre à jour le schéma d’un modèle, effectuez l’appel sur l’objet d’application. Vous devez être le propriétaire de l’application.

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Synchronization.ReadWrite.All CustomSecAttributeProvisioning.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Application.ReadWrite.OwnedBy CustomSecAttributeProvisioning.ReadWrite.All, Synchronization.ReadWrite.All

Importante

Dans les scénarios délégués avec des comptes professionnels ou scolaires, l’utilisateur connecté doit être propriétaire ou membre du groupe ou se voir attribuer un rôle Microsoft Entra pris en charge ou un rôle personnalisé avec une autorisation de rôle prise en charge. Les rôles les moins privilégiés suivants sont pris en charge pour cette opération.

  • Administrateur de l'application
  • Administrateur de l'application cloud
  • Administrateur d’identité hybride : pour configurer Microsoft Entra Cloud Sync

Requête HTTP

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

En-têtes de demande

Nom Type Description
Autorisation string Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

Dans le corps de la demande, fournissez l’objet synchronizationSchema par lequel remplacer le schéma existant.

Réponse

En cas de réussite, retourne un 204 No Content code de réponse. Il ne retourne rien dans le corps de la réponse.

Exemples

Exemple 1 : Mettre à jour le schéma

Demande

L’exemple suivant illustre une demande.

Note: L’objet de requête présenté ici est raccourci pour plus de lisibilité. Fournissez toutes les propriétés d’un appel réel.

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

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content

Exemple 2 : ajouter l’attribut « CustomAttribute » au schéma système cible

Demande

L’exemple suivant illustre une demande. Il suppose que l’attribut « CustomAttribute » n’existe pas dans le schéma du répertoire cible. S’il existe, l’attribut est mis à jour.

Note: L’objet de requête présenté ici est raccourci pour plus de lisibilité. Fournissez toutes les propriétés d’un appel réel.

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

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content

Exemple 3 : Ajouter un nouveau mappage d’attribut aux règles de synchronisation

Demande

L’exemple suivant illustre une demande. SynchronizationSchema a une relation un-à-plusieurs entre targetAttributeName et les attributs source . Si votre schéma n’a pas de « fuseau horaire » comme attribut cible, le service ajoute un nouveau mappage pour extensionAttribute11 -> fuseau horaire. Si votre application a un fuseau horaire comme attribut cible dans le schéma, le service génère une erreur, car un attribut ne peut être mappé qu’une seule fois en tant que cible. En outre, l’attribut doit exister dans le schéma avant de pouvoir être ajouté aux mappages.

Note: L’objet de requête présenté ici est raccourci pour plus de lisibilité. Fournissez toutes les propriétés d’un appel réel.

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

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content