Partager via


Désactiver l’authentification basée sur une clé avec Azure Cosmos DB for NoSQL

S’APPLIQUE À : NoSQL

Diagramme de l’emplacement actuel (« Préparation ») dans la séquence du guide de déploiement.

Diagramme de la séquence du guide de déploiement comprenant ces emplacements, dans l’ordre : Vue d’ensemble, Concepts, Préparation, Contrôle d’accès en fonction du rôle, Réseau et Référence. L’emplacement « Préparation » est mis en évidence.

Cet article couvre le processus de désactivation de l’autorisation basée sur une clé (ou de l’authentification des informations d’identification par mot de passe de propriétaire de ressource) pour un compte Azure Cosmos DB for NoSQL.

La désactivation de l’autorisation basée sur une clé empêche l’utilisation de votre compte sans la méthode d’authentification Microsoft Entra plus sécurisée. Cette procédure est une étape qui doit être effectuée sur les nouveaux comptes dans les charges de travail sécurisées. Vous pouvez également appliquer cette procédure aux comptes existants en cours de migration vers un modèle de charge de travail sécurisé.

Prérequis

Désactiver l’authentification basée sur une clé

Tout d’abord, désactivez l’authentification basée sur une clé pour votre compte existant afin que les applications soient obligées d’utiliser l’authentification Microsoft Entra. Utilisez az resource update afin de modifier properties.disableLocalAuth pour le compte existant.

az resource update \
    --resource-group "<name-of-existing-resource-group>" \
    --name "<name-of-existing-account>" \
    --resource-type "Microsoft.DocumentDB/databaseAccounts" \
    --set properties.disableLocalAuth=true

Tout d’abord, créez un compte pour lequel l’authentification basée sur une clé est désactivée pour obliger les applications à utiliser l’authentification Microsoft Entra.

  1. Créez un fichier Bicep afin de déployer votre nouveau compte pour lequel l’authentification basée sur une clé est désactivée. Nommez le fichier 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. Utilisez az deployment group create pour déployer le fichier Bicep avec le nouveau compte.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file deploy-new-account.bicep
    

Tout d’abord, désactivez l’authentification basée sur une clé pour votre compte existant afin que les applications soient obligées d’utiliser l’authentification Microsoft Entra. Utilisez Get-AzResource et Set-AzResource pour lire et mettre à jour respectivement le compte existant.

$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

Vérifier que l’authentification est désactivée

Tentez d’utiliser Azure SDK pour vous connecter à Azure Cosmos DB for NoSQL à l’aide d’informations d’identification par mot de passe de propriétaire de ressource (ROPC). Cette tentative doit échouer. Si nécessaire, des exemples de code pour les langages de programmation courants sont fournis ici.

using Microsoft.Azure.Cosmos;

string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";

CosmosClient client = new(connectionString);

Important

Cet exemple de code utilise la bibliothèque Microsoft.Azure.Cosmos de NuGet.

Étape suivante