Teilen über


API-gesteuerte eingehende Bereitstellung mit Azure Logic Apps

In diesem Tutorial wird beschrieben, wie Sie den Azure Logic Apps-Workflow verwenden, um die API-gesteuerte eingehende Bereitstellung von Microsoft Entra ID zu implementieren. Mit den Schritten in diesem Tutorial können Sie eine CSV-Datei mit Personaldaten in eine Massenanforderungspayload konvertieren und diese an den Microsoft Entra-API-Endpunkt /bulkUpload für die Bereitstellung senden. Der Artikel enthält auch Anweisungen dazu, wie dasselbe Integrationsmuster mit jedem Datensatzsystem verwendet werden kann.

Integrationsszenario

Geschäftsanforderung

Ihr Datensatzsystem generiert in regelmäßigen Abständen CSV-Dateiexporte mit Workerdaten. Sie möchten eine Integration implementieren, die Daten aus der CSV-Datei liest und automatisch Benutzerkonten in Ihrem Zielverzeichnis bereitstellt (lokales Active Directory für Hybridbenutzer*innen und Microsoft Entra ID für reine Cloudbenutzer*innen).

Implementierungsanforderung

Aus Sicht der Implementierung:

  • Sie möchten einen Azure Logic Apps-Workflow verwenden, um Daten aus den CSV-Dateiexporten zu lesen, die in einer Azure-Dateifreigabe verfügbar sind, und sie an den API-Endpunkt für die eingehende Bereitstellung zu senden.
  • In Ihrem Azure Logic Apps-Workflow möchten Sie nicht die komplexe Logik zum Vergleichen von Identitätsdaten zwischen Ihrem Datensatzsystem und dem Zielverzeichnis implementieren.
  • Sie möchten den Microsoft Entra-Bereitstellungsdienst verwenden, um Ihre von der IT verwalteten Bereitstellungsregeln anzuwenden, um Konten im Zielverzeichnis automatisch zu erstellen/zu aktualisieren/zu aktivieren/zu deaktivieren (lokales Active Directory oder Microsoft Entra-ID).

Graphic of Azure Logic Apps-based integration.

Variationen des Integrationsszenarios

Während in diesem Tutorial eine CSV-Datei als Datensatzsystem verwendet wird, können Sie den Azure Logic Apps-Beispielworkflow anpassen, um Daten aus einem beliebigen Datensatzsystem zu lesen. Azure Logic Apps bietet eine Vielzahl von integrierten Connectors und verwalteten Connectors mit vordefinierten Triggern und Aktionen, die Sie in Ihrem Integrationsworkflow verwenden können.

Im Folgenden finden Sie eine Liste der Variationen von Unternehmensintegrationsszenarien, bei denen die API-gesteuerte eingehende Bereitstellung mit einem Logic Apps-Workflow implementiert werden kann.

# Datensatzsystem Integrationsleitfaden zur Verwendung von Logic Apps zum Lesen von Quelldaten
1 Dateien, die auf dem SFTP-Server gespeichert sind Verwenden Sie entweder den integrierten SFTP-Connector oder den verwalteten SFTP-SSH-Connector, um Daten aus Dateien zu lesen, die auf dem SFTP-Server gespeichert sind.
2 Datenbanktabelle Wenn Sie einen Azure SQL-Server oder eine lokale SQL Server-Instanz verwenden, nutzen Sie den SQL Server-Connector, um Ihre Tabellendaten zu lesen.
Wenn Sie eine Oracle-Datenbank nutzen, verwenden Sie den Connector für Oracle-Datenbank, um Ihre Tabellendaten zu lesen.
3 Lokale und in der Cloud gehostete Instanz von SAP S/4 HANA oder
klassische lokale SAP-Systeme wie R/3 und ECC
Verwenden Sie den SAP-Connector, um Identitätsdaten aus Ihrem SAP-System abzurufen. Beispiele zum Konfigurieren dieses Connectors finden Sie in den gängigen SAP-Integrationsszenarien mit Azure Logic Apps und dem SAP-Connector.
4 IBM MQ Verwenden Sie den IBM MQ-Connector, um Bereitstellungsnachrichten aus der Warteschlange zu empfangen.
5 Dynamics 365 Human Resources Verwenden Sie den Dataverse-Connector, um Daten aus Dataverse-Tabellen zu lesen, die von Microsoft Dynamics 365 Human Resources verwendet werden.
6 Alle Systeme, die REST-APIs verfügbar machen Wenn Sie in der Logic Apps-Connectorbibliothek keinen Connector für Ihr Datensatzsystem finden, können Sie einen eigenen benutzerdefinierten Connector erstellen, um Daten aus Ihrem Datensatzsystem zu lesen.

Wenden Sie nach dem Lesen der Quelldaten Ihre Vorverarbeitungsregeln an, und konvertieren Sie die Ausgabe Ihres Datensatzsystems in eine Massenanforderung, die an den Microsoft Entra-API-Endpunkt bulkUpload für die Bereitstellung gesendet werden kann.

Wichtig

Wenn Sie Ihren API-gesteuerten Workflow für eingehende Bereitstellung und Logic Apps-Integration für die Community freigeben möchten, erstellen Sie eine Logik-App-Vorlage, dokumentieren Sie die Schritte zur Verwendung, und übermitteln Sie einen Pull Request zur Aufnahme in das GitHub-Repositoryentra-id-inbound-provisioning.

Zur Verwendung dieses Lernprogramms

Die Logic Apps-Bereitstellungsvorlage, die im GitHub-Repository für die eingehende Bereitstellung von Microsoft Entra veröffentlicht wurde, automatisiert verschiedene Aufgaben. Sie enthält außerdem Logik für die Verarbeitung großer CSV-Dateien und das Aufteilen der Massenanforderung, sodass pro Anforderung 50 Datensätze gesendet werden. Hier erfahren Sie, wie Sie sie testen und an Ihre Integrationsanforderungen anpassen können.

Hinweis

Der Azure Logic Apps-Beispielworkflow wird als Implementierungsreferenz unverändert bereitgestellt. Wenn Sie Fragen dazu haben oder den Workflow erweitern möchten, verwenden Sie das GitHub-Projektrepository.

# Automatisierungstask Implementierungsleitfaden Erweiterte Anpassung
1 Liest Workerdaten aus der CSV-Datei. Der Logic Apps-Workflow verwendet eine Azure-Funktion, um die in einer Azure-Dateifreigabe gespeicherte CSV-Datei zu lesen. Die Azure-Funktion konvertiert CSV-Daten in das JSON-Format. Wenn das CSV-Dateiformat abweicht, aktualisieren Sie die Workflowschritte „JSON analysieren“ und „SCIMUser erstellen“. Wenn Sie ein anderes Datensatzsystem verwenden, lesen Sie die Anleitungen zum Anpassen des Logic Apps-Workflows im Abschnitt Variationen des Integrationsszenarios.
2 Vorverarbeiten und Konvertieren von Daten in das SCIM-Format. Standardmäßig konvertiert der Logic Apps-Workflow jeden Datensatz in der CSV-Datei in eine SCIM Core User- und Enterprise User-Darstellung. Wenn Sie benutzerdefinierte SCIM-Schemaerweiterungen verwenden möchten, aktualisieren Sie den Schritt „SCIMUser erstellen“, um Ihre benutzerdefinierten SCIM-Schemaerweiterungen einzuschließen. Wenn Sie C#-Code für erweiterte Formatierung und Datenüberprüfung ausführen möchten, verwenden Sie benutzerdefinierte Azure Functions-Instanzen.
3 Verwenden der richtigen Authentifizierungsmethode Sie können entweder einen Dienstprinzipal oder eine verwaltete Identität verwenden, um auf die API für die eingehende Bereitstellung zuzugreifen. Aktualisieren Sie den Schritt „SCIMBulkPayload an API-Endpunkt senden“ mit der richtigen Authentifizierungsmethode. -
4 Bereitstellen von Konten in einer lokalen Active Directory-Instanz oder Microsoft Entra ID. Konfigurieren der API-gesteuerten eingehenden Bereitstellungs-App. Dadurch wird ein eindeutiger /bulkUpload-API-Endpunkt generiert. Aktualisieren Sie den Schritt „SCIMBulkPayload an API-Endpunkt senden“, um den richtigen bulkUpload-API-Endpunkt zu verwenden. Wenn Sie Massenanforderungen mit benutzerdefiniertem SCIM-Schema verwenden möchten, erweitern Sie das Schema der Bereitstellungs-App, um Ihre benutzerdefinierten SCIM-Schemaattribute einzubeziehen.
5 Überprüfen Sie die Bereitstellungsprotokolle, und wiederholen Sie die Bereitstellung für fehlerhafte Datensätze. Diese Automatisierung ist im Logic Apps-Beispielworkflow noch nicht implementiert. Informationen zur Implementierung finden Sie in den Bereitstellungsprotokollen der Graph-API. -
6 Stellen Sie Ihre Logic Apps-basierte Automatisierung in der Produktion bereit. Nachdem Sie Ihren API-gesteuerten Bereitstellungsflow überprüft und den Logic Apps-Workflow an Ihre Anforderungen angepasst haben, stellen Sie die Automatisierung in Ihrer Umgebung bereit. -

Schritt 1: Erstellen eines Azure Storage-Kontos zum Hosten der CSV-Datei

Die in diesem Abschnitt beschriebenen Schritte sind optional. Wenn Sie bereits über ein vorhandenes Speicherkonto verfügen oder die CSV-Datei aus einer anderen Quelle wie z. B. einer SharePoint-Website oder einer Blob Storage-Instanz lesen möchten, aktualisieren Sie die Logic App-Instanz, sodass sie den Connector Ihrer Wahl verwendet.

  1. Melden Sie sich beim Azure-Portal mindestens als Anwendungsadministrator an.
  2. Suchen Sie nach „Speicherkonten“, und erstellen Sie ein neues Speicherkonto. Screenshot of creating new storage account.
  3. Weisen Sie eine Ressourcengruppe zu, und benennen Sie diese. Screenshot of resource group assignment.
  4. Wenn das Speicherkonto erstellt wurde, wechseln Sie zu der Ressource.
  5. Klicken Sie auf die Menüoption „Dateifreigabe“, und erstellen Sie eine neue Dateifreigabe. Screenshot of creating new file share.
  6. Vergewissern Sie sich, dass die Erstellung der Dateifreigabe erfolgreich war. Screenshot of file share created.
  7. Laden Sie mithilfe der Uploadoption eine CSV-Beispieldatei in die Dateifreigabe hoch.
  8. Hier sehen Sie einen Screenshot der Spalten in der CSV-Datei. Screenshot of columns in Excel.

Schritt 2: Konfigurieren des CSV2JSON-Konverters für eine Azure-Funktion

  1. Öffnen Sie die URL zum GitHub-Repository in dem Browser, der mit Ihrem Azure-Portal verknüpft ist: https://github.com/joelbyford/CSVtoJSONcore.

  2. Klicken Sie auf den Link „In Azure bereitstellen“, um diese Azure-Funktion in Ihrem Azure-Mandanten bereitzustellen. Screenshot of deploying Azure Function.

  3. Geben Sie die Ressourcengruppe an, in der diese Azure-Funktion bereitgestellt werden soll. Screenshot of configuring Azure Function resource group.

    Wenn der Fehler „Diese Region verfügt über ein Kontingent von 0 Instanzen“ angezeigt wird, wählen Sie eine andere Region aus.

  4. Stellen Sie sicher, dass die Bereitstellung der Azure-Funktion als App Service erfolgreich ist.

  5. Wechseln Sie zur Ressourcengruppe, und öffnen Sie die WebApp-Konfiguration. Stellen Sie sicher, dass sie sich im Zustand „Wird ausgeführt“ befindet. Kopieren Sie den Standarddomänennamen, der der Web-App zugeordnet ist. Screenshot of Azure Function Web App domain name.

  6. Öffnen Sie den Postman-Client, um zu testen, ob der CSVtoJSON-Endpunkt wie erwartet funktioniert. Fügen Sie den Domänennamen ein, den Sie im vorherigen Schritt kopiert haben. Verwenden Sie „text/csv“ als Inhaltstyp, und senden Sie eine CSV-Beispieldatei im Anforderungstext an den Endpunkt: https://[your-domain-name]/csvtojsonScreenshot of Postman client calling the Azure Function.

  7. Wenn die Bereitstellung der Azure-Funktion erfolgreich ist, erhalten Sie in der Antwort eine JSON-Version der CSV-Datei mit dem Statuscode „200 OK“.

    Screenshot of Azure Function response.

  8. Damit Logic Apps diese Azure-Funktion aufrufen kann, geben Sie in der CORS-Einstellung für die WebApp ein Sternchen (*) ein, und speichern Sie die Konfiguration. Screenshot of Azure Function CORS setting.

Schritt 3: Konfigurieren der API-gesteuerten eingehenden Benutzerbereitstellung

Schritt 4: Konfigurieren Ihres Azure Logic Apps-Workflows

  1. Klicken Sie auf die Schaltfläche unten, um die Azure Resource Manager-Vorlage für den Logic Apps-Workflow „CSV2SCIMBulkUpload“ bereitzustellen.

    Deploy to Azure

  2. Aktualisieren Sie in den Details der Instanz die hervorgehobenen Elemente, und kopieren Sie dabei die Werte aus den vorherigen Schritten. Screenshot of Azure Logic Apps instance details.

  3. Um den Wert für den Parameter Azurefile_access Key zu erhalten, öffnen Sie Ihr Azure Files-Speicherkonto, und kopieren Sie den Zugriffsschlüssel, den Sie unter „Sicherheit und Netzwerk“ finden.
    Screenshot of Azure File access keys.

  4. Klicken Sie auf „Überprüfen und erstellen“, um die Bereitstellung zu starten.

  5. Wenn die Bereitstellung abgeschlossen ist, wird folgende Meldung angezeigt. Screenshot of Azure Logic Apps deployment complete.

Schritt 5: Konfigurieren der systemseitig zugewiesenen verwalteten Identität

  1. Öffnen Sie das Blatt „Identität“ in den Einstellungen Ihres Logic Apps-Workflows.
  2. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität. Screenshot of enabling managed identity.
  3. Sie werden aufgefordert, die Verwendung der verwalteten Identität zu bestätigen. Klicken Sie auf Ja.
  4. Gewähren Sie der verwalteten Identität Berechtigungen zum Ausführen von Massenuploads.

Schritt 6: Überprüfen und Anpassen der Workflowschritte

  1. Öffnen Sie die Logik-App in der Designeransicht. Screenshot of Azure Logic Apps designer view.

  2. Überprüfen Sie die Konfiguration jedes Schritts im Workflow, um sicherzustellen, dass sie richtig ist.

  3. Öffnen Sie den Schritt „Dateiinhalt anhand des Pfads abrufen“, und ändern Sie ihn so, dass er zur Azure File Storage-Instanz führt. Screenshot of get file content.

  4. Aktualisieren Sie die Verbindung bei Bedarf.

  5. Stellen Sie sicher, dass Ihr Schritt „CSV in JSON konvertieren“ auf die richtige Web App-Instanz für die Azure-Funktion zeigt. Screenshot of Azure Function call invocation to convert from CSV to JSON.

  6. Wenn die Inhalte oder Header Ihrer CSV-Datei anders lauten, aktualisieren Sie den Schritt „JSON analysieren“ mit der JSON-Ausgabe, die Sie aus dem API-Aufruf der Azure-Funktion abrufen können. Verwenden Sie die Postman-Ausgabe aus Schritt 2. Screenshot of Parse JSON step.

  7. Stellen Sie im Schritt „SCIMUser erstellen“ sicher, dass die CSV-Felder den SCIM-Attributen, die für die Verarbeitung verwendet werden, richtig zugeordnet wurden.

    Screenshot of Construct SCIM user step.

  8. Stellen Sie im Schritt „SCIMBulkPayload an API-Endpunkt senden“ sicher, dass Sie den richtigen API-Endpunkt und den richtigen Authentifizierungsmechanismus verwenden.

    Screenshot of invoking bulk upload API with managed identity.

Schritt 7: Ausführen des Triggers und Testen des Logic Apps-Workflows

  1. Klicken Sie in der Version „Allgemein verfügbar“ des Logic Apps-Designers auf „Trigger ausführen“, um den Workflow manuell auszuführen. Screenshot of running the Logic App.
  2. Überprüfen Sie nach Abschluss der Ausführung, welche Aktion Logic Apps in jeder Iteration ausgeführt hat.
  3. In der letzten Iteration sollten Sie sehen, dass Logic Apps Daten in den API-Endpunkt für die eingehende Bereitstellung hochlädt. Suchen Sie nach dem Statuscode 202 Accept. Sie können die Massenuploadanforderung kopieren, einfügen und überprüfen. Screenshot of the Logic Apps execution result.

Nächste Schritte