Compartilhar via


Desabilitar a autenticação baseada em chave com o Azure Cosmos DB for Table (versão prévia)

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

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

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.

  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, 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 Table 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 Azure.Data.Tables;
using Azure.Core;

string connectionString = "AccountEndpoint=<table-endpoint>;AccountKey=<key>;";

TableServiceClient client = new(connectionString);

Importante

Esse exemplo de código usa as bibliotecas Azure.Data.Tables e Azure.Identity do NuGet.

Próxima etapa