Condividi tramite


Disabilitare l'autenticazione basata su chiave con Azure Cosmos DB per NoSQL

SI APPLICA A: NoSQL

Diagramma della posizione corrente ('Prepare') nella sequenza della guida alla distribuzione.

Diagramma della sequenza della guida alla distribuzione, inclusi questi percorsi, in ordine: Panoramica, Concetti, Preparazione, Controllo degli accessi in base al ruolo, Rete e Riferimento. Il percorso "Prepara" è attualmente evidenziato.

Questo articolo illustra il processo di disabilitazione dell'autorizzazione basata su chiave (o autenticazione delle credenziali della password del proprietario della risorsa) per un account Azure Cosmos DB per NoSQL.

La disabilitazione dell'autorizzazione basata su chiave impedisce l'uso dell'account senza il metodo di autenticazione Microsoft Entra più sicuro. Questa procedura è un passaggio che deve essere eseguito sui nuovi account nei carichi di lavoro sicuri. In alternativa, eseguire questa procedura sugli account esistenti di cui viene eseguita la migrazione a un modello di carico di lavoro sicuro.

Prerequisiti

Disabilitare l'autenticazione basata su chiave

Prima di tutto, disabilitare l'autenticazione basata su chiave per l'account esistente in modo che le applicazioni siano necessarie per usare l'autenticazione Di Microsoft Entra. Usare az resource update per modificare properties.disableLocalAuth l'account esistente.

az resource update \
    --resource-group "<name-of-existing-resource-group>" \
    --name "<name-of-existing-account>" \
    --resource-type "Microsoft.DocumentDB/databaseAccounts" \
    --set properties.disableLocalAuth=true

Creare prima di tutto un nuovo account con autenticazione basata su chiave disabilitata in modo che le applicazioni siano necessarie per usare l'autenticazione Microsoft Entra.

  1. Creare un nuovo file Bicep per distribuire il nuovo account con l'autenticazione basata su chiave disabilitata. Assegnare al file il nome 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. Usare az deployment group create per distribuire il file Bicep con il nuovo account.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file deploy-new-account.bicep
    

Prima di tutto, disabilitare l'autenticazione basata su chiave per l'account esistente in modo che le applicazioni siano necessarie per usare l'autenticazione Di Microsoft Entra. Usare Get-AzResource e Set-AzResource per leggere e aggiornare rispettivamente l'account esistente.

$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

Verificare che l'autenticazione sia disabilitata

Provare a usare Azure SDK per connettersi ad Azure Cosmos DB per NoSQL usando una credenziale della password del proprietario della risorsa (ROPC). Questo tentativo dovrebbe non riuscire. Se necessario, qui sono disponibili esempi di codice per i linguaggi di programmazione comuni.

using Microsoft.Azure.Cosmos;

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

CosmosClient client = new(connectionString);

Importante

Questo esempio di codice usa la Microsoft.Azure.Cosmos libreria di NuGet.

Passaggio successivo