API-driven inkommande etablering med Azure Logic Apps
I den här självstudien beskrivs hur du använder Azure Logic Apps-arbetsflöde för att implementera API-driven inkommande etablering i Microsoft Entra ID. Med hjälp av stegen i den här självstudien kan du konvertera en CSV-fil som innehåller HR-data till en nyttolast för massbegäran och skicka den till Microsoft Entra-etableringen /bulkUpload API-slutpunkten. Artikeln innehåller också vägledning om hur samma integrationsmönster kan användas med valfritt arkivhandlingssystem.
Integrationsscenario
Affärsbehov
Ditt postsystem genererar regelbundet CSV-filexporter som innehåller arbetsdata. Du vill implementera en integrering som läser data från CSV-filen och automatiskt etablerar användarkonton i målkatalogen (lokal Active Directory för hybridanvändare och Microsoft Entra-ID för enbart molnanvändare).
Implementeringskrav
Ur ett implementeringsperspektiv:
- Du vill använda ett Azure Logic Apps-arbetsflöde för att läsa data från CSV-filexporter som är tillgängliga i en Azure-filresurs och skicka dem till api-slutpunkten för inkommande etablering.
- I ditt Azure Logic Apps-arbetsflöde vill du inte implementera den komplexa logiken för att jämföra identitetsdata mellan ditt system med post och målkatalog.
- Du vill använda Microsoft Entra-etableringstjänsten för att tillämpa dina IT-hanterade etableringsregler för att automatiskt skapa/uppdatera/aktivera/inaktivera konton i målkatalogen (lokal Active Directory eller Microsoft Entra-ID).
Integreringsscenariovariationer
I den här självstudien används en CSV-fil som ett arkivhandlingssystem, men du kan anpassa Azure Logic Apps-exempelarbetsflödet för att läsa data från alla postsystem. Azure Logic Apps tillhandahåller ett brett utbud av inbyggda anslutningsappar och hanterade anslutningsappar med fördefinierade utlösare och åtgärder som du kan använda i ditt integreringsarbetsflöde.
Här är en lista över variationer i företagsintegreringsscenariot, där API-driven inkommande etablering kan implementeras med ett Logic Apps-arbetsflöde.
# | System för post | Integreringsvägledning om hur du använder Logic Apps för att läsa källdata |
---|---|---|
1 | Filer som lagras på SFTP-servern | Använd antingen den inbyggda SFTP-anslutningsappen eller den hanterade SFTP SSH-anslutningsappen för att läsa data från filer som lagras på SFTP-servern. |
2 | Databastabell | Om du använder en Azure SQL-server eller lokal SQL Server använder du SQL Server-anslutningsappen för att läsa dina tabelldata. Om du använder en Oracle-databas använder du Oracle-databasanslutningsappen för att läsa dina tabelldata. |
3 | Lokal och molnbaserad SAP S/4 HANA eller Klassiska lokala SAP-system, till exempel R/3 och ECC |
Använd SAP-anslutningsappen för att hämta identitetsdata från ditt SAP-system. Exempel på hur du konfigurerar den här anslutningsappen finns i vanliga SAP-integreringsscenarier med hjälp av Azure Logic Apps och SAP-anslutningsappen. |
4 | IBM MQ | Använd IBM MQ-anslutningsappen för att ta emot etableringsmeddelanden från kön. |
5 | Dynamics 365 personalfrågor | Använd Dataverse-anslutningsappen för att läsa data från Dataverse-tabeller som används av Microsoft Dynamics 365 Human Resources. |
6 | Alla system som exponerar REST-API:er | Om du inte hittar någon anslutningsapp för ditt postsystem i Logic Apps-anslutningsbiblioteket kan du skapa en egen anpassad anslutningsapp för att läsa data från postsystemet. |
När du har läst källdata tillämpar du dina förbearbetningsregler och konverterar utdata från postsystemet till en massbegäran som kan skickas till Microsoft Entra-etableringsslutpunkten bulkUpload API.
Viktigt!
Om du vill dela ditt API-drivna arbetsflöde för inkommande etablering + Logic Apps-integrering med communityn skapar du en logikappmall, dokumenterar steg om hur du använder den och skickar en pull-begäran om inkludering i GitHub-lagringsplatsen entra-id-inbound-provisioning
.
Så här använder du den här självstudien
Logic Apps-distributionsmallen som publicerats i GitHub-lagringsplatsen för inkommande etablering av Microsoft Entra automatiserar flera uppgifter. Den har också logik för hantering av stora CSV-filer och segmentering av massbegäran för att skicka 50 poster i varje begäran. Så här kan du testa det och anpassa det enligt dina integreringskrav.
Kommentar
Azure Logic Apps-exempelarbetsflödet tillhandahålls som det är för implementeringsreferens. Om du har frågor som rör den eller om du vill förbättra den använder du GitHub-projektlagringsplatsen.
# | Automation-uppgift | Riktlinjer för implementering | Avancerad anpassning |
---|---|---|---|
1 | Läsa arbetsdata från CSV-filen. | Logic Apps-arbetsflödet använder en Azure-funktion för att läsa CSV-filen som lagras i en Azure-filresurs. Azure-funktionen konverterar CSV-data till JSON-format. Om csv-filformatet är annorlunda uppdaterar du arbetsflödessteget "Parsa JSON" och "Skapa SCIMUser". | Om ditt postsystem är annorlunda kontrollerar du vägledningen i avsnittet Integreringsscenariovariationer om hur du anpassar Logic Apps-arbetsflödet med hjälp av en lämplig anslutningsapp. |
2 | Förbearbeta och konvertera data till SCIM-format. | Som standard konverterar Logic Apps-arbetsflödet varje post i CSV-filen till en SCIM Core User + Enterprise User-representation. Om du planerar att använda anpassade SCIM-schematillägg uppdaterar du steget "Skapa SCIMUser" för att inkludera dina anpassade SCIM-schematillägg. | Om du vill köra C#-kod för avancerad formatering och dataverifiering använder du anpassade Azure Functions. |
3 | Använd rätt autentiseringsmetod | Du kan antingen använda tjänstens huvudnamn eller använda hanterad identitet för att komma åt API:et för inkommande etablering. Uppdatera steget "Skicka SCIMBulkPayload till API-slutpunkten" med rätt autentiseringsmetod. | - |
4 | Etablera konton i lokal Active Directory- eller Microsoft Entra-ID. | Konfigurera EN API-driven etableringsapp för inkommande trafik. Detta genererar en unik /bulkUpload API-slutpunkt. Uppdatera steget "Skicka SCIMBulkPayload till API-slutpunkten" för att använda rätt bulkUpload API-slutpunkt. | Om du planerar att använda massbegäran med anpassat SCIM-schema utökar du schemat för etableringsappen så att det inkluderar dina anpassade SCIM-schemaattribut. |
5 | Genomsök etableringsloggarna och försök etablera igen efter misslyckade poster. | Den här automatiseringen har ännu inte implementerats i logic apps-exempelarbetsflödet. Om du vill implementera det läser du Graph API för etableringsloggar. | - |
6 | Distribuera din Logic Apps-baserade automatisering till produktion. | När du har verifierat ditt API-drivna etableringsflöde och anpassat Logic Apps-arbetsflödet för att uppfylla dina krav distribuerar du automatiseringen i din miljö. | - |
Steg 1: Skapa ett Azure Storage-konto som värd för CSV-filen
De steg som beskrivs i det här avsnittet är valfria. Om du redan har ett befintligt lagringskonto eller vill läsa CSV-filen från en annan källa, till exempel SharePoint-webbplats eller Blob Storage, uppdaterar du logikappen så att den använder valfri anslutningsapp.
- Logga in på Azure Portal som minst programadministratör.
- Sök efter "Lagringskonton" och skapa ett nytt lagringskonto.
- Tilldela en resursgrupp och ge den ett namn.
- När lagringskontot har skapats går du till resursen.
- Klicka på menyalternativet "Filresurs" och skapa en ny filresurs.
- Kontrollera att filresursen har skapats.
- Ladda upp en CSV-exempelfil till filresursen med uppladdningsalternativet.
- Här är en skärmbild av kolumnerna i CSV-filen.
Steg 2: Konfigurera Azure Function CSV2JSON konverterare
I webbläsaren som är associerad med din Azure Portal öppnar du GitHub-lagringsplatsens URL – https://github.com/joelbyford/CSVtoJSONcore.
Klicka på länken "Distribuera till Azure" för att distribuera den här Azure-funktionen till din Azure-klientorganisation.
Ange den resursgrupp under vilken den här Azure-funktionen ska distribueras.
Om du får felet "Den här regionen har en kvot på 0 instanser" kan du prova att välja en annan region.
Se till att distributionen av Azure-funktionen som en App Service lyckas.
Gå till resursgruppen och öppna WebApp-konfigurationen. Kontrollera att den är i tillståndet "Körs". Kopiera standarddomännamnet som är associerat med webbappen.
Kör följande PowerShell-skript för att testa om CSVtoJSON-slutpunkten fungerar som förväntat. Ange rätt värden för variablerna
$csvFilePath
och$uri
i skriptet.# 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
Om Azure-funktionsdistributionen lyckas matar den sista raden i skriptet ut JSON-versionen av CSV-filen.
Om du vill tillåta att Logic Apps anropar den här Azure-funktionen går du till CORS-inställningen för WebApp och anger asterisk (*) och "Spara" konfigurationen.
Steg 3: Konfigurera API-driven etablering av inkommande användare
- Konfigurera API-driven etablering av inkommande användare.
Steg 4: Konfigurera ditt Azure Logic Apps-arbetsflöde
Klicka på knappen nedan för att distribuera Azure Resource Manager-mallen för arbetsflödet CSV2SCIMBulkUpload Logic Apps.
Under instansinformation uppdaterar du de markerade objekten och kopierar klistrar in värden från föregående steg.
För parametern
Azurefile_access Key
öppnar du ditt Azure-fillagringskonto och kopierar åtkomstnyckeln som finns under "Säkerhet och nätverk".
Klicka på alternativet Granska och skapa för att starta distributionen.
Steg 5: Konfigurera systemtilldelad hanterad identitet
- Gå till bladet Inställningar –> identitet i ditt Logic Apps-arbetsflöde.
- Aktivera Systemtilldelad hanterad identitet.
- Du får en uppmaning om att bekräfta användningen av den hanterade identiteten. Klicka på Ja.
- Ge den hanterade identiteten behörighet att utföra massuppladdning.
Steg 6: Granska och justera arbetsflödesstegen
Granska konfigurationen av varje steg i arbetsflödet för att kontrollera att det är korrekt.
Öppna steget "Hämta filinnehåll med sökväg" och korrigera det för att bläddra till Azure File Storage i din klientorganisation.
Uppdatera anslutningen om det behövs.
Kontrollera att steget "Konvertera CSV till JSON" pekar på rätt Azure Function Web App-instans.
Om csv-filinnehållet/huvudena är annorlunda uppdaterar du steget Parsa JSON med JSON-utdata som du kan hämta från API-anropet till Azure-funktionen. Använd PowerShell-utdata från steg 2.
I steget "Skapa SCIMUser" ser du till att CSV-fälten mappas korrekt till DE SCIM-attribut som ska användas för bearbetning.
I steget "Skicka SCIMBulkPayload till API-slutpunkten" kontrollerar du att du använder rätt API-slutpunkt och autentiseringsmekanism.
Steg 7: Kör utlösaren och testa ditt Logic Apps-arbetsflöde
- I den allmänt tillgängliga versionen av Logic Apps-designern klickar du på Kör utlösare för att köra arbetsflödet manuellt.
- När körningen är klar granskar du vilken åtgärd Logic Apps utförde i varje iteration.
- I den slutliga iterationen bör du se Logic Apps ladda upp data till API-slutpunkten för inkommande etablering. Leta
202 Accept
efter statuskod. Du kan kopiera och klistra in och verifiera massuppladdningsbegäran.