Udostępnij za pośrednictwem


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

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.

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

Następny krok