Konfigurieren der Synchronisierung mit Verzeichniserweiterungsattributen
Artikel
Namespace: microsoft.graph
Sie können Ihr Synchronisierungsschema anpassen, um Microsoft Entra Verzeichniserweiterungsattribute einzuschließen. In diesem Artikel wird beschrieben, wie Sie ein Verzeichniserweiterungsattribut (extension_9d98asdfl15980a_Nickname) verwenden, um den Wert von User.CommunityNickname in Salesforce aufzufüllen. In diesem Szenario haben Sie Microsoft Entra Connect eingerichtet, um eine Reihe von Verzeichniserweiterungsattributen von Windows Server Active Directory lokal in Microsoft Entra ID bereitzustellen.
In diesem Artikel wird davon ausgegangen, dass Sie bereits eine Anwendung hinzugefügt haben, die die Synchronisierung mit Ihrem Mandanten über die Microsoft Entra Admin Center unterstützt, dass Sie den Anzeigenamen der Anwendung kennen und ü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 Sandbox" finden.
GET https://graph.microsoft.com/v1.0/servicePrincipals?$select=id,appId,displayName&$filter=startswith(displayName, 'salesforce')
Authorization: Bearer {Token}
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "id","appId","displayName" };
requestConfiguration.QueryParameters.Filter = "startswith(displayName, 'salesforce')";
requestConfiguration.Headers.Add("Authorization", "Bearer {Token}");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc service-principals list --filter "startswith(displayName, 'salesforce')" --select "id,appId,displayName"
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipalCollectionResponse result = graphClient.servicePrincipals().get(requestConfiguration -> {
requestConfiguration.queryParameters.select = new String []{"id", "appId", "displayName"};
requestConfiguration.queryParameters.filter = "startswith(displayName, 'salesforce')";
requestConfiguration.headers.add("Authorization", "Bearer {Token}");
});
GET https://graph.microsoft.com/v1.0/servicePrincipals/60443998-8cf7-4e61-b05c-a53b658cb5e1/synchronization/jobs
Authorization: Bearer {Token}
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].Synchronization.Jobs.GetAsync((requestConfiguration) =>
{
requestConfiguration.Headers.Add("Authorization", "Bearer {Token}");
});
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
SynchronizationJobCollectionResponse result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").synchronization().jobs().get(requestConfiguration -> {
requestConfiguration.headers.add("Authorization", "Bearer {Token}");
});
Der {jobId} ist SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa.
Suchen sie den Namen des verzeichniserweiterungsattributs, das Sie benötigen.
Sie benötigen den vollständigen Namen des Erweiterungsattributs. Wenn Sie den vollständigen Namen nicht kennen (der in etwa wie extension_9d98asdfl15980a_Nickname aussehen sollte), lesen Sie die folgenden Informationen zu Verzeichniserweiterungsattributen und deren Untersuchung:
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipalId}/synchronization/jobs/{jobId}/schema
Authorization: Bearer {Token}
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].Synchronization.Jobs["{synchronizationJob-id}"].Schema.GetAsync((requestConfiguration) =>
{
requestConfiguration.Headers.Add("Authorization", "Bearer {Token}");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc service-principals synchronization jobs schema get --service-principal-id {servicePrincipal-id} --synchronization-job-id {synchronizationJob-id}
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
SynchronizationSchema result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").synchronization().jobs().bySynchronizationJobId("{synchronizationJob-id}").schema().get(requestConfiguration -> {
requestConfiguration.headers.add("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.
Fügen Sie eine Attributdefinition für das extension_9d98asdfl15980a_Nickname Attribut hinzu.
Suchen Sie unter Verzeichnisse nach dem Verzeichnis mit dem Namen "Microsoft Entra ID", und suchen Sie im Array des Objekts nach dem Verzeichnis mit dem Namen User.
Fügen Sie der Liste das neue Attribut hinzu, und geben Sie dabei den Namen und Typ an, wie im folgenden Beispiel gezeigt.
Fügen Sie eine Attributzuordnung zwischen extension_9d98asdfl15980a_Nickname und CommunityNickname hinzu.
Suchen Sie unter synchronizationRules die Regel, die Microsoft Entra ID als Quellverzeichnis angibt, und Salesforce.com als Zielverzeichnis ("sourceDirectoryName": "Azure Active Directory", "targetDirectoryName": "salesforce.com").
Suchen Sie in objectMappings der Regel nach der Zuordnung zwischen Benutzern ("sourceObjectName": "User", "targetObjectName": "User").
Fügen Sie im attributMappings-Array von objectMapping einen neuen Eintrag hinzu, wie im folgenden Beispiel gezeigt.
Stellen Sie beim Speichern des aktualisierten Synchronisierungsschemas 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.
Wenn das Schema erfolgreich gespeichert wurde, gibt die Anforderung einen 204 No Content Antwortcode zurück. Bei der nächsten Iteration des Synchronisierungsauftrags beginnt er mit der erneuten Verarbeitung aller Konten in Ihrem Microsoft Entra ID, und die neuen Zuordnungen werden auf alle bereitgestellten Konten angewendet.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter https://aka.ms/ContentUserFeedback.