Wyłączanie uwierzytelniania opartego na kluczach za pomocą usługi Azure Cosmos DB dla tabeli (wersja zapoznawcza)
DOTYCZY: Stół
W tym artykule opisano proces wyłączania autoryzacji opartej na kluczach (lub uwierzytelniania poświadczeń hasła właściciela zasobu) dla konta usługi Azure Cosmos DB dla tabeli.
Wyłączenie autoryzacji opartej na kluczach uniemożliwia korzystanie z konta bez bezpieczniejszej metody uwierzytelniania Firmy Microsoft Entra. Ta procedura to krok, który należy wykonać na nowych kontach w bezpiecznych obciążeniach. Alternatywnie wykonaj tę procedurę na istniejących kontach migrowanych do bezpiecznego wzorca obciążenia.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Jeśli zdecydujesz się używać programu Azure PowerShell lokalnie:
- Zainstaluj najnowszą wersję modułu Az programu PowerShell.
- Połącz się z kontem platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount .
- Jeśli zdecydujesz się używać usługi Azure Cloud Shell:
- Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cloud Shell .
Wyłączanie uwierzytelniania opartego na kluczach
Najpierw wyłącz uwierzytelnianie oparte na kluczach na istniejącym koncie, aby aplikacje musiały korzystać z uwierzytelniania firmy Microsoft Entra. Użyj az resource update
polecenia , aby zmodyfikować properties.disableLocalAuth
istniejące konto.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
Najpierw utwórz nowe konto z wyłączonym uwierzytelnianiem opartym na kluczach, aby aplikacje musiały korzystać z uwierzytelniania firmy Microsoft Entra.
Utwórz nowy plik Bicep, aby wdrożyć nowe konto z wyłączonym uwierzytelnianiem opartym na kluczach. Nadaj plikowi nazwę 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 } }
Użyj
az deployment group create
polecenia , aby wdrożyć plik Bicep przy użyciu nowego konta.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Najpierw wyłącz uwierzytelnianie oparte na kluczach na istniejącym koncie, aby aplikacje musiały korzystać z uwierzytelniania firmy Microsoft Entra. Użyj Get-AzResource
poleceń i Set-AzResource
, aby odpowiednio odczytać i zaktualizować istniejące konto.
$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
Sprawdzanie, czy uwierzytelnianie jest wyłączone
Spróbuj użyć zestawu Azure SDK, aby nawiązać połączenie z usługą Azure Cosmos DB dla tabeli przy użyciu poświadczeń hasła właściciela zasobu (ROPC). Ta próba powinna zakończyć się niepowodzeniem. W razie potrzeby podano tutaj przykłady kodu dla typowych języków programowania.
using Azure.Data.Tables;
using Azure.Core;
string connectionString = "AccountEndpoint=<table-endpoint>;AccountKey=<key>;";
TableServiceClient client = new(connectionString);
Ważne
W tym przykładzie kodu są używane biblioteki Azure.Data.Tables
i Azure.Identity
z narzędzia NuGet.