Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como acessar serviços do Azure, como o Armazenamento do Azure, de um aplicativo Web, não de um usuário conectado, em execução no Serviço de Aplicativo do Azure usando identidades gerenciadas. Este tutorial demonstra a conexão com Azure Storage como exemplo.
Qualquer serviço que dê suporte à identidade gerenciada (B na imagem a seguir) pode ser acessado com segurança usando este tutorial:
- Azure Storage
- Banco de Dados SQL do Azure
- Azure Key Vault
Você deseja adicionar acesso seguro aos serviços do Azure, incluindo o Armazenamento do Azure, o Banco de Dados SQL do Azure e o Azure Key Vault, do seu aplicativo Web. Você pode usar uma chave compartilhada, mas precisa se preocupar com a segurança operacional de quem pode criar, implantar e gerenciar o segredo. Também é possível que a chave possa ser verificada em GitHub, que os hackers sabem como verificar. Um modo mais seguro de permitir o acesso do aplicativo Web aos dados é pelo uso de identidades gerenciadas.
Uma identidade gerenciada de Microsoft Entra ID permite que o Serviço de Aplicativo acesse recursos por meio do RBAC (controle de acesso baseado em função), sem a necessidade de credenciais do aplicativo. Depois de atribuir uma identidade gerenciada ao seu aplicativo Web, o Azure cuidará da criação e distribuição de um certificado. As pessoas não precisam se preocupar em gerenciar segredos nem credenciais de aplicativo.
Neste tutorial, você aprenderá como:
- Criar uma identidade gerenciada atribuída ao sistema em um aplicativo Web.
- Crie uma conta de armazenamento e um contêiner de Azure Blob Storage.
- Acessar o armazenamento por meio de um aplicativo Web usando identidades gerenciadas.
Se você não tiver uma conta Azure, crie uma conta free antes de começar.
Pré-requisitos
Um aplicativo Web em execução no Serviço de Aplicativo do Azure:
Habilitar a identidade gerenciada em um aplicativo
Se você criar e publicar seu aplicativo Web por meio de Visual Studio, a identidade gerenciada foi habilitada em seu aplicativo para você.
No serviço de aplicativo, no menu à esquerda, selecione Identidade e selecione Sistema atribuído. Verifique se o Status está definido como Ativado.
Caso contrário, selecione Ativar e, em seguida, salvar. Para habilitar a identidade gerenciada atribuída pelo sistema, na caixa de diálogo de confirmação, selecione Sim. Quando a identidade gerenciada é habilitada, o status é definido como Ativado e a ID do objeto fica disponível.
Essa etapa cria uma ID do objeto diferente da ID do aplicativo criada no painel Autenticação/Autorização. Copie a ID do objeto da identidade gerenciada atribuída ao sistema. Isso será necessário mais tarde.
Criar uma conta de armazenamento e Blob Storage contêiner
Agora você está pronto para criar uma conta de armazenamento e Blob Storage contêiner.
Cada conta de armazenamento deve pertencer a um grupo de recursos Azure. Um grupo de recursos é um contêiner lógico para seus serviços do Azure. Ao criar uma conta de armazenamento, você pode criar um novo grupo de recursos ou usar um grupo de recursos existente. Este artigo mostra como criar um grupo de recursos.
Uma conta de armazenamento v2 de uso geral fornece acesso a todos os serviços de Azure Storage: blobs, arquivos, filas, tabelas e discos. As etapas descritas aqui criam uma conta de armazenamento de uso geral v2, mas as etapas para a criação de qualquer tipo de conta de armazenamento são semelhantes.
Blobs em Azure Storage são organizados em contêineres. Para carregar um blob posteriormente neste tutorial, crie primeiro um contêiner.
Para criar uma conta de armazenamento v2 de uso geral no portal do Azure, siga estas etapas.
No menu do portal Azure, insira Storage Accounts. Quando você começa a digitar, a lista é filtrada com base em sua entrada. Selecione Contas de Armazenamento.
Na janela Contas de Armazenamento que é exibida, escolha Criar.
Selecione a assinatura na qual você deseja criar a conta de armazenamento.
Para o grupo de recursos, selecione o grupo de recursos que contém seu aplicativo Web.
Insira um nome para a conta de armazenamento. O nome escolhido deve ser exclusivo em Azure. O nome deve ter entre 3 e 24 caracteres de comprimento e pode incluir apenas números e letras minúsculas.
Selecione um local (região) para a conta de armazenamento ou use o valor padrão.
Para o tipo de armazenamento preferencial, selecione o Armazenamento de Blobs do Azure ou o Azure Data Lake Storage Gen 2.
Deixe esses campos definidos como seus valores padrão:
Campo Valor Desempenho Standard Redundância Armazenamento com redundância geográfica Selecione Revisar + Criar para examinar as configurações da conta de armazenamento e criar a conta.
Selecione Criar.
Para criar um contêiner de Blob Storage em Azure Storage, siga estas etapas.
Acesse sua nova conta de armazenamento no portal do Azure.
No menu à esquerda da conta de armazenamento, em Armazenamento de dados, selecione Contêineres.
Selecione Adicionar contentor.
Digite um nome para o novo contêiner. O nome do contêiner deve estar com letras minúsculas, começar com uma letra ou número e pode incluir apenas letras, números e o caractere traço (-).
Defina o nível de acesso público ao contêiner. O nível padrão é Privado (sem acesso anônimo) .
Selecione OK para criar o contêiner.
Permitir acesso à conta de armazenamento
Você precisa permitir ao aplicativo Web acesso à conta de armazenamento antes de poder criar, ler ou excluir blobs. Em uma seção anterior, você configurou o aplicativo Web em execução no Serviço de Aplicativo com uma identidade gerenciada. Usando o RBAC do Azure, você pode fornecer à identidade gerenciada o acesso a outro recurso, assim como qualquer entidade de segurança.
A função Colaborador de Dados do Blob de Armazenamento concede ao aplicativo web, representado pela identidade gerenciada atribuída pelo sistema, acesso de leitura, gravação e exclusão ao contêiner de blobs e aos dados.
Observação
O RBAC do Azure não dá suporte a algumas operações em contêineres de blob privados, como exibir blobs ou copiar blobs entre contas. Um contêiner de blob com nível de acesso privado requer um token SAS para qualquer operação que o RBAC do Azure não autorize. Para obter mais informações, confira Quando usar uma assinatura de acesso compartilhado.
- No Azure portal, acesse sua conta de armazenamento para conceder acesso ao aplicativo Web.
- No menu à esquerda, selecione Controle de acesso (IAM) e selecione Atribuições de função. Você verá uma lista de quem tem acesso à conta de armazenamento.
- Você deseja adicionar uma atribuição de função ao serviço de aplicativo que precisa de acesso à conta de armazenamento. Selecione Adicionar>Adicionar atribuição de função para abrir a página Adicionar atribuição de função.
- Atribua a função Colaborador de Dados do Blob de Armazenamento ao Serviço de Aplicativo no âmbito da conta de armazenamento. Para obter mais informações, consulte Atribuir funções do Azure usando o portal do Azure.
O aplicativo Web agora tem acesso à conta de armazenamento.
Acessar o Armazenamento de Blobs
A classe DefaultAzureCredential é usada para obter uma credencial de token para seu código autorizar solicitações a Azure Storage. Crie uma instância da classe DefaultAzureCredential, que usa a identidade gerenciada para buscar tokens e anexá-los ao cliente do serviço. O exemplo de código a seguir obtém a credencial de token autenticada e a usa para criar um objeto de cliente de serviço que, por sua vez, carrega um novo blob.
Para ver esse código como parte de um aplicativo de exemplo, consulte o sample em GitHub.
Instalar os pacotes da biblioteca de clientes
Instale o pacote NuGet Blob Storage para trabalhar com o Blob Storage e o pacote NuGet Azure Identity client library for .NET para autenticar com credenciais do Microsoft Entra. Instale as bibliotecas de cliente usando a interface de linha de comando do .NET Core ou o Console Package Manager no Visual Studio.
linha de comando do .NET Core
Abra uma linha de comando e alterne para o diretório que contém o arquivo de projeto.
Execute os comandos de instalação.
dotnet add package Azure.Storage.Blobs dotnet add package Azure.Identity
Console do Package Manager
Abra o projeto ou a solução no Visual Studio e abra o console usando o comando Tools>NuGet Package Manager>Package Manager Console.
Execute os comandos de instalação.
Install-Package Azure.Storage.Blobs Install-Package Azure.Identity
.NET Exemplo
using System;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using System.IO;
using Azure.Identity;
// Some code omitted for brevity.
static public async Task UploadBlob(string accountName, string containerName, string blobName, string blobContents)
{
// Construct the blob container endpoint from the arguments.
string containerEndpoint = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get a credential and create a client object for the blob container.
BlobContainerClient containerClient = new BlobContainerClient(new Uri(containerEndpoint),
new DefaultAzureCredential());
try
{
// Create the container if it doesn't exist.
await containerClient.CreateIfNotExistsAsync();
// Upload text to a new block blob.
byte[] byteArray = Encoding.ASCII.GetBytes(blobContents);
using (MemoryStream stream = new MemoryStream(byteArray))
{
await containerClient.UploadBlobAsync(blobName, stream);
}
}
catch (Exception e)
{
throw e;
}
}
Limpar os recursos
Se você concluir este tutorial e não precisar mais do aplicativo Web ou dos recursos associados, limpe os recursos criados.
Exclua o grupo de recursos
No portal do Azure, selecione Grupos de recursos no menu do portal do Azure e selecione o grupo de recursos que contém o serviço de aplicativo e o plano do serviço de aplicativo.
Selecione Excluir grupo de recursos para excluir o grupo de recursos e todos os recursos que ele contém.
Insira o nome do grupo de recursos para confirmar.
Esse processo pode levar vários minutos para ser executado.
Próximas etapas
Neste tutorial, você aprendeu a:
- Criar uma identidade gerenciada atribuída ao sistema.
- Crie uma conta de armazenamento e Blob Storage contêiner.
- Acessar o armazenamento por meio de um aplicativo Web usando identidades gerenciadas.