Freigeben über


Deaktivieren der schlüsselbasierten Authentifizierung mit Azure Cosmos DB for NoSQL

GILT FÜR: NoSQL

Diagramm des aktuellen Abschnitts („Vorbereiten“) in der Sequenz des Bereitstellungshandbuchs.

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

  • 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.

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.

  1. 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
      }
    }
    
  2. 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.

Nächster Schritt