Dela via


Inaktivera nyckelbaserad autentisering med Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL

Diagram över den aktuella platsen (

Diagram över sekvensen i distributionsguiden, inklusive dessa platser, i ordning: Översikt, Begrepp, Förbereda, Rollbaserad åtkomstkontroll, Nätverk och Referens. Platsen Förbered är för närvarande markerad.

Den här artikeln beskriver processen med att inaktivera nyckelbaserad auktorisering (eller autentisering av lösenordsautentisering för resursägare) för ett Azure Cosmos DB för NoSQL-konto.

Om du inaktiverar nyckelbaserad auktorisering förhindras ditt konto från att användas utan den säkrare Microsoft Entra-autentiseringsmetoden. Den här proceduren är ett steg som bör utföras på nya konton i säkra arbetsbelastningar. Du kan också utföra den här proceduren på befintliga konton som migreras till ett säkert arbetsbelastningsmönster.

Förutsättningar

Inaktivera nyckelbaserad autentisering

Inaktivera först nyckelbaserad autentisering till ditt befintliga konto så att program måste använda Microsoft Entra-autentisering. Använd az resource update för att ändra properties.disableLocalAuth det befintliga kontot.

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

Skapa först ett nytt konto med nyckelbaserad autentisering inaktiverad så att program måste använda Microsoft Entra-autentisering.

  1. Skapa en ny Bicep-fil för att distribuera ditt nya konto med nyckelbaserad autentisering inaktiverad. Ge filen namnet 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. Använd az deployment group create för att distribuera Bicep-filen med det nya kontot.

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

Inaktivera först nyckelbaserad autentisering till ditt befintliga konto så att program måste använda Microsoft Entra-autentisering. Använd Get-AzResource respektive Set-AzResource för att läsa och uppdatera det befintliga kontot.

$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

Verifiera att autentiseringen är inaktiverad

Försök att använda Azure SDK för att ansluta till Azure Cosmos DB för NoSQL med hjälp av en ropc (resource-owner password credential). Det här försöket bör misslyckas. Om det behövs finns kodexempel för vanliga programmeringsspråk här.

using Microsoft.Azure.Cosmos;

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

CosmosClient client = new(connectionString);

Viktigt!

Det här kodexemplet använder Microsoft.Azure.Cosmos biblioteket från NuGet.

Gå vidare