Clusterprincipals toevoegen voor Azure Data Explorer
Azure Data Explorer is een snelle en zeer schaalbare service voor gegevensverkenning voor telemetrische gegevens en gegevens uit logboeken. In dit artikel leert u hoe u clusterprincipals voor Azure Data Explorer toevoegt met behulp van C#, Python of een ARM-sjabloon (Azure Resource Manager).
Zie het gearchiveerde artikel voor codevoorbeelden op basis van eerdere SDK-versies.
Vereisten
De vereisten variƫren afhankelijk van de methode die wordt gebruikt om de principal toe te voegen. Kies het relevante tabblad voor de gewenste methode.
De volgende lijst bevat een overzicht van de vereisten voor het toevoegen van een clusterprincipal met C#.
- Een Microsoft-account of een Microsoft Entra gebruikersidentiteit. Een Azure-abonnement is niet vereist.
- Een Azure Data Explorer-cluster en -database. Maak een cluster en database.
- Visual Studio 2022 Community Edition. Schakel Azure-ontwikkeling in tijdens de installatie van Visual Studio.
- Een Microsoft Entra toepassing en service-principal die toegang hebben tot resources. Sla de map-id (tenant),toepassings-id en clientgeheim op.
- Installeer Azure.ResourceManager.Kusto.
- Installeer Azure.Identity voor verificatie.
Een clusterprincipal toevoegen
Voer de volgende code uit om een clusterprincipal toe te voegen:
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
);
Instelling | Voorgestelde waarde | Beschrijving van veld |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Uw tenant-id. Dit wordt ook wel map-id genoemd. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De abonnements-id die u gebruikt voor het maken van resources. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De client-id van de toepassing die toegang heeft tot resources in uw tenant. |
clientSecret | Tijdelijke aanduidingClientSecret | Het clientgeheim van de toepassing die toegang heeft tot resources in uw tenant. |
resourceGroupName | testrg | De naam van de resourcegroep die uw cluster bevat. |
clusterName | mykustocluster | De naam van uw cluster. |
clusterPrincipalAssignmentName | mykustoclusterprincipalassignment | De naam van de principal-resource van uw cluster. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De principal-id, die het e-mailadres van de gebruiker, de toepassings-id of de naam van de beveiligingsgroep kan zijn. |
role | AllDatabasesAdmin | De rol van uw clusterprincipal, die 'AllDatabasesAdmin', 'AllDatabasesMonitor' of 'AllDatabasesViewer' kan zijn. |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De tenant-id van de principal. |
principalType | App | Het type principal, dat kan 'Gebruiker', 'App' of 'Groep' zijn |