Deaktivieren der schlüsselbasierten Authentifizierung mit Azure Cosmos DB for NoSQL
GILT FÜR: NoSQL
Diagramm der Sequenz des Bereitstellungshandbuchs einschließlich dieser Abschnitte in der Reihenfolge: Übersicht, Konzepte, Vorbereiten, rollenbasierte Zugriffssteuerung, Netzwerk und Verweis. Der Abschnitt „Vorbereiten“ ist zurzeit hervorgehoben.
In diesem Artikel wird der Prozess zum Deaktivieren der schlüsselbasierten Autorisierung (oder Autorisierung mit Ressourcenbesitzer-Kennwortanmeldeinformationen) für ein Azure Cosmos DB for NoSQL-Konto behandelt.
Durch die Deaktivierung der schlüsselbasierten Autorisierung wird verhindert, dass Ihr Konto ohne die sicherere Microsoft Entra-Authentifizierungsmethode verwendet wird. Dieses Verfahren ist ein Schritt, der für neue Konten in sicheren Workloads ausgeführt werden sollte. Führen Sie alternativ dieses Verfahren für vorhandene Konten aus, die zu einem sicheren Workloadmuster migriert werden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Bei lokaler Verwendung von Azure PowerShell:
- Installieren der aktuellen Version des Az PowerShell-Moduls.
- Stellen Sie eine Verbindung mit Ihrem Azure-Konto mit dem Cmdlet Connect-AzAccount her.
- Bei Verwendung von Azure Cloud Shell:
- Weitere Informationen finden Sie in der Übersicht über Azure Cloud Shell.
Deaktivieren der schlüsselbasierten Authentifizierung
Deaktivieren Sie zunächst die schlüsselbasierte Authentifizierung für Ihr vorhandenes Konto, damit Anwendungen die Microsoft Entra-Authentifizierung verwenden müssen. Verwenden Sie az resource update
, um properties.disableLocalAuth
für das vorhandene Konto zu ändern.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
Erstellen Sie zunächst ein neues Konto mit deaktivierter schlüsselbasierter Authentifizierung, damit Anwendungen die Microsoft Entra-Authentifizierung verwenden müssen.
Erstellen Sie eine neue Bicep-Datei, um Ihr neues Konto mit deaktivierter schlüsselbasierter Authentifizierung bereitzustellen. Benennen Sie die Datei 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 } }
Verwenden Sie
az deployment group create
, um die Bicep-Datei mit dem neuen Konto bereitzustellen.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Deaktivieren Sie zunächst die schlüsselbasierte Authentifizierung für Ihr vorhandenes Konto, damit Anwendungen die Microsoft Entra-Authentifizierung verwenden müssen. Verwenden Sie Get-AzResource
und Set-AzResource
, um das vorhandene Konto zu lesen und zu aktualisieren.
$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
Überprüfen, ob die Authentifizierung deaktiviert ist
Versuchen Sie, das Azure SDK zum Herstellen einer Verbindung mit Azure Cosmos DB for NoSQL mithilfe von ROPC (Resource-Owner Password Credential, Ressourcenbesitzer-Kennwortanmeldeinformationen) zu verwenden. Dieser Versuch sollte im Normalfall einen Fehler erzeugen. Falls erforderlich, werden hier Codebeispiele für allgemeine Programmiersprachen bereitgestellt.
using Microsoft.Azure.Cosmos;
string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";
CosmosClient client = new(connectionString);
Wichtig
In diesem Codebeispiel wird die Microsoft.Azure.Cosmos
-Bibliothek von NuGet verwendet.