Поделиться через


Azure CLI на основе MSAL

Начиная с версии 2.30.0 Azure CLI использует библиотеку проверки подлинности Майкрософт (MSAL) в качестве базовой библиотеки проверки подлинности. MSAL использует аутентификационный поток Azure Active Directory версии 2.0 для обеспечения расширенной функциональности и повышения безопасности кэша токенов.

Warning

Критические изменения представлены в Azure CLI 2.30.0. Внимательно прочтите этот документ перед установкой.

accessTokens.json Исключения

Предыдущие версии Azure CLI сохраняли токены библиотеки проверки подлинности Azure AD (ADAL) и записи субъекта-службы в ~/.azure/accessToken.json. Последние версии Azure CLI используют MSAL и больше не генерируют accessTokens.json. Существующие рабочие процессы в зависимости от accessTokens.json больше не работают.

Кэш токенов MSAL и записи учетной записи службы сохраняются в виде зашифрованных файлов в Windows и текстовых файлов в Linux и macOS.

Important

При использовании Azure CLI в конвейере, например Azure DevOps, убедитесь, что все задачи и этапы используют версии Azure CLI версии 2.30.0 или более поздней версии для Azure CLI на основе MSAL. Azure CLI 2.30.0 не совместим с предыдущими версиями и выдает ошибку при работе с версиями выше 2.30.0.

Альтернативные варианты для рассмотрения

Альтернативные варианты, которые следует учитывать для стабильности:

Призвание az account get-access-token

Можно вручную вызвать az account get-access-token в терминале или использовать подпроцесс для вызова его из другого языка программирования. По умолчанию возвращенный маркер доступа предназначен для Azure Resource Manager (ARM) и подписки или клиента по умолчанию, показанной в az account show.

# get the active subscription
az account show --output table

# get access token for the active subscription
az account get-access-token

# get access token for a specific subscription
az account get-access-token --subscription "<subscription ID or name>"

Дополнительные сведения о маркерах доступа см. в статье "Вход с помощью Azure CLI".

Использование AzureCliCredential

AzureCliCredential — это тип учетных данных во всех существующих языковых пакетах SDK. Она использует подпроцесс для вызова az account get-access-token, чтобы получить токен доступа для текущей учетной записи, вошедшей в систему.

См. также