Hinzufügen von Clusterprinzipalen für Azure Data Explorer

Azure-Daten-Explorer ist ein schneller und hochgradig skalierbarer Dienst zur Untersuchung von Daten (Protokoll- und Telemetriedaten). In diesem Artikel erfahren Sie, wie Sie Clusterprinzipale für Azure Data Explorer mithilfe von C#, Python oder einer Arm-Vorlage (Azure Resource Manager) hinzufügen.

Codebeispiele, die auf früheren SDK-Versionen basieren, finden Sie im archivierten Artikel.

Voraussetzungen

Die Voraussetzungen variieren je nach der Methode, die zum Hinzufügen des Prinzipals verwendet wird. Wählen Sie die relevante Registerkarte für Ihre bevorzugte Methode aus.

In der folgenden Liste werden die Voraussetzungen zum Hinzufügen eines Clusterprinzipals mit C# beschrieben.

Hinzufügen eines Clusterprinzipals

Führen Sie den folgenden Code aus, um einen Clusterprinzipal hinzuzufügen:

var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
//The cluster that is created as part of the Prerequisites
var clusterName = "mykustocluster";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var clusterPrincipalAssignments = cluster.GetKustoClusterPrincipalAssignments(); 
var clusterPrincipalAssignmentName = "mykustoclusterprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoClusterPrincipalRole.AllDatabasesAdmin; //AllDatabasesAdmin or AllDatabasesViewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var clusterPrincipalAssignmentData = new KustoClusterPrincipalAssignmentData
{
    ClusterPrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await clusterPrincipalAssignments.CreateOrUpdateAsync(
    WaitUntil.Completed, clusterPrincipalAssignmentName, clusterPrincipalAssignmentData
);
Einstellung Empfohlener Wert Feldbeschreibung
tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Ihre Mandanten-ID. Wird auch als Verzeichnis-ID bezeichnet.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Abonnement-ID, die Sie für die Ressourcenerstellung verwenden.
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Client-ID der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
clientSecret PlaceholderClientSecret Das Clientgeheimnis der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
resourceGroupName testrg Der Name der Ressourcengruppe, die Ihren Cluster enthält.
clusterName mykustocluster Der Name Ihres Clusters.
clusterPrincipalAssignmentName mykustoclusterprincipalassignment Der Name Ihrer Clusterprinzipalressource.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Prinzipal-ID. Dies kann die E-Mail-Adresse des Benutzers, die Anwendungs-ID oder der Name der Sicherheitsgruppe sein.
Rolle (role) AllDatabasesAdmin Die Rolle Ihres Clusterprinzipals, die „AllDatabasesAdmin“, „AllDatabasesMonitor“ oder „AllDatabasesViewer“ sein kann.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Mandanten-ID des Prinzipals.
principalType App Der Typ des Prinzipals, der „Benutzer“, „App“ oder „Gruppe“ sein kann.