Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El Explorador de datos de Azure es un servicio de exploración de datos altamente escalable y rápido para datos de telemetría y registro. En este artículo, aprenderá cómo incorporar principales de clúster para Azure Data Explorer utilizando C#, Python o una plantilla de Azure Resource Manager (ARM).
Para ver ejemplos de código basados en versiones anteriores del SDK, consulte el artículo archivado.
Prerrequisitos
Los requisitos previos varían en función del método usado para agregar la entidad principal. Elija la pestaña correspondiente para el método preferido.
En la lista siguiente se describen los requisitos previos para agregar un principal de clúster con C#.
- Una cuenta de Microsoft o una identidad de usuario de Microsoft Entra. No se necesita una suscripción a Azure.
- Un clúster y la base de datos de Azure Data Explorer. Cree un clúster y una base de datos.
- Visual Studio 2022 Community Edition. Active el desarrollo de Azure durante la configuración de Visual Studio.
- Una aplicación y una entidad de servicio de Microsoft Entra que pueden acceder a los recursos. Guarde el identificador de directorio (inquilino), el identificador de aplicación y el secreto de cliente.
- Instale Azure.ResourceManager.Kusto.
- Instale Azure.Identity para la autenticación.
Agregar un principal del clúster
Ejecute el código siguiente para agregar una entidad de seguridad de clúster:
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
);
| Configuración | Valor sugerido | Descripción del campo |
|---|---|---|
| tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | El identificador de inquilino. También conocido como identificador de directorio. |
| ID de suscripción | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador de suscripción que se usa para la creación de recursos. |
| clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador del cliente de la aplicación que puede acceder a los recursos del inquilino. |
| clientSecret | PlaceholderClientSecret | Secreto del cliente de la aplicación que puede acceder a los recursos del inquilino. |
| resourceGroupName | testrg | Nombre del grupo de recursos que contiene el clúster. |
| NombreDelCluster | mykustocluster | Nombre del clúster. |
| NombreDeAsignaciónPrincipalDelCluster | mykustoclusterprincipalassignment | Nombre del recurso principal del clúster. |
| principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador principal, que puede ser correo del usuario, identificador de aplicación o grupo de seguridad nombre. |
| role | AllDatabasesAdmin | El rol del administrador de clúster, que puede ser 'AllDatabasesAdmin', 'AllDatabasesMonitor' o 'AllDatabasesViewer'. |
| tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Identificador de tenant del principal. |
| tipoPrincipal | Aplicación | Tipo del principal, que puede ser "Usuario", "Aplicación" o "Grupo". |