Deshabilitación de la autenticación basada en certificados con Azure Cosmos DB for NoSQL
SE APLICA A: NoSQL
Diagrama de la secuencia de la guía de implementación, incluidas estas ubicaciones, en orden: Información general, Conceptos, Preparación, Control de acceso basado en rol, Red y Referencia. La ubicación "Preparación" está resaltada actualmente.
En este artículo se describe el proceso de deshabilitación de la autorización basada en claves (o autenticación de credenciales de contraseña de propietario de recursos) para una cuenta de Azure Cosmos DB for NoSQL.
Deshabilitar la autorización basada en claves impide que la cuenta se use sin el método de autenticación de Microsoft Entra más seguro. Este procedimiento es un paso que se debe realizar en nuevas cuentas en cargas de trabajo seguras. Como alternativa, realice este procedimiento en las cuentas existentes que se migran a un patrón de carga de trabajo seguro.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- Si opta por usar Azure PowerShell en un entorno local:
- Instale la versión más reciente del módulo Az de PowerShell.
- Conéctese a su cuenta de Azure mediante el cmdlet Connect-AzAccount.
- Si decide usar Azure Cloud Shell:
- Para más información, consulte Introducción a Azure Cloud Shell.
Deshabilitación de la autenticación basada en claves
En primer lugar, deshabilite la autenticación basada en claves en la cuenta existente para que las aplicaciones deban usar la autenticación de Microsoft Entra. Use az resource update
para modificar properties.disableLocalAuth
en la cuenta existente.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
En primer lugar, cree una cuenta con la autenticación basada en claves deshabilitada para que las aplicaciones deban usar la autenticación de Microsoft Entra.
Cree un archivo de Bicep para implementar la nueva cuenta con la autenticación basada en claves deshabilitada. Asigne el nombre deploy-new-account.bicep al archivo.
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 } }
Use
az deployment group create
para implementar el archivo de Bicep con la nueva cuenta.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
En primer lugar, deshabilite la autenticación basada en claves en la cuenta existente para que las aplicaciones deban usar la autenticación de Microsoft Entra. Use Get-AzResource
y Set-AzResource
para leer y actualizar la cuenta existente respectivamente.
$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
Validar que la autenticación está deshabilitada
Intente usar el SDK de Azure para conectarse a Azure Cosmos DB for NoSQL mediante una credencial de contraseña de propietario de recursos (ROPC). Este intento debe producir un error. Si es necesario, aquí se proporcionan ejemplos de código para lenguajes de programación comunes.
using Microsoft.Azure.Cosmos;
string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";
CosmosClient client = new(connectionString);
Importante
En este ejemplo de código se usa la biblioteca Microsoft.Azure.Cosmos
de NuGet.