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


Azure CLI на основе MSAL

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

Предупреждение

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.

Это важно

При использовании 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, чтобы получить токен доступа для текущей учетной записи, которая вошла в систему.

См. также