Introducción al control de acceso de Kusto
El control de acceso en Azure Data Explorer se basa en dos factores clave.
- Autenticación: valida la identidad de la entidad de seguridad que realiza una solicitud.
- Autorización: valida que la entidad de seguridad que realiza una solicitud tiene permiso para realizar esa solicitud en el recurso de destino.
Las consultas o los comandos de control de un clúster, una base de datos o una tabla de Azure Data Explorer deben pasar las comprobaciones de autenticación y autorización.
Authentication
Azure Active Directory (Azure AD) es el servicio de directorio en la nube multiinquilino preferido de Azure. Puede autenticar las entidades de seguridad o federarse con otros proveedores de identidades.
Azure AD es el método preferido para realizar autenticaciones en Azure Data Explorer en Microsoft. Admite varios escenarios de autenticación.
- Autenticación de usuarios (inicio de sesión interactivo): se usa para autenticar entidades de seguridad humanas.
- Autenticación de aplicaciones (inicio de sesión no interactivo): se usa para autenticar aquellos servicios y aplicaciones que tienen que ejecutarse y autenticarse sin usuarios humanos presentes.
Autenticación de usuarios
La autenticación de usuarios se realiza cuando el usuario presenta las credenciales para:
- Azure AD
- un proveedor de identidades que funciona con Azure AD
Si se realiza correctamente, el usuario recibe un token de seguridad que se puede presentar al servicio Azure Data Explorer. Al servicio Azure Data Explorer no le importa cómo se haya obtenido el token de seguridad. Le importa saber si el token es válido y la información que Azure AD (o el proveedor de identidades federado) ha puesto en él.
En el lado del cliente, Azure Data Explorer admite la autenticación interactiva, donde la biblioteca de autenticación de Microsoft o un código similar, solicitan al usuario que escriba las credenciales. También admite la autenticación basada en tokens, en la que la aplicación que usa Azure Data Explorer obtiene un token de usuario válido. La aplicación que usa Azure Data Explorer también puede obtener un token de usuario válido para otro servicio. El token de usuario solo se puede obtener si existe una relación de confianza entre ese recurso y Azure Data Explorer.
Para más información, consulte Cadenas de conexión de Kusto para más información sobre cómo usar las bibliotecas cliente de Kusto mediante el uso de Azure AD en Azure Data Explorer.
Autenticación de la aplicación
Use el flujo de autenticación de la aplicación de Azure AD cuando las solicitudes no estén asociadas con ningún usuario concreto o no haya ningún usuario disponible para especificar las credenciales. En el flujo, la aplicación se autentica en Azure AD (o en el proveedor de identidades federado) mediante la presentación de cierta información secreta. Los siguientes escenarios son compatibles con los distintos clientes de Azure Data Explorer.
Autenticación de la aplicación mediante un certificado X.509v2 instalado localmente.
Autenticación de la aplicación mediante un certificado X.509v2 proporcionado a la biblioteca cliente como un flujo de bytes.
Autenticación de la aplicación mediante un identificador de aplicación de Azure AD y una clave de aplicación de Azure AD.
Nota
El identificador y la clave son el equivalente de un nombre de usuario y una contraseña.
Autenticación de la aplicación mediante un token de Azure AD válido obtenido previamente y generado para Azure Data Explorer.
Autenticación de la aplicación mediante un token de Azure AD válido obtenido previamente y generado para otro recurso. Este método funcionará si hay una relación de confianza entre ese recurso y Azure Data Explorer.
Cuentas Microsoft (MSA)
Cuenta Microsoft (MSA) es el término que se usa para todas las cuentas de usuario administradas por Microsoft que no pertenecen a ninguna organización, como hotmail.com, live.com o outlook.com.
Kusto admite la autenticación de usuarios en las MSA (no hay concepto de grupos de seguridad) que se identifican mediante su UPN (nombre principal de usuario).
Cuando una entidad de seguridad de MSA está configurada en un recurso de Azure Data Explorer, Azure Data Explorer no intentará resolver el UPN proporcionado.
Llamadas a REST o SDK autenticadas
- Cuando se usa la API REST, la autenticación se realiza mediante el encabezado HTTP estándar
Authorization - Si se usa cualquiera de las bibliotecas .NET de Azure Data Explorer, para controlar la autenticación se especifican el método de autenticación y los parámetros en la cadena de conexión. Otro método consiste en establecer las propiedades en el objeto propiedades de la solicitud de cliente.
El SDK de cliente de Azure Data Explorer como aplicación cliente de Azure AD
Cuando las bibliotecas cliente de Kusto invocan a la biblioteca de autenticación de Microsoft para adquirir un token para comunicarse con Kusto, este especifica la siguiente información:
- El recurso (identificador URI del clúster, como
https://Cluster-and-region.kusto.windows.net) - El identificador de la aplicación cliente de Azure AD
- El identificador URI de redireccionamiento de la aplicación cliente de Azure AD
- El inquilino de Azure AD, que afecta al punto de conexión de Azure AD utilizado para la autenticación. Por ejemplo, en el caso del inquilino de Azure AD
microsoft.com, el punto de conexión de Azure AD eshttps://login.microsoftonline.com/microsoft.com)
El token que devuelve la biblioteca de autenticación de Microsoft a la biblioteca cliente de Azure Data Explorer tiene la dirección URL adecuada del clúster de Azure Data Explorer como audiencia y el permiso de "acceso a Azure Data Explorer" como ámbito.
Ejemplo: obtención de un token de usuario de Azure AD para un clúster de Azure Data Explorer
// Create Auth Context for Azure AD (common or tenant-specific endpoint):
AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/{Azure AD TenantID or name}");
// Provide your Application ID and redirect URI
var clientAppID = "{your client app id}";
var redirectUri = new Uri("{your client app redirect uri}");
// acquireTokenTask will receive the bearer token for the authenticated user
var acquireTokenTask = authContext.AcquireTokenAsync(
$"https://{clusterNameAndRegion}.kusto.windows.net",
clientAppID,
redirectUri,
new PlatformParameters(PromptBehavior.Auto, null)).GetAwaiter().GetResult();
Authorization
Todas las entidades de seguridad autenticadas se someten a una comprobación de autorización antes de que puedan llevar a cabo una acción en un recurso de Azure Data Explorer. Azure Data Explorer usa un modelo de autorización basado en roles, en el que las entidades de seguridad se atribuyen a uno o varios roles de seguridad. La autorización se realizará correctamente siempre y cuando uno de los roles de la entidad de seguridad esté autorizado.
Por ejemplo, el rol de usuario de base de datos concede las entidades de seguridad, usuarios o servicios el derecho a:
- leer los datos de una base de datos concreta
- crear tablas en la base de datos
- crear funciones en la base de datos
La asociación de entidades de seguridad a roles de seguridad se puede definir de forma individual o mediante los grupos de seguridad que se definen en Azure AD. Los comandos se definen en Establecimiento de reglas de autorización basadas en roles.