Отключение проверки подлинности на основе ключей с помощью Azure Cosmos DB для NoSQL
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Схема последовательности руководства по развертыванию, включая следующие расположения: обзор, основные понятия, подготовка, управление доступом на основе ролей, сеть и справочник. В настоящее время выделено расположение "Подготовка".
В этой статье описывается процесс отключения авторизации на основе ключей (или проверки подлинности учетных данных владельца ресурса) для учетной записи Azure Cosmos DB для NoSQL.
Отключение авторизации на основе ключей предотвращает использование учетной записи без более безопасного метода проверки подлинности Microsoft Entra. Эта процедура — это шаг, который должен выполняться для новых учетных записей в безопасных рабочих нагрузках. Кроме того, выполните эту процедуру в существующих учетных записях, перенесенных в шаблон безопасной рабочей нагрузки.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Если вы решили использовать Azure PowerShell локально:
- Установите последнюю версию модуля Az PowerShell.
- Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.
- Если вы решили использовать Azure Cloud Shell:
- Дополнительные сведения см. в статье Общие сведения об Azure Cloud Shell.
Отключение проверки подлинности на основе ключей
Во-первых, отключите проверку подлинности на основе ключей для существующей учетной записи, чтобы приложения использовали проверку подлинности Microsoft Entra. Используется az resource update
для изменения properties.disableLocalAuth
существующей учетной записи.
az resource update \
--resource-group "<name-of-existing-resource-group>" \
--name "<name-of-existing-account>" \
--resource-type "Microsoft.DocumentDB/databaseAccounts" \
--set properties.disableLocalAuth=true
Сначала создайте новую учетную запись с отключенной проверкой подлинности на основе ключей, чтобы приложения использовали проверку подлинности Microsoft Entra.
Создайте файл Bicep для развертывания новой учетной записи с отключенной проверкой подлинности на основе ключей. Назовите файл 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 } }
Используется
az deployment group create
для развертывания Bicep-файла с новой учетной записью.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file deploy-new-account.bicep
Во-первых, отключите проверку подлинности на основе ключей для существующей учетной записи, чтобы приложения использовали проверку подлинности Microsoft Entra. Используйте Get-AzResource
и Set-AzResource
соответственно считывает и обновляет существующую учетную запись.
$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
Проверка отключения проверки подлинности
Попытайтесь подключиться к Azure Cosmos DB для NoSQL с помощью учетных данных пароля владельца ресурса (ROPC). Эта попытка должна завершиться ошибкой. При необходимости примеры кода для распространенных языков программирования предоставляются здесь.
using Microsoft.Azure.Cosmos;
string connectionString = "AccountEndpoint=<nosql-endpoint>;AccountKey=<key>;";
CosmosClient client = new(connectionString);
Внимание
В этом примере кода используется Microsoft.Azure.Cosmos
библиотека из NuGet.