Zákaz ověřování založeného na klíčích pomocí služby Azure Cosmos DB pro tabulku (Preview)
Tento článek se zabývá procesem zakázání autorizace založené na klíči (nebo ověřování přihlašovacích údajů vlastníka prostředku) pro účet služby Azure Cosmos DB for Table.
Zakázáním autorizace založené na klíči zabráníte tomu, aby se váš účet používal bez bezpečnější metody ověřování Microsoft Entra. Tento postup je krok, který by se měl provést u nových účtů v zabezpečených úlohách. Případně tento postup proveďte u stávajících účtů migrovaných do zabezpečeného vzoru úloh.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Pokud se rozhodnete používat Azure PowerShell místně:
- Nainstalujte nejnovější verzi modulu Az PowerShell.
- Připojte se ke svému účtu Azure pomocí rutiny Connect-AzAccount .
- Pokud se rozhodnete použít Azure Cloud Shell:
- Další informace najdete v přehledu služby Azure Cloud Shell .
Zakázání ověřování na základě klíčů
Nejprve zakažte ověřování na základě klíčů u stávajícího účtu, aby aplikace musely používat ověřování Microsoft Entra. Slouží az resource update
k úpravě properties.disableLocalAuth
existujícího účtu.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
Nejprve vytvořte nový účet se zakázaným ověřováním založeným na klíčích, aby aplikace musely používat ověřování Microsoft Entra.
Vytvořte nový soubor Bicep pro nasazení nového účtu se zakázaným ověřováním založeným na klíči. Pojmenujte soubor 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 } }
Slouží
az deployment group create
k nasazení souboru Bicep s novým účtem.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Nejprve zakažte ověřování na základě klíčů u stávajícího účtu, aby aplikace musely používat ověřování Microsoft Entra. Slouží Get-AzResource
ke Set-AzResource
čtení a aktualizaci existujícího účtu.
$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
Ověření, že je ověřování zakázané
Pokus o použití sady Azure SDK k připojení ke službě Azure Cosmos DB for Table pomocí přihlašovacích údajů vlastníka prostředku (ROPC). Tento pokus by měl selhat. V případě potřeby jsou zde uvedeny ukázky kódu pro běžné programovací jazyky.
using Azure.Data.Tables;
using Azure.Core;
string connectionString = "AccountEndpoint=<table-endpoint>;AccountKey=<key>;";
TableServiceClient client = new(connectionString);
Důležité
Tento vzorový kód používá knihovny Azure.Data.Tables
z Azure.Identity
NuGetu.