Verificatie op basis van sleutels uitschakelen met Azure Cosmos DB for NoSQL
VAN TOEPASSING OP: NoSQL
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
- Een Azure-account met een actief abonnement. Gratis een account maken
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- Als u ervoor kiest om Azure PowerShell lokaal te gebruiken:
- Installeer de nieuwste versie van de Az PowerShell-module.
- Maak verbinding met uw Azure-account met de cmdlet Connect-AzAccount.
- Als u ervoor kiest om Azure Cloud Shell te gebruiken:
- Raadpleeg Overzicht van Azure Cloud Shell voor meer informatie.
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.
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 } }
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.