Autenticar aplicativos .NET nos serviços do Azure durante o desenvolvimento local usando contas de desenvolvedor
Ao criar aplicativos de nuvem, os desenvolvedores precisam depurar e testar aplicativos em sua estação de trabalho local. Quando um aplicativo é executado na estação de trabalho de um desenvolvedor durante o desenvolvimento local, deve ser feita a autenticação em todos os serviços do Azure usados pelo aplicativo. Este artigo trata de como usar as credenciais do Azure de um desenvolvedor para autenticar o aplicativo no Azure durante o desenvolvimento local.
Para a autenticação de um aplicativo no Azure durante o desenvolvimento local usando as credenciais do Azure do desenvolvedor, o desenvolvedor deve ser conectado ao Azure pela extensão de ferramentas do Azure do VS Code, da CLI do Azure ou Azure PowerShell. O SDK do Azure para .NET pode detectar que o desenvolvedor está conectado a uma dessas ferramentas e, em seguida, obter as credenciais necessárias do cache de credenciais para autenticar o aplicativo no Azure como o usuário conectado.
Essa abordagem é mais fácil de configurar para uma equipe de desenvolvimento, pois aproveita as contas existentes do Azure dos desenvolvedores. No entanto, a conta de um desenvolvedor provavelmente terá mais permissões do que o exigido pelo aplicativo, o que excede as permissões com as quais o aplicativo será executado em produção. Como alternativa, você pode criar entidades de serviço de aplicativo a serem usadas durante o desenvolvimento local, que podem ter apenas o acesso necessário pelo aplicativo.
1 – Criar um grupo do Azure AD para desenvolvimento local
Como quase sempre há vários desenvolvedores que trabalham em um aplicativo, é recomendável primeiro criar um grupo do Azure AD para encapsular as funções (permissões) que o aplicativo precisa no desenvolvimento local. As vantagens oferecidas são:
- Cada desenvolvedor deve ter as mesmas funções atribuídas, já que as funções são atribuídas no nível do grupo.
- Se for necessária uma nova função para o aplicativo, ela somente precisa ser adicionada ao grupo do Azure AD para o aplicativo.
- Se um novo desenvolvedor ingressar na equipe, ele simplesmente precisa ser adicionado ao grupo do Azure AD correto para obter as permissões adequadas para trabalhar no aplicativo.
Se tiver um grupo de Azure AD existente para sua equipe de desenvolvimento, você pode usar esse grupo. Caso contrário, efetue as etapas a seguir para criar um grupo do Azure AD.
2 – Atribuir funções ao grupo Azure AD
Em seguida, você precisa determinar as funções (permissões) que seu aplicativo precisa em quais recursos e atribuir essas funções ao seu aplicativo. Neste exemplo, as funções serão atribuídas ao grupo do Azure Active Directory criado na etapa 1. As funções podem ser atribuídas a uma função em um recurso, grupo de recursos ou escopo de assinatura. Este exemplo mostra como atribuir funções no escopo do grupo de recursos, uma vez que a maioria dos aplicativos agrupa todos os seus recursos do Azure em um único grupo de recursos.
3 – Entrar no Azure usando ferramentas do .NET
Em seguida, você precisa entrar no Azure usando uma das várias opções de ferramentas do .NET. A conta em que você entra também deve existir no grupo do Azure Active Directory criado e configurado anteriormente.
No menu superior do Visual Studio, navegue até as Opções de >Ferramentas para abrir a caixa de diálogo de opções. Na barra de pesquisa no canto superior esquerdo, digite Azure para filtrar as opções. Na Autenticação de Serviço do Azure, escolha Seleção de Conta.
Selecione o menu suspenso em Escolher uma conta e escolha adicionar uma conta da Microsoft. Uma janela será aberta, solicitando que você escolha uma conta. Insira as credenciais da conta desejada do Azure e selecione a confirmação.
4 – Implementar DefaultAzureCredential no seu aplicativo
DefaultAzureCredential
é compatível com vários métodos de autenticação e determina o método de autenticação que usado no runtime. Dessa forma, seu aplicativo pode usar diferentes métodos de autenticação em ambientes diferentes sem implementar código específico do ambiente.
A ordem e os locais em que DefaultAzureCredential
procura credenciais são encontrados em DefaultAzureCredential.
Para implementar DefaultAzureCredential
, primeiro adicione os pacotes Azure.Identity
e, opcionalmente, os pacotes Microsoft.Extensions.Azure
ao seu aplicativo. Você pode fazer isso usando a linha de comando ou o Gerenciador de Pacotes NuGet.
Abra um ambiente de terminal de sua escolha no diretório do projeto do aplicativo e insira o comando abaixo.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Os serviços do Azure geralmente são acessados usando classes de cliente correspondentes do SDK. Essas classes e seus próprios serviços personalizados devem ser registrados no arquivo Program.cs
para que possam ser acessados por meio de injeção de dependência em todo o aplicativo. Dentro de Program.cs
, siga as etapas abaixo para configurar corretamente seu serviço e DefaultAzureCredential
.
- Inclua os namespaces
Azure.Identity
eMicrosoft.Extensions.Azure
com uma instrução em uso. - Registre o serviço do Azure usando métodos auxiliares relevantes.
- Passe uma instância do objeto
DefaultAzureCredential
para o métodoUseCredential
.
Um exemplo disso é mostrado na ilustração a seguir.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
Como alternativa, você também pode utilizar DefaultAzureCredential
em seus serviços mais diretamente sem a ajuda de métodos de registro adicionais do Azure, conforme visto abaixo.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Quando o código acima for executado em sua estação de trabalho local durante o desenvolvimento local, ele procurará nas variáveis de ambiente de uma entidade de serviço de aplicativo ou no Visual Studio, VS Code, na CLI do Azure ou Azure PowerShell um conjunto de credenciais de desenvolvedor, que podem ser usadas para autenticar o aplicativo nos recursos do Azure durante o desenvolvimento local.
Quando implantado no Azure, esse mesmo código também pode autenticar seu aplicativo em outros recursos do Azure. DefaultAzureCredential
pode recuperar configurações de ambiente e configurações de identidade gerenciada para autenticar-se em outros serviços automaticamente.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de