Étendre l’approvisionnement piloté par les API pour synchroniser les attributs personnalisés
Par défaut, les applications d’approvisionnement pilotées par les 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 souhaiterez peut-être inclure dans le cadre de l’approvisionnement piloté par les API. Ce tutoriel avancé explique comment étendre votre application d’approvisionnement pilotée par l’API pour traiter des attributs personnalisés supplémentaires.
Remarque
Avant d’essayer ce scénario avancé, nous vous recommandons de vérifier que la configuration de votre application de provisionnement prête à l’emploi fonctionne comme prévu à l’aide de l’un des clients d’API Afficheur Graph ou cURL.
Exemple de scénario
Vous avez configuré l’application d’approvisionnement pilotée par l’API. L’approvisionnement de l’application utilise correctement les attributs qui font partie du schéma standard d’utilisateur principal SCIM et d’utilisateur d’entreprise et approvisionne les utilisateurs dans Microsoft Entra. Vous souhaitez maintenant envoyer deux attributs personnalisés HireDate
et JobCode
de votre système RH au point de terminaison d’API d’approvisionnement entrant. Vous souhaitez mapper ces deux attributs personnalisés aux attributs employeeHireDate
et jobTitle
de Microsoft Entra.
Étape 1 : étendre le schéma d’application d’approvisionnement
Dans cette étape, nous allons ajouter les deux attributs « HireDate » et « JobCode » qui ne font pas partie du schéma SCIM standard à l’application d’approvisionnement et les utiliser dans le flux de données d’approvisionnement.
- Connectez-vous au centre d'administration Microsoft Entra au minimum en tant qu’Administrateur d'application.
- Accédez à Identité>Applications>Applications d’entreprise.
- Ouvrez votre application de provisionnement basée sur l'API.
- Ouvrez le panneau Approvisionnement.
- Cliquez sur le bouton Modifier l’approvisionnement .
- Développez la section Mappages et cliquez sur le lien mappage d’attributs.
- Faites défiler la page Mappages d’attributs vers le bas. Sélectionnez Afficher les options avancées, puis cliquez sur le lien Modifier la liste des attributs pour l’API .
- Faites défiler jusqu’à la fin de la page Modifier la liste d’attributs .
- 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
- Enregistrez vos modifications
Remarque
Si vous souhaitez ajouter seulement quelques attributs supplémentaires à l’application d’approvisionnement, utilisez le centre d’administration de Microsoft Entra pour étendre le schéma. Si vous souhaitez ajouter d’autres attributs personnalisés (supposons plus de 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 d’application d’approvisionnement.
Cliquez sur le lien Ajouter un nouveau mappage dans la page Mappage d’attributs .
Mapper l’attribut
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
àemployeeHireDate
. Cliquez sur OK.
Ensuite, sélectionnez le mappage existant pour
title
et cliquez dessus pour modifier le mappage.Modifiez le mappage d’attributs à une expression qui inclura le
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
dans le cadre de l’attribut Microsoft EntrajobTitle
.Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
Avec ce mappage d’expressions, si
title
est « Tour Lead » etJobCode
est « TL-1001 », l’attribut Microsoft EntrajobTitle
AD est défini sur « Tour Lead (TL-1001) ».Enregistrez les mappages d’attributs.
Étape 3 : charger une requête en bloc avec des attributs personnalisés
- Ouvrez votre client API (afficheur Graph/cURL).
- Copiez-collez la demande en bloc avec des attributs personnalisés.
- Envoyez la demande en bloc à l’URL du point de terminaison de l’API d’approvisionnement.
- Après un certain temps, vous pouvez vérifier les journaux d’approvisionnement pour vérifier le changement d’attribut.
- Vous pouvez également vérifier la modification du profil utilisateur Microsoft Entra. La valeur de
Employee hire date
reflète le fuseau horaire de votre locataire.
Annexe
Demande en bloc avec des attributs personnalisés
La demande en bloc inclut les attributs personnalisés configurés dans les é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
}