Azure Synapse Analytics Controle de Acesso biblioteca de clientes para .NET – versão 1.0.0-preview.5

Esse diretório contém o subconjunto código aberto do SDK do .NET. Para obter a documentação do SDK completo do Azure, consulte o Centro de Desenvolvedores do Microsoft Azure .NET.

A biblioteca de clientes de controle de acesso do Azure Synapse Analytics permite gerenciar programaticamente atribuições de função.

O Azure Synapse é um serviço de análise ilimitado que reúne data warehouse empresarial e análise de Big Data. Ele oferece a liberdade para consultar dados da forma que você quiser, usando recursos sob demanda sem servidor ou provisionados em escala. O Azure Synapse conecta esses dois mundos com uma experiência unificada para ingerir, preparar, gerenciar e fornecer dados para necessidades imediatas de BI e de aprendizado de máquina.

Introdução

O SDK completo do Microsoft Azure pode ser baixado da Página de Downloads do Microsoft Azure e fornecido com suporte para a criação de pacotes de implantação, integração com ferramentas, ferramentas avançadas de linha de comando e muito mais.

Para obter a melhor experiência de desenvolvimento, os desenvolvedores devem usar os pacotes NuGet oficiais da Microsoft para bibliotecas. Os pacotes NuGet são atualizados regularmente com novas funcionalidades e hotfixes.

Instalar o pacote

Instale a biblioteca de clientes de controle de acesso do Azure Synapse Analytics para .NET com o NuGet:

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

Pré-requisitos

Se você usar a CLI do Azure, o comando será semelhante ao seguinte:

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 o cliente

Para interagir com o serviço Azure Synapse Analytics, você precisará criar uma instância de uma classe RoleAssignmentsClient e/ou RoleDefinitionsClient.

Você também precisará de um ponto de extremidade de workspace, que pode ser exibido como "Ponto de extremidade de desenvolvimento" no portal e credenciais de segredo do cliente (ID do cliente, segredo do cliente, ID do locatário) para instanciar um objeto cliente.

A autenticação de credencial de segredo do cliente está sendo usada nesta seção de introdução, mas você pode encontrar mais maneiras de autenticar com a identidade do Azure. Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, você deve instalar o pacote Azure.Identity:

Install-Package Azure.Identity

Principais conceitos

RoleAssignmentsClient & RoleDefinitionsClient

Com um RoleAssignmentsClient , você pode criar, atualizar e excluir atribuições de função. Com um RoleDefinitionsClient , você pode obter atribuições de função do workspace.

Atribuição de função

A maneira como você controla o acesso aos recursos do Synapse é criar atribuições de função. Uma atribuição de função é o processo de associar uma definição de função a um usuário, grupo, entidade de serviço ou identidade gerenciada em um escopo específico com a finalidade de conceder acesso. O acesso é concedido criando uma atribuição de função, e é revogado removendo uma atribuição de função.

Acesso thread-safe

Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.

Conceitos adicionais

Opções do | cliente Acessando a resposta | Operações de execução longa | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida do cliente

Exemplos

O pacote Azure.Analytics.Synapse.AccessControl dá suporte a APIs síncronas e assíncronas. A seção a seguir aborda algumas das tarefas mais comuns relacionadas ao controle de acesso do Azure Synapse Analytics:

Exemplos de atribuição de função

Criar cliente de controle de acesso

Para interagir com Azure Synapse, você precisa instanciar um RoleAssignmentsClient e um RoleDefinitionsClient. Ele requer uma URL de ponto de extremidade e um 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());

Criar uma atribuição de função

Primeiro, você precisa determinar a ID da função que deseja atribuir, juntamente com a ID da entidade de segurança que você deseja atribuir a função.

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>";

Em seguida, chame CreateRoleAssignment com as opções para criar a atribuição de função.

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

Recuperar uma atribuição de função

Você pode recuperar os detalhes de uma atribuição de função chamando GetRoleAssignmentById, passando a ID da atribuição.

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

Listar atribuições de função

Para enumerar todas as atribuições de função no workspace do Synapse, você pode chamar ListRoleDefinitions.

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

Excluir uma atribuição de função

Para excluir uma atribuição de função que não é mais necessária, você pode chamar DeleteRoleAssignmentById, passando a ID da atribuição.

roleAssignmentsClient.DeleteRoleAssignmentById(roleAssignment.Id);

Para compilar

Para obter informações sobre como criar a biblioteca de clientes Azure Synapse, consulte Criando o SDK do Microsoft Azure para .NET

Frameworks de destino

Para obter informações sobre as estruturas de destino da biblioteca de clientes Azure Synapse, consulte as Estruturas de Destino do SDK do Microsoft Azure para .NET.

Solução de problemas

Abra o problema no github.

Próximas etapas

A próxima etapa é adicionar mais exemplos

Participante

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.