Ausführen von bulkUpload

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Führen Sie einen neuen bulkUpload mithilfe des Synchronisierungsauftrags aus. Verwenden Sie diesen API-Endpunkt, um Daten im Microsoft Entra-Synchronisierungsdienst aufzunehmen. Der Synchronisierungsdienst wendet die dem Synchronisierungsauftrag zugeordneten Zuordnungen an und verarbeitet die eingehenden Daten. Das Ratenlimit für diese API beträgt 40 Anforderungen pro Sekunde. Jede Anforderung kann maximal 50 Benutzervorgänge im Array "Massenanforderungsvorgänge" enthalten.

Hinweis

Diese API befindet sich in der öffentlichen Vorschau und kann nur mit API-gesteuerten eingehenden Bereitstellungs-Apps verwendet werden.

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) SynchronizationData-User.Upload Nicht verfügbar.
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Application SynchronizationData-User.Upload.OwnedBy SynchronizationData-User.Upload

Hinweis

Diese API ist in erster Linie für die Verwendung innerhalb einer Anwendung oder eines Diensts vorgesehen, die bzw. der für die Verarbeitung autoritativer Identitätsdaten und deren Hochladen in Microsoft Entra ID zuständig ist. Mandantenadministratoren können entweder einen Dienstprinzipal oder eine verwaltete Identität konfigurieren , um die Berechtigung zum Ausführen des Uploads zu erteilen. Es gibt keine separate, vom Benutzer zuweisbare integrierte Verzeichnisrolle von Microsoft Entra für diese API. Außerhalb von Anwendungen, die mit Administratorzustimmung eine Berechtigung erworben SynchronizationData-User.Upload haben, können Administratorbenutzer mit der Rolle "Benutzeradministrator" die API aufrufen.

HTTP-Anforderung

POST /servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/bulkUpload

Verweist im API-Endpunkt {servicePrincipalId} auf die Dienstprinzipalobjekt-ID und {jobId} auf die Bereitstellungsauftrags-ID.

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.
Content-Type application/scim+json. Erforderlich.

Anforderungstext

Geben Sie im Anforderungstext einen bulkUpload-Ressourcentyp an. Beispielnutzlasten finden Sie im Abschnitt "Beispiele ".

Antwort

Wenn erfolgreich, wird eine 202 Accepted Antwort und nichts im Antworttext zurückgegeben. Außerdem wird ein Location-Header zum Überprüfen des Status der Bereitstellung von Massenanforderungen zurückgegeben.

HTTP-Statuscode Erklärung
202 (Akzeptiert) Die Massenanforderung wird zur Ausführung bereitgestellt und vom zugeordneten Bereitstellungsauftrag verarbeitet. Der Location Schlüssel im Antwortheader verweist auf den Endpunkt der Bereitstellungsprotokolle, mit dem der Status der Bereitstellung einer Massenanforderung überprüft werden kann.
400 (Ungültige Anforderung) Die Anforderung ist nicht analysierbar, syntaktisch falsch oder verletzt das Schema. Die häufigste Ursache für diesen Fehler ist das Fehlen des Anforderungsheaders Content-Type. Stellen Sie sicher, dass sie vorhanden und auf festgelegt ist application/scim+json.
401 (Nicht autorisiert) Der Autorisierungsheader ist ungültig oder fehlt. Stellen Sie sicher, dass der Autorisierungsheader über ein gültiges Zugriffstoken verfügt.
403 (Verboten) Der Vorgang ist basierend auf dem angegebenen Autorisierungsheader nicht zulässig. Stellen Sie sicher, dass der API-Client über die SynchronizationData-User.Upload Berechtigung verfügt, und für delegierte Szenarien muss der Aufrufer ein Benutzeradministrator sein.

Beispiele

Beispiel 1: Massenupload mit SCIM-Schema für Core-Benutzer und Unternehmensbenutzer

Anforderung

Die folgende Massenanforderung verwendet das SCIM-Standardschema für Core- und Enterprise-Benutzer. Sie verfügt über zwei Benutzervorgänge im Array "Vorgänge". Sie können maximal 50 Benutzervorgänge in jeder Massenanforderung senden.

Verarbeitungsdetails: Der Bereitstellungsdienst liest die beiden Benutzerdatensätze. Es verwendet das entsprechende Attribut für userName und externalId das in der Attributzuordnung des Bereitstellungsauftrags konfiguriert ist, um zu bestimmen, ob das Benutzerkonto im Verzeichnis erstellt, aktualisiert, aktiviert oder deaktiviert werden soll. Löst den Managerverweis mithilfe des manager.value Felds auf. Geben Sie in diesem Feld den externalId Vorgesetzten des Benutzers an. Im folgenden Beispiel weist der Bereitstellungsdienst Barbara Jensen als Managerin für Kathy Jensen zu.

POST https://graph.microsoft.com/beta/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/bulkUpload
Authorization: Bearer <token>
Content-Type: application/scim+json

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "701984",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "234300 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                "employeeNumber": "701984",
                "costCenter": "4130",
                "organization": "Universal Studios",
                "division": "Theme Park",
                "department": "Tour Operations",
                "manager": {
                  "value": "89607",
                  "displayName": "John Smith"
                 }
            }
        }
    },
    {
        "method": "POST",
        "bulkId": "701985",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
              "employeeNumber": "701984",
              "costCenter": "4130",
              "organization": "Universal Studios",
              "division": "Theme Park",
              "department": "Tour Operations",
              "manager": {
                "value": "701984",
                "displayName": "Barbara Jensen"
              }
            }
        }
    }
],
    "failOnErrors": null
}

Antwort

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 202 Accepted
Content-Type: application/scim+json
client-request-id: 92cd10f6-fcc3-5d61-098e-a6dd35e460ef
content-length: "0"
location: "https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid%20eq%20'API2AAD.b16687d38faf42adb29892cdcaf01c6e.1a03de52-b9c3-4e2c-a1e3-9145aaa8e530'"
request-id: beeb9ea0-f7e4-4fe7-8507-cd834c88f18b

{}

Beispiel 2: Massenupload mithilfe des benutzerdefinierten SCIM-Schemanamespace

Anforderung

Die folgende Massenanforderung verwendet das SCIM-Standardschema für Core- und Enterprise-Benutzer. Es verfügt über einen weiteren benutzerdefinierten Schema-Namespace mit zwei Attributen HireDate und urn:contoso:employeeJobCode. Das schemas Array im Datenobjekt wird aktualisiert, um den benutzerdefinierten Schemanamespace einzuschließen.

Verarbeitungsdetails: Der Bereitstellungsdienst liest die beiden Benutzerdatensätze. Es verwendet das entsprechende Attribut für userName und externalId das in der Attributzuordnung des Bereitstellungsauftrags konfiguriert ist, um zu bestimmen, ob das Benutzerkonto im Verzeichnis erstellt, aktualisiert, aktiviert oder deaktiviert werden soll. Wenn Sie die beiden benutzerdefinierten Attribute urn:contoso:employee:HireDate und urn:contoso:employee:JobCode die Attributzuordnung Ihres Bereitstellungsauftrags einschließen, wird er verarbeitet, und die entsprechenden Zielattribute werden festgelegt.

POST https://graph.microsoft.com/beta/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/bulkUpload
Authorization: Bearer <token>
Content-Type: application/scim+json

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "701984",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
            "urn:contoso:employee"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "234300 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                "employeeNumber": "701984",
                "costCenter": "4130",
                "organization": "Universal Studios",
                "division": "Theme Park",
                "department": "Tour Operations",
                "manager": {
                  "value": "89607",
                  "displayName": "John Smith"
                 }
            },
            "urn:contoso:employee": {
                "HireDate": "2021-05-01T00:00:00-05:00",
                "JobCode": "AB-1002"
            }            
        }
    },
    {
        "method": "POST",
        "bulkId": "701985",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
            "urn:contoso:employee"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
              "employeeNumber": "701984",
              "costCenter": "4130",
              "organization": "Universal Studios",
              "division": "Theme Park",
              "department": "Tour Operations",
              "manager": {
                "value": "701984",
                "displayName": "Barbara Jensen"
             }
            },
            "urn:contoso:employee": {
                "HireDate": "2022-07-15T00:00:00-05:00",
                "JobCode": "AB-1003"
            }            
        }
    }
],
    "failOnErrors": null
}

Antwort

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 202 Accepted
Content-Type: application/scim+json
client-request-id: 92cd10f6-fcc3-5d61-098e-a6dd35e460ef
content-length: "0"
location: "https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid%20eq%20'API2AAD.b16687d38faf42adb29892cdcaf01c6e.1a03de52-b9c3-4e2c-a1e3-9145aaa8e530'"
request-id: beeb9ea0-f7e4-4fe7-8507-cd834c88f18b

{}

Beispiel 3: Mengenupload zum Aktualisieren eines vorhandenen Benutzers

Anforderung

Die folgende Massenanforderung veranschaulicht, wie Attribute eines vorhandenen Microsoft Entra-Benutzers aktualisiert, die Abteilung des Benutzers geändert und die Anmeldung für den Benutzer deaktiviert werden. In diesem Beispiel wird davon ausgegangen, dass Sie eine Zuordnung für die Felder externalId, Department und Active konfiguriert haben und dass Sie über einen vorhandenen Microsoft Entra-Benutzer verfügen, der über ein Attribut verfügt, das der externalId entspricht.

POST https://graph.microsoft.com/beta/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/bulkUpload
Authorization: Bearer <token>
Content-Type: application/scim+json

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
        {
            "method": "POST",
            "bulkId": "7172023",
            "path": "/Users",
            "data": {
                "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
                "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
                "externalId": "7172023",
                "active": false,
                "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                    "department": "Tour Ops"
                }
            }
        }
    ],
    "failOnErrors": null
}

Antwort

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 202 Accepted
Content-Type: application/scim+json
client-request-id: 92cd20f6-fcc3-5d61-098e-a6dd35e460ef
content-length: "0"
location: "https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid%20eq%20'API2AAD.b16687d38faf42adb29892cdcaf01c6e.1a03de52-b9c3-4e2c-a1e3-9145aaa8e530'"
request-id: beec9ea0-f7e4-4fe7-8507-cd834c88f18b

{}