Настройка учетных данных развертывания службы приложений Azure

Чтобы обеспечить безопасное развертывание приложений с локального компьютера, Служба приложений Azure поддерживает два типа учетных данных для развертывания локального из репозитория Git и развертывания FTP/S. Эти учетные данные не совпадают с учетными данными подписки Azure.

  • Учетные данные на уровне пользователя. Это единый набор учетных данных для всей учетной записи Azure. С его помощью можно развернуть службу приложений для любого приложения и в любой подписке, на доступ к которой у этой учетной записи Azure есть права. Именно это значение по умолчанию отображается на портале графического пользовательского интерфейса (например, в разделах Обзор и Свойства на странице ресурсов приложения). Если пользователь получает доступ к приложению с помощью управления доступом на основе ролей (RBAC) или назначения прав соадминистратора, пользователь может использовать свои собственные учетные данные на уровне пользователя, пока доступ не будет отозван. Не используйте эти учетные данные совместно с другими пользователями Azure.

  • Учетные данные на уровне приложения. Это единый набор учетных данных для каждого приложения. С его помощью можно развернуть только одно приложение. Учетные данные для каждого приложения автоматически формируются при создании приложения. Их нельзя настроить вручную, но можно сбросить в любое время. Чтобы получить доступ к учетным данным на уровне приложения с помощью RBAC, у пользователя в приложении должна быть роль участника или роль более высокого уровня (включая встроенную роль "Участник веб-сайтов"). У читателей нет прав на публикацию и доступа к этим учетным данным.

Примечание

Страница Центр разработки (классический) на портале Azure, которая использовалась ранее для развертывания, будет объявлена нерекомендуемой в марте 2021 года. Это изменение не повлияет на существующие параметры развертывания в приложении, и вы можете продолжить управлять развертыванием приложения на странице Центра развертывания.

Настройка учетных данных на уровне пользователя

Выполните команду az webapp deployment user set. Вместо <username> и <password> укажите имя пользователя и пароль развертывания.

  • Имя пользователя должно быть уникальным в Azure. Кроме того, чтобы отправка в локальный репозиторий Git работала, имя пользователя не должно содержать символ @.
  • Пароль должен содержать не менее восьми символов и включать два из трех следующих элементов: буквы, цифры и символы.
az webapp deployment user set --user-name <username> --password <password>

В выходных данных JSON пароль отображается как null.

Использование учетных данных на уровне пользователя с FTP или FTPS

Проверка подлинности на конечной точке FTP или FTPS с использованием учетных данных уровня пользователя требует имени пользователя в следующем формате: <app-name>\<user-name>

Так как учетные данные на уровне пользователя привязаны к пользователю, а не к конкретному ресурсу, имя пользователя должно быть указано в этом формате для направления действия входа на подходящую конечную точку приложения.

Получение учетных данных уровня приложения

Чтобы получить учетные данные уровня приложения, выполните команду az webapp deployment list-publishing-profiles. Пример:

az webapp deployment list-publishing-profiles --resource-group <group-name> --name <app-name>

Для локального развертывания Git также можно использовать команду az webapp deployment list-publishing-credentials, позволяющую получить удаленный URI Git для приложения с уже внедренными в него учетными данными уровня приложения. Пример:

az webapp deployment list-publishing-credentials --resource-group <group-name> --name <app-name> --query scmUri

Сброс учетных данных уровня приложения

Чтобы сбросить учетные данные уровня приложения, воспользуйтесь командой az resource invoke-action:

az resource invoke-action --action newpassword --resource-group <group-name> --name <app-name> --resource-type Microsoft.Web/sites

Отключение обычной проверки подлинности

Некоторые организации обязаны соблюдать требования безопасности и для этого отключают доступ через FTP или WebDeploy. В результате их сотрудники могут обращаться к своим службам приложений только через API-интерфейсы, управляемые Azure Active Directory (Azure AD).

FTP

Чтобы отключить FTP-доступ к сайту, выполните указанную ниже команду интерфейса командной строки (CLI). Замените заполнители именем своей группы ресурсов и именем сайта.

az resource update --resource-group <resource-group> --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

Чтобы убедиться, что FTP-доступ заблокирован, можно попытаться выполнить проверку подлинности с помощью FTP-клиента, например FileZilla. Чтобы получить учетные данные публикации, перейдите в колонку "Обзор" сайта и щелкните "Скачать профиль публикации". Для проверки подлинности используйте имя узла FTP, имя пользователя и пароль. Вы должны получить ответ с ошибкой 401, указывающий на то, что не прошли авторизацию.

WebDeploy и SCM

Чтобы отключить доступ с обычной проверкой подлинности к порту WebDeploy и сайту SCM, выполните указанную ниже команду CLI. Замените заполнители именем своей группы ресурсов и именем сайта.

az resource update --resource-group <resource-group> --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

Чтобы убедиться, что учетные данные профиля публикации заблокированы для WebDeploy, попробуйте опубликовать веб-приложение с помощью Visual Studio 2019.

Отключение доступа к API

API в предыдущем разделе работает на базе системы управления доступом на основе ролей Azure (Azure RBAC). Это означает, что вы можете создать настраиваемую роль и назначить ей пользователей с низкими привилегиями, чтобы они не могли включить обычную проверку подлинности ни на одном сайте. Чтобы настроить пользовательскую роль, выполните эти инструкции.

Вы также можете использовать Azure Monitor для проверки всех успешных запросов проверки подлинности, а с помощью Политики Azure применить эту конфигурации ко всем сайтам в подписке.

Дальнейшие действия

Узнайте, как использовать эти учетные данные для развертывания приложения из локального репозитория Git или с помощью FTP(S).