Partager via


Désactiver l’authentification basée sur des clés avec Azure Cosmos DB for Table (préversion)

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

La désactivation de l’autorisation basée sur des clés empêche votre compte d’être utilisé 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 Table en utilisant des informations d’identification par mot de passe du propriétaire de la ressource (ROPC). Cette tentative doit échouer. Si nécessaire, des exemples de code pour les langages de programmation courants sont fournis ici.

using Azure.Data.Tables;
using Azure.Core;

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

TableServiceClient client = new(connectionString);

Important

Cet exemple de code utilise les bibliothèques Azure.Data.Tables et Azure.Identity de NuGet.

Étape suivante