Azure Synapse Analytics Access Control biblioteca cliente para .NET: versión 1.0.0-preview.5

Este directorio contiene el subconjunto código abierto del SDK de .NET. Para obtener documentación del SDK completo de Azure, consulte el Centro para desarrolladores de Microsoft Azure .NET.

La biblioteca cliente de control de acceso de Azure Synapse Analytics permite administrar mediante programación las asignaciones de roles.

Azure Synapse es un servicio de análisis ilimitado que reúne el almacenamiento de datos empresariales y el análisis de macrodatos. Le ofrece la libertad de consultar los datos como prefiera, ya sea a petición sin servidor o con recursos aprovisionados, a escala. Azure Synapse reúne estos dos mundos con una experiencia unificada para ingerir, preparar, administrar y servir datos para las necesidades inmediatas de inteligencia empresarial y aprendizaje automático.

Introducción

El SDK de Microsoft Azure completo se puede descargar desde la página descargas de Microsoft Azure y se incluye con compatibilidad para compilar paquetes de implementación, integrar con herramientas, herramientas de línea de comandos enriquecidas, etc.

Para obtener la mejor experiencia de desarrollo, los desarrolladores deben usar los paquetes NuGet oficiales de Microsoft para bibliotecas. Los paquetes NuGet se actualizan periódicamente con nuevas funcionalidades y revisiones.

Instalar el paquete

Instale la biblioteca cliente de control de acceso de Azure Synapse Analytics para .NET con NuGet:

dotnet add package Azure.Analytics.Synapse.AccessControl --version 0.1.0-preview.1

Requisitos previos

Si usa la CLI de Azure, el comando tiene el siguiente aspecto:

az synapse workspace create \
    --name <your-workspace-name> \
    --resource-group <your-resource-group-name> \
    --storage-account <your-storage-account-name> \
    --file-system <your-storage-file-system-name> \
    --sql-admin-login-user <your-sql-admin-user-name> \
    --sql-admin-login-password <your-sql-admin-user-password> \
    --location <your-workspace-location>

Autenticar el cliente

Para interactuar con el servicio Azure Synapse Analytics, deberá crear una instancia de una clase RoleAssignmentsClient o RoleDefinitionsClient.

También necesitará un punto de conexión del área de trabajo, que puede ver como "Punto de conexión de desarrollo" en el portal y credenciales de secreto de cliente (id. de cliente, secreto de cliente, identificador de inquilino) para crear instancias de un objeto de cliente.

La autenticación de credenciales de secreto de cliente se usa en esta sección de introducción, pero puede encontrar más formas de autenticarse con la identidad de Azure. Para usar el proveedor DefaultAzureCredential que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, debe instalar el paquete Azure.Identity:

Install-Package Azure.Identity

Conceptos clave

RoleAssignmentsClient & RoleDefinitionsClient

Con , RoleAssignmentsClient puede crear, actualizar y eliminar asignaciones de roles. Con , RoleDefinitionsClient puede obtener asignaciones de roles desde el área de trabajo.

Asignación de roles

La forma en que controla el acceso a los recursos de Synapse es crear asignaciones de roles. Una asignación de roles es el proceso de asociar una definición de roles a un usuario, grupo, entidad de servicio o identidad administrada en un ámbito determinado con el fin de conceder acceso. El acceso se concede mediante la creación de una asignación de roles y se revoca al quitar una asignación de roles.

Seguridad para subprocesos

Garantizamos que todos los métodos de instancia de cliente sean seguros para subprocesos e independientes entre sí (guía). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.

Conceptos adicionales

Opciones | de cliente Acceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente

Ejemplos

El paquete Azure.Analytics.Synapse.AccessControl admite API sincrónicas y asincrónicas. En la sección siguiente se tratan algunas de las tareas relacionadas con el control de acceso de Azure Synapse Analytics más comunes:

Ejemplos de asignación de roles

Creación de un cliente de control de acceso

Para interactuar con Azure Synapse, debe crear RoleAssignmentsClient instancias de y .RoleDefinitionsClient Requiere una dirección URL de punto de conexión y .TokenCredential

// Replace the string below with your actual endpoint url.
string endpoint = "<my-endpoint-url>";

RoleAssignmentsClient roleAssignmentsClient = new RoleAssignmentsClient(new Uri(endpoint), new DefaultAzureCredential());
RoleDefinitionsClient definitionsClient = new RoleDefinitionsClient(new Uri(endpoint), new DefaultAzureCredential());

Crear una asignación de rol

En primer lugar, debe determinar el identificador del rol que desea asignar, junto con el identificador de la entidad de seguridad a la que desea asignar ese rol.

Response<IReadOnlyList<SynapseRoleDefinition>> roles = definitionsClient.ListRoleDefinitions();
SynapseRoleDefinition role = roles.Value.Single(role => role.Name == "Synapse Administrator");
Guid roleId = role.Id.Value;

string assignedScope = "workspaces/<my-workspace-name>";

// Replace the string below with the ID you'd like to assign the role.
Guid principalId = /*<my-principal-id>"*/ Guid.NewGuid();

// Replace the string below with the ID of the assignment you'd like to use.
string assignmentId = "<my-assignment-id>";

A continuación, llame a CreateRoleAssignment con las opciones para crear la asignación de roles.

Response<RoleAssignmentDetails> response = roleAssignmentsClient.CreateRoleAssignment (assignmentId, roleId, principalId, assignedScope);
RoleAssignmentDetails roleAssignmentAdded = response.Value;

Recuperación de una asignación de roles

Puede recuperar los detalles de una asignación de roles llamando a GetRoleAssignmentById, pasando el identificador de asignación.

RoleAssignmentDetails roleAssignment = roleAssignmentsClient.GetRoleAssignmentById(roleAssignmentAdded.Id);
Console.WriteLine($"Role {roleAssignment.RoleDefinitionId} is assigned to {roleAssignment.PrincipalId}.");

Lista de asignaciones de roles

Para enumerar todas las asignaciones de roles en el área de trabajo de Synapse, puede llamar a ListRoleDefinitions.

Response<IReadOnlyList<SynapseRoleDefinition>> roleAssignments = definitionsClient.ListRoleDefinitions();
foreach (SynapseRoleDefinition assignment in roleAssignments.Value)
{
    Console.WriteLine(assignment.Id);
}

Eliminación de una asignación de roles

Para eliminar una asignación de roles ya no es necesaria, puede llamar a DeleteRoleAssignmentById, pasando el identificador de asignación.

roleAssignmentsClient.DeleteRoleAssignmentById(roleAssignment.Id);

Para compilar

Para obtener información sobre cómo compilar la biblioteca cliente de Azure Synapse, consulte Creación de la Microsoft Azure SDK para .NET

Versiones de .NET Framework de destino

Para obtener información sobre las plataformas de destino de la biblioteca cliente de Azure Synapse, consulte las plataformas de destino de la Microsoft Azure SDK para .NET.

Solución de problemas

Abra el problema en github.

Pasos siguientes

El siguiente paso es agregar más ejemplos

Contribuir

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.