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 mithilfe des Synchronisierungsauftrags einen neuen Massenupload durch. Verwenden Sie diesen API-Endpunkt, um Daten im Microsoft Entra-Synchronisierungsdienst zu erfassen. Der Synchronisierungsdienst wendet die Zuordnungen an, die dem Synchronisierungsauftrag zugeordnet sind, 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 Massenanforderungs-Operations-Array enthalten.
Hinweis
Diese API befindet sich in der öffentlichen Vorschau und ist nur für die Verwendung mit API-gesteuerten Eingehenden Bereitstellungs-Apps verfügbar.
Berechtigungen
Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. 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 |
Anwendung | SynchronizationData-User.Upload | Nicht verfügbar. |
Hinweis
Diese API ist in erster Linie für die Verwendung innerhalb einer Anwendung oder eines Diensts vorgesehen, die für die Verarbeitung autoritativer Identitätsdaten und das Hochladen in Microsoft Entra ID verantwortlich ist. Mandantenadministratoren können entweder einen Dienstprinzipal oder eine verwaltete Identität konfigurieren , um die Berechtigung zum Durchführen des Uploads zu erteilen. Es gibt keine separate benutzerseitig zuweisbare Microsoft Entra integrierte Verzeichnisrolle für diese API. Außerhalb von Anwendungen, die die Berechtigung mit Administratoreinwilligung erhalten SynchronizationData-User.Upload
haben, können nur Administratorbenutzer mit der Rolle "Globaler Administrator " die API aufrufen.
HTTP-Anforderung
POST /servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/bulkUpload
Bezieht sich im API-Endpunkt {servicePrincipalId}
auf die Dienstprinzipalobjekt-ID und {jobId}
bezieht sich auf die Bereitstellungsauftrags-ID.
Anforderungsheader
Name | Beschreibung |
---|---|
Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Content-Type | application/scim+json. Erforderlich. |
Anforderungstext
Geben Sie im Anforderungstext den Ressourcentyp bulkUpload an. Beispielnutzlasten finden Sie im Abschnitt beispiele .
Antwort
Bei erfolgreicher Ausführung wird eine 202 Accepted
Antwort und nichts im Antworttext zurückgegeben. Außerdem wird ein Location-Header zum Überprüfen der status der Massenanforderungsbereitstellung zurückgegeben.
HTTP-Statuscode | Erklärung |
---|---|
202 (Akzeptiert) | Die Massenanforderung wird für die Ausführung bereitgestellt und vom zugeordneten Bereitstellungsauftrag verarbeitet. Der Location Schlüssel im Antwortheader verweist auf den Endpunkt der Bereitstellungsprotokolle, mit dem die status der Massenanforderungsbereitstellung überprüft werden kann. |
400 (ungültige Anforderung) | Die Anforderung kann nicht analysiert werden, ist syntaktisch falsch oder verstößt gegen das Schema. Die häufigste Ursache für diesen Fehler ist das Fehlen des Anforderungsheaders Content-Type . Stellen Sie sicher, dass sie vorhanden ist und auf application/scim+json festgelegt ist. |
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) | Die Oeration ist basierend auf der angegebenen Autorisierung nicht zulässig. Stellen Sie sicher, dass der API-Client über die berechtigung Graph-API verfügtSynchronizationData-User.Upload . |
Beispiele
- Beispiel 1: Massenupload mit SCIM Core-Benutzer- und Enterprise-Benutzerschema
- Beispiel 2: Massenupload mit dem benutzerdefinierten SCIM-Schemanamespace
- Beispiel 3: Massenupload zum Aktualisieren eines vorhandenen Benutzers
Beispiel 1: Massenupload mit SCIM Core-Benutzer- und Enterprise-Benutzerschema
Anforderung
Die folgende Massenanforderung verwendet das SCIM-Standardschema Core User and Enterprise User. Es verfügt über zwei Benutzervorgänge im Operations-Array . Sie können in jeder Massenanforderung maximal 50 Benutzervorgänge senden.
Verarbeitungsdetails: Der Bereitstellungsdienst liest die beiden Benutzerdatensätze. Es verwendet das übereinstimmende 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. Der Managerverweis wird mithilfe des manager.value
-Felds aufgelöst. Geben Sie den externalId
des Vorgesetzten des Benutzers in diesem Feld 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 mit dem benutzerdefinierten SCIM-Schemanamespace
Anforderung
Die folgende Massenanforderung verwendet das SCIM-Standardschema Core User and Enterprise User. Es verfügt über einen weiteren benutzerdefinierten Schemanamespace namens urn:contoso:employee
mit zwei Attributen HireDate
und JobCode
. Das schemas
Array im Datenobjekt wird aktualisiert, um den benutzerdefinierten Schemanamespace einzuschließen.
Verarbeitungsdetails: Der Bereitstellungsdienst liest die beiden Benutzerdatensätze. Es verwendet das übereinstimmende 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
in die Zuordnung des Bereitstellungsauftragsattributs einschließen, werden diese 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: Massenupload 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 wird. In diesem Beispiel wird davon ausgegangen, dass Sie eine Zuordnung für die Felder externalId, department und active konfiguriert haben und ü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
{}