Partage 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).

Graphique représentant une intégration basée sur Azure Logic Apps.

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. Capture d’écran de la création d’un compte de stockage.
  3. Attribuez un groupe de ressources et donnez-lui un nom. Capture d’écran de l’attribution d’un groupe de ressources.
  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. Capture d’écran de la création d’un partage de fichiers.
  6. Vérifiez que la création du partage de fichiers a réussi. Capture d’écran d’une création de partage de fichiers réussie.
  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. Capture d’écran des colonnes sous 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. Capture d’écran représentant le déploiement de la fonction Azure.

  3. Spécifiez le groupe de ressources sous lequel déployer la fonction Azure. Capture d’écran de la configuration du groupe de ressources de la fonction Azure.

    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. Capture d’écran du nom de domaine de l’application web de la fonction Azure.

  6. Exécutez le script PowerShell suivant pour tester si le point de terminaison CSVtoJSON fonctionne comme prévu. Définissez les valeurs correctes pour les variables $csvFilePath et $uri 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-JSON 
    
  7. Si le déploiement de la fonction Azure réussit, la dernière ligne du script génère la version JSON du fichier CSV.

    Capture d’écran de la réponse de la fonction Azure. .

  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. Capture d’écran du paramètre CORS de la fonction Azure.

É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.

    Déployer sur 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. Capture d’écran de la fenêtre « Détails de l’instance » d’Azure Logic Apps.

  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 ».
    Capture d’écran des clés d’accès des fichiers Azure.

  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. Capture d’écran du déploiement Azure Logic Apps terminé.

É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. Capture d’écran montrant l’activation d’une identité managée.
  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 ». Capture d’écran de la vue « Concepteur » d’Azure Logic Apps.

  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. Capture d’écran de l’étape « Obtenir le contenu du fichier ».

  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. Capture d’écran de l’appel de la fonction Azure pour convertir CSV en 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 PowerShell de l’étape 2. Capture d’écran de l’étape « Analyser JSON ».

  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.

    Capture d’écran de l’étape « Créer l’utilisateur SCIM ».

  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.

    Capture d’écran de l’appel de l’API de chargement en bloc avec l’entité managée.

É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. Capture d’écran de l’exécution de Logic Apps.
  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. Capture d’écran du résultat d’exécution de Logic Apps.

Étapes suivantes