Delen via


Verificatie op basis van sleutels uitschakelen met Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Diagram van de huidige locatie ('Voorbereiden') in de volgorde van de implementatiehandleiding.

Diagram van de volgorde van de implementatiehandleiding, inclusief deze locaties, in volgorde: Overzicht, Concepten, Voorbereiden, op rollen gebaseerd toegangsbeheer, Netwerk en Verwijzing. De locatie Voorbereiden is momenteel gemarkeerd.

Dit artikel bevat informatie over het uitschakelen van verificatie op basis van sleutels (of verificatie van wachtwoordreferenties voor resource-eigenaar) voor een Azure Cosmos DB voor NoSQL-account.

Als u verificatie op basis van sleutels uitschakelt, voorkomt u dat uw account wordt gebruikt zonder de veiligere Verificatiemethode van Microsoft Entra. Deze procedure is een stap die moet worden uitgevoerd op nieuwe accounts in beveiligde workloads. U kunt deze procedure ook uitvoeren voor bestaande accounts die worden gemigreerd naar een beveiligd workloadpatroon.

Vereisten

Verificatie op basis van sleutels uitschakelen

Schakel eerst verificatie op basis van sleutels uit voor uw bestaande account, zodat toepassingen Microsoft Entra-verificatie moeten gebruiken. Gebruik az resource update dit om het bestaande account te wijzigen properties.disableLocalAuth .

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

Maak eerst een nieuw account met verificatie op basis van sleutels uitgeschakeld, zodat toepassingen Microsoft Entra-verificatie moeten gebruiken.

  1. Maak een nieuw Bicep-bestand om uw nieuwe account te implementeren met verificatie op basis van sleutels uitgeschakeld. Geef het bestand de naam 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. Gebruik az deployment group create dit om het Bicep-bestand met het nieuwe account te implementeren.

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

Schakel eerst verificatie op basis van sleutels uit voor uw bestaande account, zodat toepassingen Microsoft Entra-verificatie moeten gebruiken. Gebruik Get-AzResource respectievelijk het bestaande account en Set-AzResource werk het bij.

$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

Controleren of verificatie is uitgeschakeld

Probeer de Azure SDK te gebruiken om verbinding te maken met Azure Cosmos DB for NoSQL met behulp van een wachtwoordreferentie voor de resource-eigenaar (ROPC). Deze poging mislukt. Indien nodig worden hier codevoorbeelden voor algemene programmeertalen gegeven.

using Microsoft.Azure.Cosmos;

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

CosmosClient client = new(connectionString);

Belangrijk

In dit codevoorbeeld wordt de Microsoft.Azure.Cosmos bibliotheek van NuGet gebruikt.

Volgende stap