Freigeben über


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 Anforderungen zum Hinzufügen eines Cluster-Principals mit C# beschrieben.

Hinzufügen eines Cluster-Principals

Führen Sie den folgenden Code aus, um ein Cluster-Hauptkonto 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.
Kunden-ID 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 der Clusterprinzipalressource.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Prinzipal-ID, die benutzer-E-Mail, Anwendungs-ID oder Sicherheitsgruppenname sein kann.
role AllDatabasesAdmin Die Rolle des Clusterprinzipals, der "AllDatabasesAdmin", "AllDatabasesMonitor" oder "AllDatabasesViewer" sein kann.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Mandanten-ID des Prinzipals.
Haupttyp App Der Typ des Prinzipals, der "Benutzer", "App" oder "Gruppe" sein kann