Partager via


Approvisionnement entrant piloté par l’API avec Azure Logic Apps

Ce tutoriel explique comment utiliser le workflow Azure Logic Apps pour implémenter l’approvisionnement entrant piloté par API avec Microsoft Entra ID. Les étapes de ce tutoriel vous permettent de convertir un fichier CSV contenant des données RH dans la charge utile d’une requête en bloc et de l’envoyer au point de terminaison de l’API d’approvisionnement /bulkUpload de Microsoft Entra. L’article fournit également des conseils sur la façon dont le même modèle d’intégration peut être utilisé avec n’importe quel système d’enregistrement.

Scénario d’intégration

Exigence professionnelle

Votre système d’enregistrement génère régulièrement des exportations de fichiers CSV contenant des données worker. Vous souhaitez implémenter une intégration qui lit les données du fichier CSV et approvisionne automatiquement les comptes d’utilisateur dans votre répertoire cible (Active Directory local pour les utilisateurs hybrides et Microsoft Entra ID pour les utilisateurs cloud uniquement).

Conditions requises pour l’implémentation

Du point de vue de l’implémentation :

  • Vous souhaitez utiliser un workflow Azure Logic Apps pour lire les données des exportations de fichiers CSV disponibles dans un partage de fichiers Azure et les envoyer au point de terminaison d’API d’approvisionnement 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 répertoire cible.
  • Vous souhaitez utiliser le service d’approvisionnement Microsoft Entra pour appliquer vos règles d’approvisionnement gérées par le service informatique afin de créer/mettre à jour/activer/désactiver automatiquement des comptes dans le répertoire cible (Active Directory local ou Microsoft Entra ID).

Graphic of Azure Logic Apps-based integration.

Variantes de scénario d’intégration

Bien que ce didacticiel utilise un fichier CSV comme système d’enregistrement, vous pouvez personnaliser l’exemple de flux de travail Azure Logic Apps pour lire les données de n’importe quel système d’enregistrement. Azure Logic Apps fournit un large é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 une liste des variantes de scénario d’intégration d’entreprise, où l’approvisionnement entrant piloté par les 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 le serveur SFTP Utilisez le connecteur SFTP intégré ou le connecteur SSH SFTP managé pour lire les données des 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 vos données de table.
Si vous utilisez une base de données Oracle, utilisez le connecteur de base de données Oracle pour lire vos données de table.
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 des données d’identité à partir de votre système SAP. Pour obtenir des exemples sur la configuration de ce connecteur, reportez-vous aux scénarios d’intégration SAP courants à l’aide d’Azure Logic Apps et du connecteur SAP.
4 IBM MQ Utilisez le connecteur IBM MQ pour recevoir des messages d’approvisionnement 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 Ressources humaines.
6 Tout système qui expose des API REST Si vous ne trouvez pas de connecteur 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 de votre système d’enregistrement.

Après avoir lu les données sources, appliquez vos règles de prétraitement et convertissez la sortie de votre système d’enregistrement en une requête en bloc qui peut être envoyée au point de terminaison de l’API d’approvisionnement /bulkUpload de Microsoft Entra.

Important

Si vous souhaitez partager votre flux de travail d’intégration entrant piloté par l’API avec la communauté, créez un modèle d’application logique, documentez les étapes à suivre pour l’utiliser et envoyez une demande de tirage pour inclusion dans le référentiel GitHub entra-id-inbound-provisioning.

Utilisation de ce didacticiel

Le modèle de déploiement Logic Apps publié dans le référentiel GitHub d’approvisionnement entrant de Microsoft Entra automatise plusieurs tâches. Il propose également une logique de gestion des fichiers CSV volumineux et de segmentation de la requête en bloc en vue d’envoyer 50 enregistrements dans chaque requête. Voici comment le tester et le personnaliser en fonction de vos besoins d’intégration.

Notes

L’exemple de workflow Azure Logic Apps est fourni « en l’état » à des fins de référence d’implémentation. Si vous avez des questions ou des propositions d’amélioration à ce sujet, utilisez le référentiel de projets GitHub.

# Tâche d’automatisation Conseils d’implémentation Personnalisation avancée
1 Lire les données Worker depuis le 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, mettez à jour les étapes de flux de travail « Analyser JSON » et « Construire SCIMUser ». Si votre système d’enregistrement est différent, veuillez consulter l’aide fournie dans la section Variantes de scénario d’intégration sur la façon dont vous pouvez personnaliser le flux de travail Logic Apps à l’aide d’un connecteur approprié.
2 Prétraiter et convertir des données au format SCIM. Par défaut, le flux de travail Logic Apps convertit chaque enregistrement du fichier CSV en une représentation utilisateur SCIM Core + Enterprise User. Si vous envisagez d’utiliser des extensions de schéma SCIM personnalisées,mettez à jour l’étape « Construire SCIMUser » pour inclure vos extensions de schéma SCIM personnalisées. Si vous souhaitez exécuter du code C# pour une mise en forme avancée et la validation des données, utilisez des fonctions Azure Functions personnalisées.
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 d’approvisionnement entrant. Mettez à jour l’étape « Envoyer SCIMBulkPayload au point de terminaison d’API » avec la méthode d’authentification appropriée. -
4 Provisionner des comptes dans Active Directory local ou Microsoft Entra ID. Configurez l’application d’approvisionnement entrant pilotée par API. Cela génère un point de terminaison d'API /bulkUpload unique. Mettez à jour l’étape « Envoyer SCIMBulkPayload au point de terminaison d’API » pour utiliser le bon point de terminaison d’API bulkUpload. Si vous envisagez d’utiliser une requête en bloc avec un schéma SCIM personnalisé, étendez le schéma d’application d’approvisionnement pour inclure vos éléments de schéma SCIM personnalisé.
5 Analysez les journaux d’approvisionnement et réessayez l’approvisionnement des enregistrements ayant échoué. Cette automatisation n’est pas encore implémentée dans l’exemple de workflow Logic Apps. Pour l’implémenter, veuillez consulter les journaux d’approvisionnement API Graph. -
6 Déployez votre automatisation basée sur Logic Apps en production. Après avoir vérifié votre flux d’approvisionnement piloté par les API, puis personnalisé le flux de travail Logic Apps pour répondre à vos besoins, déployez l’automatisation dans votre environnement. -

Étape 1 : créer un compte 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 existant ou si vous souhaitez lire le fichier CSV depuis une autre source (comme le site SharePoint ou le stockage Blob), mettez à jour l’application logique pour utiliser le connecteur de votre choix.

  1. Connectez-vous au Portail Azure au moins en tant qu’Administrateur d’application.
  2. Recherchez « Comptes de stockage » et créez un compte de stockage. Screenshot of creating new storage account.
  3. Attribuez un groupe de ressources et donnez-lui un nom. Screenshot of resource group assignment.
  4. Une fois le compte de stockage créé, accédez à la ressource.
  5. Cliquez sur l’option de menu « Partage de fichiers » et créez un partage de fichiers. Screenshot of creating new file share.
  6. Vérifiez que la création du partage de fichiers a réussi. Screenshot of file share created.
  7. Chargez un exemple de fichier CSV dans le partage de fichiers avec l’option de chargement.
  8. Voici une capture d’écran des colonnes du fichier CSV. Screenshot of columns in Excel.

Étape 2 : configurer le convertisseur CSV2JSON de fonction Azure

  1. Dans le navigateur utilisé pour votre Portail Azure, ouvrez l’URL du dépôt GitHub (https://github.com/joelbyford/CSVtoJSONcore).

  2. Cliquez sur le lien « Déployer sur Azure » pour déployer la fonction Azure sur votre locataire Azure. Screenshot of deploying Azure Function.

  3. Spécifiez le groupe de ressources sous lequel déployer la fonction Azure. Screenshot of configuring Azure Function resource group.

    Si vous obtenez l’erreur « Cette région a un quota de 0 instance », essayez de sélectionner une autre région.

  4. Assurez-vous que le déploiement de la fonction Azure en tant qu’App Service réussit.

  5. Accédez au groupe de ressources et ouvrez la configuration de l’application web. Vérifiez qu’il se trouve dans l’état « En cours d’exécution ». Copiez le nom de domaine par défaut associé à l’application web. Screenshot of Azure Function Web App domain name.

  6. Ouvrez le client Postman pour tester si le point de terminaison CSVtoJSON fonctionne correctement. Collez le nom de domaine copié à l’étape précédente. Utilisez le type de contenu "text/csv" et publiez un exemple de fichier CSV dans le corps de la requête sur le point de terminaison : https://[your-domain-name]/csvtojsonScreenshot of Postman client calling the Azure Function.

  7. Si le déploiement de la fonction Azure réussit, réponse comporte une version JSON du fichier CSV avec l’état « 200 OK ».

    Screenshot of Azure Function response.

  8. Pour permettre à Logic Apps d’appeler la fonction Azure, entrez un astérisque (*) dans le paramètre CORS de l’application web et « Enregistrez » la configuration. Screenshot of Azure Function CORS setting.

Étape 3 : configurer l’approvisionnement d’utilisateurs entrant piloté par API

Étape 4 : configurer votre workflow Azure Logic Apps

  1. Cliquez sur le bouton ci-dessous pour déployer le modèle Azure Resource Manager pour le workflow Logic Apps CSV2SCIMBulkUpload.

    Deploy to Azure

  2. Sous « Détails de l’instance », mettez à jour les éléments en surbrillance, en faisant un copier-coller des valeurs des étapes précédentes. Screenshot of Azure Logic Apps instance details.

  3. Pour le paramètre Azurefile_access Key, ouvrez votre compte de stockage de fichiers Azure et copiez la clé d’accès qui se trouve sous « Sécurité et mise en réseau ».
    Screenshot of Azure File access keys.

  4. Cliquez sur l’option « Vérifier et créer » pour démarrer le déploiement.

  5. Une fois le déploiement terminé, les ressources suivantes s’affichent dans le groupe de ressources. Screenshot of Azure Logic Apps deployment complete.

Étape 5 : configurer une identité managée affectée par le système

  1. Accédez au panneau Paramètres > Identité du workflow Logic Apps.
  2. Activez Identité managée affectée par le système. Screenshot of enabling managed identity.
  3. Une invite vous demande de confirmer l’utilisation de l’identité managée. Cliquez sur Oui.
  4. Accordez à l’identité managée les autorisations pour effectuer un chargement en bloc.

Étape 6 : passer en revue et ajuster les étapes du workflow

  1. Ouvrez l’application logique dans la vue « Concepteur ». Screenshot of Azure Logic Apps designer view.

  2. Passez en revue la configuration de chaque étape du workflow pour vous assurer qu’elles sont correctes.

  3. Ouvrez l’étape « Obtenir le contenu du fichier à l’aide du chemin » et corrigez-la pour accéder au stockage de fichiers Azure dans votre locataire. Screenshot of get file content.

  4. Mettez à jour la connexion si nécessaire.

  5. Assurez-vous que l’étape « Convertir CSV en JSON » pointe vers la bonne instance d’application web de la fonction Azure. Screenshot of Azure Function call invocation to convert from CSV to JSON.

  6. Si le contenu ou les en-têtes du fichier CSV sont différents, mettez à jour l’étape « Analyser JSON » avec la sortie JSON que vous pouvez récupérer depuis l’appel de l’API adressé à la fonction Azure. Utilisez la sortie Postman de l’étape 2. Screenshot of Parse JSON step.

  7. À l’étape « Créer l’utilisateur SCIM », vérifiez que les champs CSV sont correctement mappés vers les attributs SCIM à utiliser pour le traitement.

    Screenshot of Construct SCIM user step.

  8. À l’étape « Envoyer SCIMBulkPayload au point de terminaison d’API », vérifiez que vous utilisez le point de terminaison d’API et le mécanisme d’authentification appropriés.

    Screenshot of invoking bulk upload API with managed identity.

Étape 7 : exécuter le déclencheur et tester le workflow Logic Apps

  1. Dans la version « En disponibilité générale » du concepteur Logic Apps, cliquez sur « Exécuter le déclencheur » pour exécuter manuellement le workflow. Screenshot of running the Logic App.
  2. Une fois l’exécution terminée, examinez l’action que Logic Apps a effectuée dans chaque itération.
  3. Dans l’itération finale, les données de chargement de Logic Apps vers le point de terminaison de l’API d’approvisionnement entrant doivent s’afficher. Recherchez code d’état 202 Accept. Vous pouvez copier-coller et vérifier la requête de chargement en bloc. Screenshot of the Logic Apps execution result.

Étapes suivantes