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.
Durante o desenvolvimento local, os aplicativos precisam se autenticar no Azure para usar diferentes serviços do Azure. Autentique-se localmente usando uma destas abordagens:
- Use uma conta de desenvolvedor com uma das ferramentas de desenvolvedor compatíveis com a biblioteca de Identidade do Azure.
- Use uma entidade de serviço.
Este artigo explica como autenticar usando uma conta de desenvolvedor com ferramentas compatíveis com a biblioteca de Identidades do Azure. Nas seções a seguir, você aprenderá:
- Como usar grupos do Microsoft Entra para gerenciar com eficiência permissões para várias contas de desenvolvedor.
- Como atribuir funções a contas de desenvolvedor para definir o escopo das permissões.
- Como fazer login em ferramentas que oferecem suporte ao desenvolvimento local.
- Como autenticar usando uma conta de desenvolvedor do código do aplicativo.
Ferramentas de desenvolvedor com suporte para autenticação
Para que um aplicativo se autentique no Azure durante o desenvolvimento local usando as credenciais do desenvolvedor do Azure, o desenvolvedor deve estar conectado ao Azure de uma das seguintes ferramentas de desenvolvedor:
- CLI do Azure
- Azure Developer CLI
- Azure PowerShell
A biblioteca de Identidade do Azure pode detectar que o desenvolvedor está conectado a partir de uma dessas ferramentas. A biblioteca pode usar a ferramenta para obter o token de acesso do Microsoft Entra e autenticar o aplicativo no Azure como o usuário que fez login.
Essa abordagem aproveita as contas existentes do Azure do desenvolvedor para simplificar o processo de autenticação. No entanto, a conta de um desenvolvedor provavelmente tem mais permissões do que o exigido pelo aplicativo, excedendo, portanto, as permissões com as quais o aplicativo é executado em produção. Como alternativa, você pode criar entidades de serviço de aplicativo para usar durante o desenvolvimento local, que podem ter o escopo para terem apenas o acesso necessário pelo aplicativo.
Criar um grupo do Microsoft Entra para desenvolvimento local
Crie um grupo do Microsoft Entra para encapsular as funções (permissões) que o aplicativo precisa durante o desenvolvimento local, em vez de atribuir as funções a objetos principais de serviço individuais. Essa abordagem oferece as seguintes vantagens:
- Cada desenvolvedor tem as mesmas funções atribuídas no nível do grupo.
- Se uma nova função for necessária para o aplicativo, ela só precisará ser adicionada ao grupo do aplicativo.
- Se um novo desenvolvedor ingressar na equipe, um novo principal de serviço de aplicativo será criado para o desenvolvedor e adicionado ao grupo, garantindo que o desenvolvedor tenha as permissões corretas para trabalhar no aplicativo.
Navegue até a página de visão geral do Microsoft Entra ID no portal do Azure.
Selecione Todos os grupos no menu à esquerda.
Na página Grupos , selecione Novo grupo.
Na página Novo grupo , preencha os seguintes campos de formulário:
- Tipo de grupo: selecione Segurança.
- Nome do grupo: insira um nome para o grupo que inclui uma referência ao nome do aplicativo ou do ambiente.
- Descrição do grupo: insira uma descrição que explique a finalidade do grupo.
Selecione o link Nenhum membro selecionado em Membros para adicionar membros ao grupo.
No painel de submenu que é aberto, procure a entidade de serviço que você criou anteriormente e selecione-a nos resultados filtrados. Escolha o botão Selecionar na parte inferior do painel para confirmar sua seleção.
Selecione Criar na parte inferior da página Novo grupo para criar o grupo e retornar à página Todos os grupos . Se você não vir o novo grupo listado, aguarde um momento e atualize a página.
Atribuir funções ao grupo
Em seguida, determine quais funções (permissões) seu aplicativo precisa em quais recursos e atribua essas funções ao grupo Microsoft Entra que você criou. Os grupos podem ser atribuídos a uma função no nível do recurso, do grupo de recursos ou da assinatura. Este exemplo mostra como atribuir funções no escopo do grupo de recursos, já que a maioria dos aplicativos agrupa todos os recursos do Azure em um único grupo de recursos.
No portal do Azure, navegue até a página Visão geral do grupo de recursos que contém seu aplicativo.
Selecione Controle de acesso (IAM) na navegação à esquerda.
Na página controle de acesso (IAM), selecione + Adicionar e escolha Adicionar atribuição de função no menu suspenso. A página Adicionar atribuição de função fornece várias guias para configurar e atribuir funções.
Na guia Função , use a caixa de pesquisa para localizar a função que você deseja atribuir. Selecione a função e escolha Avançar.
Na guia Membros :
- Para atribuir acesso ao valor, selecione Usuário, grupo ou entidade de serviço .
- Para o valor Membros, escolha + Selecionar membros para abrir o painel de seleção Selecionar membros.
- Pesquise o grupo do Microsoft Entra criado anteriormente e selecione-o nos resultados filtrados. Escolha Selecionar para escolher o grupo e fechar o painel de menu.
- Selecione Examinar + atribuir na parte inferior da guia Membros .
Na guia Revisão + atribuição , selecione Examinar + atribuir na parte inferior da página.
Entrar no Azure usando ferramentas de desenvolvedor
Em seguida, entre no Azure usando uma das várias ferramentas de desenvolvedor que você pode usar para executar a autenticação em seu ambiente de desenvolvimento. A conta autenticada também deve existir no grupo do Microsoft Entra que você criou e configurou anteriormente.
Os desenvolvedores podem usar a CLI do Azure para autenticar. Os aplicativos que usam DefaultAzureCredential ou AzureCLICredential podem usar essa conta para autenticar solicitações de aplicativo.
Para autenticar com a CLI do Azure, execute o az login comando. Em um sistema com um navegador da Web padrão, a CLI do Azure inicia o navegador para autenticar o usuário.
az login
Para sistemas sem um navegador da Web padrão, o comando az login usa o fluxo de autenticação de código do dispositivo. Também é possível forçar a CLI do Azure a usar o fluxo de código do dispositivo, em vez de iniciar um navegador, especificando o argumento --use-device-code.
az login --use-device-code
Autenticar nos serviços do Azure em seu aplicativo
O pacote de azidentity fornece várias credenciais adaptadas para dar suporte a diferentes cenários e fluxos de autenticação do Microsoft Entra. As etapas a seguir demonstram como usar DefaultAzureCredential ao trabalhar com entidades de serviço localmente e em produção.
Implementar o código
Para autenticar objetos cliente do SDK do Azure no Azure, seu aplicativo deve usar a classe DefaultAzureCredential. Nesse cenário, DefaultAzureCredential verifica sequencialmente se o desenvolvedor entrou no Azure usando a CLI do Azure ou a CLI do desenvolvedor do Azure. Se o desenvolvedor entrar no Azure usando uma dessas ferramentas, o aplicativo usará as credenciais para autenticação.
DefaultAzureCredential é uma sequência ordenada de mecanismos para autenticação na ID do Microsoft Entra. Cada mecanismo de autenticação é um tipo que implementa a TokenCredential interface e é conhecido como uma credencial.
DefaultAzureCredential verifica sequencialmente se o desenvolvedor entrou no Azure usando a CLI do Azure ou a CLI do desenvolvedor do Azure. Se o desenvolvedor entrar no Azure usando uma dessas ferramentas, o aplicativo usará as credenciais para autenticação. Para obter mais informações sobre como personalizar a cadeia de credenciais, consulte Como personalizar DefaultAzureCredential.
Adicione o
azidentitypacote ao seu aplicativo.go get github.com/Azure/azure-sdk-for-go/sdk/azidentityPara qualquer código Go que crie um objeto cliente do SDK do Azure em seu aplicativo, você deseja:
- Importe o pacote
azidentity. - Use
DefaultAzureCredentialouAzureCLICredentialpara criar uma instância de uma credencial. Por exemplo:
Para usar
DefaultAzureCredential, defina a variável de ambienteAZURE_TOKEN_CREDENTIALScomodevpara indicar que o aplicativo está em execução em um ambiente de desenvolvimento. Para obter mais informações, consulte Como personalizar DefaultAzureCredential.// Environment variable AZURE_TOKEN_CREDENTIALS=dev or a specific developer tool credential value cred, err := azidentity.NewDefaultAzureCredential(nil)Ou use uma credencial específica, como
AzureCLICredential,AzureDeveloperCLICredentialouAzurePowerShellCredentialpara autenticar usando o usuário conectado para uma ferramenta de desenvolvimento específica.cred, err := azidentity.NewAzureCLICredential(nil) // or cred, err := azidentity.NewAzureDeveloperCLICredential(nil) // or cred, err := azidentity.NewAzurePowerShellCredential(nil)
- Passe a instância de credencial para o construtor de cliente do SDK do Azure.
- Importe o pacote
Um exemplo dessas etapas é mostrado no segmento de código a seguir.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
const (
account = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/"
containerName = "sample-container"
blobName = "sample-blob"
sampleFile = "path/to/sample/file"
)
func main() {
// create a credential
cred, err := azidentity.NewDefaultAzureCredential(nil)
// or cred, err := azidentity.NewAzureCLICredential(nil)
// or cred, err := azidentity.NewAzureDeveloperCLICredential(nil)
// or cred, err := azidentity.NewAzurePowerShellCredential(nil)
if err != nil {
// TODO: handle error
}
// create a client for the specified storage account
client, err := azblob.NewClient(account, cred, nil)
if err != nil {
// TODO: handle error
}
// TODO: perform some action with the azblob Client
// _, err = client.DownloadFile(context.TODO(), <containerName>, <blobName>, <target_file>, <DownloadFileOptions>)
}