Verificatie op basis van sleutels uitschakelen met Azure Cosmos DB for Table (preview)
VAN TOEPASSING OP: Tafel
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 table-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 Table met behulp van een wachtwoordreferentie voor de resource-eigenaar (ROPC). Deze poging mislukt. Indien nodig worden hier codevoorbeelden voor algemene programmeertalen gegeven.
using Azure.Data.Tables;
using Azure.Core;
string connectionString = "AccountEndpoint=<table-endpoint>;AccountKey=<key>;";
TableServiceClient client = new(connectionString);
Belangrijk
In dit codevoorbeeld worden de Azure.Data.Tables
en Azure.Identity
bibliotheken van NuGet gebruikt.