Konfigurieren der Synchronisierung mit benutzerdefinierten Zielattributen
Namespace: microsoft.graph
Wichtig
APIs unter der /beta Version in Microsoft Graph können geändert werden. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in Version 1.0 verfügbar ist, verwenden Sie die Versionsauswahl .
Sie können das Synchronisierungsschema so anpassen, dass es benutzerdefinierte Attribute enthält, die im Zielverzeichnis definiert sind. In diesem Artikel wird beschrieben, wie Sie ein Salesforce-Abonnement anpassen, indem Sie ein neues Feld namens officeCode hinzufügen. Sie richten die Synchronisierung von Azure Active Directory (Azure AD) zu Salesforce ein, und für jeden Benutzer füllen Sie das officeCode Feld in Salesforce mit dem Wert aus dem Feld in extensionAttribute10 Azure AD.
In diesem Artikel wird davon ausgegangen, dass Sie bereits eine Anwendung hinzugefügt haben, die die Synchronisierung mit Ihrem Mandanten über das Azure-Portalunterstützt, dass Sie den Anzeigenamen der Anwendung kennen und dass Sie über ein Autorisierungstoken für Microsoft Graph verfügen. Informationen zum Abrufen des Autorisierungstokens finden Sie unter Abrufen von Zugriffstoken zum Aufrufen von Microsoft Graph.
Suchen des Dienstprinzipalobjekts anhand des Anzeigenamens
Das folgende Beispiel zeigt, wie Sie ein Dienstprinzipalobjekt mit dem Anzeigenamen Salesforce finden.
GET https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$filter=startswith(displayName, 'salesforce')
Authorization: Bearer {Token}
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(id,appId,displayName)",
"value": [
{
"id": "167e33e9-f80e-490e-b4d8-698d4a80fb3e",
"appId": "cd3ed3de-93ee-400b-8b19-b61ef44a0f29",
"displayName": "Salesforce"
},
{
"id": "8cbbb70b-7290-42da-83ee-89fa3517a977",
"appId": "b0f2e3b1-fe31-4658-b216-44dcaeabb63a",
"displayName": "salesforce 1"
},
{
"id": "60443998-8cf7-4e61-b05c-a53b658cb5e1",
"appId": "79079396-c301-405d-900f-e2e0c2439a90",
"displayName": "Salesforce Sandbox"
}
]
}
Dies {servicePrincipalId} ist 167e33e9-f80e-490e-b4d8-698d4a80fb3e .
Auflisten von Synchronisierungsaufträgen im Kontext des Dienstprinzipals
Im folgenden Beispiel wird gezeigt, wie Sie das abrufen, mit dem jobId Sie arbeiten müssen. Im Allgemeinen gibt die Antwort nur einen Auftrag zurück.
GET https://graph.microsoft.com/beta/servicePrincipals/60443998-8cf7-4e61-b05c-a53b658cb5e1/synchronization/jobs
Authorization: Bearer {Token}
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals('60443998-8cf7-4e61-b05c-a53b658cb5e1')/synchronization/jobs",
"value": [
{
"id": "SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa",
"templateId": "SfSandboxOutDelta",
"schedule": {},
"status": {}
}
]
}
Dies {jobId} ist SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa .
Abrufen des Synchronisierungsschemas
Das folgende Beispiel zeigt, wie Sie das Synchronisierungsschema abrufen.
GET https://graph.microsoft.com/beta/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/schema
Authorization: Bearer {Token}
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden. Alle Eigenschaften werden in einem tatsächlichen Aufruf zurückgegeben.
HTTP/1.1 200 OK
Content-Type: application/json
{
"directories": [
{
"id": "66e4a8cc-1b7b-435e-95f8-f06cea133828",
"name": "Azure Active Directory",
"objects": [
{
"attributes": [
{
"anchor": true,
"caseExact": false,
"defaultValue": null,
"metadata": [],
"multivalued": false,
"mutability": "ReadWrite",
"name": "objectId",
"required": false,
"referencedObjects": [],
"type": "String"
},
{
"anchor": false,
"caseExact": false,
"defaultValue": null,
"metadata": [],
"multivalued": false,
"mutability": "ReadWrite",
"name": "streetAddress",
"required": false,
"referencedObjects": [],
"type": "String"
}
],
"name": "User"
}
]
},
{
"id": "8ffa6169-f354-4751-9b77-9c00765be92d",
"name": "salesforce.com",
"objects": []
}
],
"synchronizationRules": [
{
"editable": true,
"id": "4c5ecfa1-a072-4460-b1c3-4adde3479854",
"name": "USER_OUTBOUND_USER",
"objectMappings": [
{
"attributeMappings": [
{
"defaultValue": "True",
"exportMissingReferences": false,
"flowBehavior": "FlowWhenChanged",
"flowType": "Always",
"matchingPriority": 0,
"source": {
"expression": "Not([IsSoftDeleted])",
"name": "Not",
"parameters": [
{
"key": "source",
"value": {
"expression": "[IsSoftDeleted]",
"name": "IsSoftDeleted",
"parameters": [],
"type": "Attribute"
}
}
],
"type": "Function"
},
"targetAttributeName": "IsActive"
}
],
"enabled": true,
"flowTypes": "Add, Update, Delete",
"name": "Synchronize Azure Active Directory Users to salesforce.com",
"scope": null,
"sourceObjectName": "User",
"targetObjectName": "User"
}]
}]
}
Hinzufügen einer Definition für das officeCode-Attribut und einer Zuordnung zwischen Attributen
Verwenden Sie einen Nur-Text-Editor Ihrer Wahl (z. B. Editor++ oder JSON Editor Online),um:
Fügen Sie eine Attributdefinition für das
officeCodeAttribut hinzu.- Suchen Sie unter "Verzeichnisse" das Verzeichnis mit dem Namen salesforce.com, und suchen Sie im Array des Objekts nach dem Verzeichnis mit dem Namen "User".
- Fügen Sie das neue Attribut zur Liste hinzu, und geben Sie dabei den Namen und den Typ an, wie im folgenden Beispiel gezeigt.
Fügen Sie eine Attributzuordnung zwischen
officeCodeundextensionAttribute10hinzu.- Suchen Sie unter synchronizationRulesdie Regel, die Azure AD als Quellverzeichnis angibt, und Salesforce.com als Zielverzeichnis (
"sourceDirectoryName": "Azure Active Directory", "targetDirectoryName": "salesforce.com"). - Suchen Sie in den objectMappings der Regel die Zuordnung zwischen Benutzern (
"sourceObjectName": "User", "targetObjectName": "User"). - Fügen Sie im attributeMappings-Array des objectMapping-Objekts einen neuen Eintrag hinzu, wie im folgenden Beispiel gezeigt.
- Suchen Sie unter synchronizationRulesdie Regel, die Azure AD als Quellverzeichnis angibt, und Salesforce.com als Zielverzeichnis (
{
"directories": [
{
"id": "8ffa6169-f354-4751-9b77-9c00765be92d",
"name": "salesforce.com",
"objects": [
{
"attributes": [
{
"name": "officeCode",
"type": "String"
}
],
"name":"User"
}]
}
],
"synchronizationRules": [
{
"editable": true,
"id": "4c5ecfa1-a072-4460-b1c3-4adde3479854",
"name": "USER_OUTBOUND_USER",
"objectMappings": [
{
"attributeMappings": [
{
"source": {
"name": "extensionAttribute10",
"type": "Attribute"
},
"targetAttributeName": "officeCode"
}
],
"name": "Synchronize Azure Active Directory Users to salesforce.com",
"scope": null,
"sourceObjectName": "User",
"targetObjectName": "User"
}
],
"priority": 1,
"sourceDirectoryName": "Azure Active Directory",
"targetDirectoryName": "salesforce.com"
}
]
}
Speichern des geänderten Synchronisierungsschemas
Wenn Sie das aktualisierte Synchronisierungsschema speichern, stellen Sie sicher, dass Sie das gesamte Schema einschließlich der unveränderten Teile einschließen. Diese Anforderung ersetzt das vorhandene Schema durch das von Ihnen bereitgestellte Schema.
PUT https://graph.microsoft.com/beta/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/schema
Authorization: Bearer {Token}
{
"directories": [..],
"synchronizationRules": [..]
}
HTTP/1.1 201 No Content
Wenn das Schema erfolgreich gespeichert wurde, beginnt es bei der nächsten Iteration des Synchronisierungsauftrags mit der erneuten Verarbeitung aller Konten in Ihrem Azure AD, und die neuen Zuordnungen werden auf alle bereitgestellten Konten angewendet.
Feedback
Feedback senden und anzeigen für