Disabilitare l'autenticazione basata su chiave con Azure Cosmos DB per NoSQL
SI APPLICA A: NoSQL
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Se si sceglie di usare Azure PowerShell in locale:
- Installare la versione più recente del modulo Az di PowerShell.
- Connettersi all'account Azure con il cmdlet Connect-AzAccount.
- Se si sceglie di usare Azure Cloud Shell:
- Vedere Panoramica di Azure Cloud Shell per altre informazioni.
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.
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 } }
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.