Desabilitar a autenticação baseada em chave com o Azure Cosmos DB para NoSQL
APLICA-SE A: NoSQL
Diagrama da sequência do guia de implantação, incluindo esses locais, na ordem: Visão geral, Conceitos, Preparar, Controle de acesso baseado em função, Rede e Referência. O local 'Preparar' está atualmente em destaque.
Este artigo aborda o processo de desativação da autorização baseada em chave (ou credencial de senha do proprietário do recurso auth) para uma conta do Azure Cosmos DB para NoSQL.
A desativação da autorização baseada em chave impede que sua conta seja usada sem o método de autenticação mais seguro do Microsoft Entra. Este procedimento é uma etapa que deve ser executada em novas contas em cargas de trabalho seguras. Como alternativa, execute este procedimento em contas existentes que estão sendo migradas para um padrão de carga de trabalho seguro.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Se você optar por usar o Azure PowerShell localmente:
- Instale a versão mais recente do módulo Az PowerShell.
- Conecte-se à sua conta do Azure usando o cmdlet Connect-AzAccount .
- Se você optar por usar o Azure Cloud Shell:
- Consulte Visão geral do Azure Cloud Shell para obter mais informações.
Desativar a autenticação baseada em chave
Primeiro, desative a autenticação baseada em chave para sua conta existente para que os aplicativos sejam necessários para usar a autenticação do Microsoft Entra. Use az resource update
para modificar properties.disableLocalAuth
a 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, desative a autenticação baseada em chave para sua conta existente para que os aplicativos sejam necessários para usar a autenticação do Microsoft Entra. Use Get-AzResource
e para ler e Set-AzResource
atualizar a conta existente, respectivamente.
$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á desativada
Tente usar o SDK do Azure para se conectar ao Azure Cosmos DB para NoSQL usando uma credencial de senha de proprietário de 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 Microsoft.Azure.Cosmos
biblioteca do NuGet.