Desabilitar a autenticação baseada em chave com o Azure Cosmos DB for NoSQL
APLICA-SE A: NoSQL
Diagrama da sequência do guia de implantação, incluindo estes locais, em ordem: Visão geral, Conceitos, Preparação, Controle de acesso baseado em função, Rede e Referência. O local "Preparar" está realçado no momento.
Este artigo aborda o processo de desabilitar a autorização baseada em chave (ou autenticação de credencial de senha do proprietário do recurso) para uma conta do Azure Cosmos DB for NoSQL.
Desabilitar a autorização baseada em chave impede que sua conta seja usada sem o método de autenticação mais seguro do Microsoft Entra. Esse procedimento é uma etapa que deve ser executada em novas contas em cargas de trabalho seguras. Como alternativa, execute esse procedimento nas contas existentes que estão sendo migradas para um padrão de carga de trabalho seguro.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Se você optar por usar o Azure PowerShell localmente:
- Instale a versão mais recente do módulo do Az PowerShell.
- Conecte-se à sua conta do Azure usando o cmdlet Connect-AzAccount.
- Se você optar por usar o Azure Cloud Shell:
- Confira Visão geral do Azure Cloud Shell para obter mais informações.
Desabilitar a autenticação baseada em chave
Primeiro, desabilite a autenticação baseada em chave na sua conta existente para que os aplicativos sejam obrigados a usar a autenticação do Microsoft Entra. Use az resource update
para modificar properties.disableLocalAuth
da conta existente.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
Primeiro, crie uma nova conta com a autenticação baseada em chave desabilitada para que os aplicativos sejam obrigados a usar a autenticação do Microsoft Entra.
Crie um novo arquivo Bicep para implantar sua nova conta com a autenticação baseada em chave desabilitada. Nomeie o arquivo deploy-new-account.bicep.
metadata description = 'Deploys a new Azure Cosmos DB account with key-based auth disabled.' @description('Name of the Azure Cosmos DB account.') param name string = 'csms-${uniqueString(resourceGroup().id)}' @description('Primary location for the Azure Cosmos DB account.') param location string = resourceGroup().location resource account 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = { name: name location: location kind: 'GlobalDocumentDB' properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] disableLocalAuth: true } }
Use
az deployment group create
para implantar o arquivo Bicep com a nova conta.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Primeiro, desabilite a autenticação baseada em chave na sua conta existente para que os aplicativos sejam obrigados a usar a autenticação do Microsoft Entra. Use Get-AzResource
e Set-AzResource
, respectivamente, leia e atualize a conta existente.
$parameters = @{
ResourceGroupName = "<name-of-existing-resource-group>"
ResourceName = "<name-of-existing-account>"
ResourceType = "Microsoft.DocumentDB/databaseAccounts"
}
$resource = Get-AzResource @parameters
$resource.Properties.DisableLocalAuth = $true
$resource | Set-AzResource -Force
Validar se a autenticação está desabilitada
Tente usar o SDK do Azure para se conectar ao Azure Cosmos DB for NoSQL usando uma credencial de senha do proprietário do recurso (ROPC). Esta tentativa deve falhar. Se necessário, exemplos de código para linguagens de programação comuns são fornecidos aqui.
using Microsoft.Azure.Cosmos;
string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";
CosmosClient client = new(connectionString);
Importante
Este exemplo de código usa a biblioteca Microsoft.Azure.Cosmos
do NuGet.