Partager via


Étendre le provisionnement piloté par API pour synchroniser les attributs personnalisés

Par défaut, les applications de provisionnement piloté par API prennent en charge les attributs de traitement qui font partie du schéma standard d’utilisateur principal et d’utilisateur d’entreprise SCIM. Votre système d’enregistrement peut avoir des attributs personnalisés que vous pouvez inclure dans le cadre du provisionnement piloté par API. Ce tutoriel avancé explique comment étendre votre application de provisionnement piloté par API pour traiter des attributs personnalisés supplémentaires.

Note

Avant d’essayer ce scénario avancé, nous vous recommandons de vérifier que votre configuration d’application d’approvisionnement prête à l’emploi fonctionne comme prévu à l’aide de l’un des clients d’API suivants, l’Explorateur Graph, cURL.

Exemple de scénario

Vous avez configuré l’application de provisionnement piloté par API. Votre application de provisionnement utilise correctement les attributs qui font partie du schéma standard d’utilisateur principal et d’utilisateur d’entreprise SCIM, et elle attribue des utilisateurs dans Microsoft Entra. Vous souhaitez maintenant envoyer deux attributs personnalisés HireDate et JobCode de votre système RH vers le point de terminaison d’API de provisionnement entrant. Vous souhaitez mapper ces deux attributs personnalisés aux attributs Microsoft Entra employeeHireDate et jobTitle.

Étape 1 : Étendre le schéma d’application de provisionnement

Dans cette étape, nous allons ajouter les deux attributs « HireDate » et « JobCode » qui ne font pas partie du schéma SCIM standard à l’application de provisionnement et les utiliser dans le flux de données de provisionnement.

  1. Connectez-vous au Centre d’administration Microsoft Entra en tant qu’administrateur d’application au moins.
  2. Accédez aux applications Entra ID>d'entreprise.
  3. Ouvrez votre application de provisionnement piloté par API.
  4. Ouvrez le panneau Provisionnement.
  5. Cliquez sur le bouton Modifier l’approvisionnement .
  6. Développez la section Mappages, puis cliquez sur le lien de mappage d’attribut.
    Capture d’écran de la modification du mappage d’attributs.
  7. Faites défiler la page Mappages d’attributs. Sélectionnez Afficher les options avancées et cliquez sur le lien Modifier la liste des attributs pour l'API. Capture d’écran de la liste d’attributs de l’API de modification.
  8. Faites défiler jusqu’à la fin de la page Modifier la liste d’attributs .
  9. Ajoutez les deux attributs suivants à la liste en tant qu’extensions de schéma SCIM. Vous pouvez utiliser votre propre espace de noms de schéma SCIM.
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
    Capture d’écran de l’ajout d’attributs personnalisés.
  10. Enregistrer vos modifications

Note

Si vous ne souhaitez ajouter que quelques attributs supplémentaires à l’application de provisionnement, utilisez le centre d’administration Microsoft Entra pour étendre le schéma. Si vous souhaitez ajouter d’autres attributs personnalisés (supposons 20 attributs+ ), nous vous recommandons d’utiliser le UpdateSchema mode du script PowerShell CSV2SCIM qui automatise le processus manuel ci-dessus.

Étape 2 : Mapper les attributs personnalisés

Nous allons maintenant ajouter ces extensions au mappage d’attributs de l’application de provisionnement.

  1. Cliquez sur le lien Ajouter un mappage sur la page Mappage d’attributs. Capture d’écran de l’ajout d’un nouveau mappage.

  2. Mappez l’attribut urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate à employeeHireDate. Cliquez sur OK.
    Capture d’écran du mappage de la date d’embauche.

  3. Ensuite, sélectionnez le mappage existant pour title et cliquez dessus pour la modifier.

  4. Modifiez le mappage d’attributs pour obtenir une expression incluant urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode dans le cadre de l’attribut Microsoft Entra jobTitle.

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

    Capture d’écran du mappage de l’intitulé de poste.

    Avec ce mappage d’expression, si title est « Tour Lead » et JobCode est « TL-1001 », l’attribut Microsoft Entra jobTitle est défini sur « Tour Lead (TL-1001) ».

  5. Enregistrez les mappages d’attributs.

Étape 3 : Charger une requête en bloc avec des attributs personnalisés

  1. Ouvrez votre client API (Explorateur graphique/cURL).
  2. Copiez-collez la requête en bloc avec des attributs personnalisés.
  3. Envoyez la demande en bloc à l’URL du point de terminaison de votre API de provisionnement.
    Capture d’écran de la demande de chargement en bloc.
  4. Après un certain temps, vous pouvez vérifier les journaux de provisionnement pour contrôler le changement d’attribut.
    Capture d’écran des journaux d’approvisionnement.
  5. Vous pouvez également vérifier la modification dans le profil utilisateur Microsoft Entra. La valeur de Employee hire date reflète le fuseau horaire de votre locataire.
    Capture d’écran du profil utilisateur.

Annexe

Demande en bloc avec attributs personnalisés

La demande en bloc inclut les attributs personnalisés configurés lors des étapes ci-dessus.

Corps de la demande

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

Étapes suivantes