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
- Assinatura do Azure: Para usar os serviços do Azure, incluindo Azure Synapse, você precisará de uma assinatura. Se você não tiver uma conta existente do Azure, poderá se inscrever para uma avaliação gratuita ou usar seus benefícios de assinatura do Visual Studio ao criar uma conta.
- Um workspace Azure Synapse existente. Se precisar criar um workspace Azure Synapse, você poderá usar o Portal do Azure ou a CLI do Azure.
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
- Criar uma atribuição de função
- Recuperar uma atribuição de função
- Listar atribuições de função
- Excluir uma 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.
Azure SDK for .NET