Partilhar via


Desabilitar a autenticação baseada em chave com o Azure Cosmos DB para NoSQL

APLICA-SE A: NoSQL

Diagrama do local atual ('Preparar') na sequência do guia de implantação.

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

  • 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.

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.

  1. 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
      }
    }
    
  2. 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.

Próximo passo