Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel explique comment utiliser le workflow Azure Logic Apps pour implémenter le provisionnement entrant piloté par l’API avec Microsoft Entra ID. Suivez les étapes présentées ci-après pour convertir un fichier CSV contenant des données RH dans la charge utile d’une requête en bloc et l’envoyer au point de terminaison de l’API de provisionnement /bulkUpload de Microsoft Entra. L’article fournit également des conseils sur la façon d’adapter ce même modèle d’intégration pour l’utiliser avec n’importe quel système d’enregistrement.
Scénario d’intégration
Exigence commerciale
Votre système d’enregistrement génère régulièrement des fichiers CSV contenant des données sur les employés. Vous souhaitez implémenter une intégration qui lit les données issues de ces fichiers CSV et provisionne automatiquement les comptes d’utilisateur dans votre annuaire cible (Active Directory local pour les utilisateurs hybrides et Microsoft Entra ID pour les utilisateurs cloud uniquement).
Exigences d’implémentation
D’un point de vue technique :
- Vous souhaitez utiliser un workflow Azure Logic Apps pour lire les données issues des fichiers CSV stockés dans un partage de fichiers Azure et les envoyer au point de terminaison de l’API de provisionnement entrant.
- Dans votre workflow Azure Logic Apps, vous ne souhaitez pas implémenter la logique complexe de comparaison des données d’identité entre votre système d’enregistrement et votre annuaire cible.
- Vous souhaitez vous appuyer sur le service de provisionnement Microsoft Entra pour appliquer vos règles de provisionnement gérées par le service informatique afin de créer,mettre à jour, activer ou désactiver automatiquement des comptes dans l’annuaire cible (Active Directory local ou Microsoft Entra ID).
Variantes du scénario d’intégration
Bien que ce tutoriel utilise un fichier CSV comme système d’enregistrement, vous pouvez adapter le workflow Azure Logic Apps proposé pour lire les données depuis n’importe quel système d’enregistrement. Azure Logic Apps offre un vaste éventail de connecteurs intégrés et de connecteurs managés, avec des déclencheurs et des actions prédéfinis, que vous pouvez utiliser dans votre workflow d’intégration.
Voici quelques exemples de variantes au scénario d’intégration d’entreprise, dans lesquelles le provisionnement entrant piloté par l’API peut être implémenté avec un workflow Logic Apps.
| # | Système d’enregistrement | Conseils d’intégration sur l’utilisation de Logic Apps pour lire les données sources |
|---|---|---|
| 1 | Fichiers stockés sur serveur SFTP | Utilisez le connecteur SFTP intégré ou le connecteur SSH SFTP managé pour lire les données contenues dans les fichiers stockés sur le serveur SFTP. |
| 2 | Table de base de données | Si vous utilisez un serveur Azure SQL ou un SQL Server local, utilisez le connecteur SQL Server pour lire les données de vos tables. Si vous utilisez une base de données Oracle, utilisez le connecteur Oracle Database pour lire les données de vos tables. |
| 3 | SAP S/4 HANA hébergé localement et dans le cloud ou systèmes SAP locaux classiques, comme R/3 et ECC |
Utilisez le connecteur SAP pour récupérer les données d’identité depuis votre système SAP. Pour des exemples de configuration, consultez les scénarios d’intégration SAP courants avec Azure Logic Apps et le connecteur SAP. |
| 4 | IBM MQ | Utilisez le connecteur IBM MQ pour recevoir des messages de provisionnement de la file d’attente. |
| 5 | Dynamics 365 Human Resources | Utilisez le connecteur Dataverse pour lire les données des tables Dataverse utilisées par Microsoft Dynamics 365 Human Resources. |
| 6 | Tout système exposant des API REST | Si aucun connecteur n’est disponible pour votre système d’enregistrement dans la bibliothèque de connecteurs Logic Apps, vous pouvez créer votre propre connecteur personnalisé pour lire les données. |
Une fois les données sources lues, appliquez vos règles de prétraitement et convertissez la sortie de votre système d’enregistrement en une requête en bloc à envoyer au point de terminaison de l’API de provisionnement /bulkUpload de Microsoft Entra.
Importante
Si vous souhaitez partager votre workflow d’intégration Logic Apps et de provisionnement entrant piloté par l’API avec la communauté, créez un modèle d’application logique, documentez les étapes d’utilisation et envoyez une demande de tirage pour inclusion dans le référentiel GitHub entra-id-inbound-provisioning.
Utilisation du tutoriel
Le modèle de déploiement Logic Apps publié dans le référentiel GitHub de provisionnement entrant de Microsoft Entra automatise plusieurs tâches. Il contient également une logique de gestion des fichiers CSV volumineux, en divisant automatiquement les requêtes en lots de 50 enregistrements. Voici comment vous pouvez le tester et le personnaliser en fonction de vos besoins d’intégration.
Note
L’exemple de workflow Azure Logic Apps est fourni « en l’état » à des fins de référence. Si vous avez des questions ou des propositions d’amélioration, utilisez le référentiel GitHub du projet.
| # | Tâche d’automatisation | Conseils de mise en œuvre | Personnalisation avancée |
|---|---|---|---|
| 1 | Lire les données des employés à partir du fichier CSV. | Le workflow Logic Apps utilise une fonction Azure pour lire le fichier CSV stocké dans un partage de fichiers Azure. La fonction Azure convertit les données CSV au format JSON. Si le format de votre fichier CSV est différent, modifiez les étapes « Parse JSON » (Analyser JSON) et « Construct SCIMUser » (Créer SCIMUser) du workflow. | Si votre système d’enregistrement est différent, consultez les directives fournies dans la section Variantes du scénario d’intégration sur la façon dont vous pouvez adapter le workflow Logic Apps avec le connecteur approprié. |
| 2 | Prétraiter les données et les convertir au format SCIM. | Par défaut, le workflow Logic Apps convertit chaque enregistrement du fichier CSV en une représentation SCIM Core User + Enterprise User. Si vous envisagez d’utiliser des extensions de schéma SCIM personnalisées, modifiez l’étape « Construct SCIMUser » pour les inclure. | Si vous souhaitez appliquer des règles avancées de formatage ou de validation, utilisez des fonctions Azure personnalisées en C#. |
| 3 | Utiliser la méthode d’authentification appropriée. | Vous pouvez utiliser un principal de service ou utiliser une identité managée pour accéder à l’API de provisionnement entrant. Modifiez l’étape « Send SCIMBulkPayload to API endpoint » (Envoyer SCIMBulkPayload au point de terminaison d’API) avec la méthode d’authentification appropriée. | - |
| 4 | Provisionner les comptes dans Active Directory local ou Microsoft Entra ID. | Configurez l’application de provisionnement entrant piloté par l’API. Cela génère un point de terminaison d'API /bulkUpload unique. Modifiez l’étape « Send SCIMBulkPayload to API endpoint » pour utiliser le point de terminaison d’API bulkUpload approprié. | Si vous envisagez d’utiliser une requête en bloc avec un schéma SCIM personnalisé, étendez le schéma d’application de provisionnement pour inclure vos attributs de schéma SCIM personnalisé. |
| 5 | Analyser les journaux de provisionnement et relancer le provisionnement des enregistrements ayant échoué. | Cette automatisation n’est pas encore implémentée dans l’exemple de flux de travail Logic Apps. Pour l’implémenter, consultez les journaux de provisionnement de l’API Graph. | - |
| 6 | Déployer votre automatisation basée sur Logic Apps en production. | Après avoir vérifié votre flux de provisionnement piloté par l’API, puis personnalisé le workflow Logic Apps pour qu’il réponde à vos besoins, déployez l’automatisation dans votre environnement. | - |
Étape 1 : Créer un compte de stockage Azure pour héberger le fichier CSV
Les étapes documentées dans cette section sont facultatives. Si vous disposez déjà d’un compte de stockage ou si vous préférez lire le fichier CSV depuis une autre source (comme un site SharePoint ou un stockage Blob), vous pouvez simplement adapter l’application logique de façon à utiliser le connecteur de votre choix.
- Connectez-vous au portail Azure avec un compte disposant au moins du rôle Administrateur d’application.
- Recherchez « Comptes de stockage » et créez un compte de stockage.
- Attribuez un groupe de ressources et donnez-lui un nom.
- Une fois le compte de stockage créé, accédez à la ressource.
- Sélectionnez l’option de menu « Partage de fichiers » et créez un partage de fichiers.
- Vérifiez que le partage de fichiers a bien été créé.
- Chargez un exemple de fichier CSV dans le partage de fichiers à l’aide de l’option prévue à cet effet.
- Voici une capture d’écran des colonnes du fichier CSV.
Étape 2 : Configurer le convertisseur CSV2JSON Azure Function
Dans votre navigateur connecté au portail Azure, ouvrez l’URL du référentiel GitHub - https://github.com/joelbyford/CSVtoJSONcore.
Sélectionnez le lien « Déployer sur Azure » pour déployer cette fonction Azure sur votre locataire Azure.
Spécifiez le groupe de ressources dans lequel vous souhaitez déployer la fonction.
Si vous obtenez l’erreur « Cette région a un quota de 0 instance », essayez de sélectionner une autre région.
Vérifiez que le déploiement de la fonction Azure en tant qu’App Service aboutit.
Accédez au groupe de ressources et ouvrez la configuration de l’application web. Vérifiez que son état est « En cours d’exécution ». Copiez le nom de domaine par défaut associé à l’application web.
Exécutez le script PowerShell suivant pour tester si le point de terminaison CSVtoJSON fonctionne correctement. Définissez les variables
$csvFilePathet$urisur les bonnes valeurs dans le script.# Step 1: Read the CSV file $csvFilePath = "C:\Path-to-CSV-file\hr-user-data.csv" $csvContent = Get-Content -Path $csvFilePath # Step 2: Set up the request $uri = "https://az-function-webapp-your-domain/csvtojson" $headers = @{ "Content-Type" = "text/csv" } $body = $csvContent -join "`n" # Join the CSV lines into a single string # Step 3: Send the POST request $response = Invoke-WebRequest -Uri $uri -Method POST -Headers $headers -Body $body # Output and format the JSON response $response.Content | ConvertFrom-JSON | ConvertTo-JSONSi le déploiement de la fonction Azure aboutit, la dernière ligne du script renvoie la version JSON du fichier CSV.
Pour permettre à Logic Apps d’appeler la fonction Azure, accédez aux paramètres CORS de l’application web, entrez un astérisque (*) et enregistrez la configuration.
Étape 3 : Configurer le provisionnement d’utilisateurs entrant piloté par l’API
- Configurez le provisionnement d’utilisateurs entrant piloté par l’API.
Étape 4 : Configurer votre workflow Azure Logic Apps
Sélectionnez le bouton ci-dessous pour déployer le modèle Azure Resource Manager pour le flux de travail CSV2SCIMBulkUpload Logic Apps.
Sous la section des informations sur l’instance, mettez à jour les champs en surbrillance en copiant-collant les valeurs obtenues lors des étapes précédentes.
Pour le paramètre
Azurefile_access Key, accédez à votre compte de stockage Azure et copiez la clé d’accès située dans la section « Sécurité et mise en réseau ».
Sélectionnez l’option « Vérifier et créer » pour démarrer le déploiement.
Une fois le déploiement terminé, le message suivant s’affiche.
Étape 5 : Configurer une identité managée affectée par le système
- Accédez à Paramètres -> Identité dans votre workflow Logic Apps.
- Activez l’identité managée affectée par le système.
- Une invite de confirmation s’affiche pour valider l’activation de l’identité managée. Sélectionnez Oui.
- Accordez à l’identité managée les autorisations nécessaires pour effectuer un chargement en bloc.
Étape 6 : Passer en revue et ajuster les étapes du workflow
Passez en revue la configuration de chaque étape du flux de travail pour vous assurer qu’elle est correcte.
Ouvrez l’étape « Get file content using path » (Obtenir le contenu du fichier à l’aide du chemin) et modifiez le chemin pour qu’il pointe vers le stockage de fichiers Azure dans votre locataire.
Mettez à jour la connexion si nécessaire.
Assurez-vous que l’étape « Convert CSV to JSON » (Convertir CSV en JSON) pointe vers la bonne instance d’application web de la fonction Azure.
Si le contenu ou les en-têtes du fichier CSV sont différents, modifiez l’étape « Parse JSON » avec la sortie JSON obtenue suite à votre appel d’API à la fonction Azure. Utilisez la sortie PowerShell de l’étape 2.
À l’étape « Construct SCIMUser », vérifiez que les champs de votre fichier CSV sont correctement mappés aux attributs SCIM à utiliser pour le traitement.
À l’étape « Envoyer SCIMBulkPayload au point de terminaison d’API », vérifiez que vous utilisez le bon point de terminaison d’API et le mécanisme d’authentification.
Étape 7 : Exécuter le déclencheur et tester le workflow Logic Apps
- Dans la version « Disponibilité générale » du concepteur Logic Apps, sélectionnez le déclencheur d’exécution pour exécuter manuellement le flux de travail.
- Une fois l’exécution terminée, examinez l’action que Logic Apps a effectuée dans chaque itération.
- Dans l’itération finale, les données de chargement de Logic Apps vers le point de terminaison de l’API de provisionnement entrant doivent s’afficher. Recherchez code d’état
202 Accept. Vous pouvez copier-coller et vérifier la requête de chargement en bloc.



