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

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

Служба приложений обеспечивает базовую проверку подлинности для клиентов FTP и WebDeploy для подключения к нему с помощью учетных данных развертывания. Эти API отлично подходят для просмотра файловой системы сайта, отправки драйверов и служебных программ и развертывания с помощью MsBuild. Однако предприятиям часто требуются более безопасные методы развертывания, чем обычная проверка подлинности, например проверка подлинности Microsoft Entra ID (см. типы проверки подлинности по методам развертывания в службе приложение Azure). Microsoft Entra использует авторизацию на основе маркеров OAuth 2.0 и имеет множество преимуществ и улучшений, которые помогают устранить проблемы в базовой проверке подлинности. Например, маркеры доступа OAuth имеют ограниченное время существования и относятся к приложениям и ресурсам, для которых они выданы, поэтому их нельзя использовать повторно. Microsoft Entra также позволяет развертывать из других служб Azure с помощью управляемых удостоверений.

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

Доступны два разных элемента управления для базовой проверки подлинности. В частности:

  • Для развертывания FTP обычная проверка подлинности контролируется флагом basicPublishingCredentialsPolicies/ftp (параметр "Учетные данные для базовой проверки подлинности FTP" на портале).
  • Для других методов развертывания, использующих базовую проверку подлинности, например Visual Studio, локальный Git и GitHub, обычная проверка подлинности управляется basicPublishingCredentialsPolicies/scm флагом (параметр учетных данных публикации SCM Basic Auth на портале).
  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню приложения слева выберите Конфигурация>Общие параметры.

  3. Для учетных данных публикации sCM Basic Auth или FTP Basic Auth Publishing Credentials, выберите "Отключить", а затем нажмите кнопку "Сохранить".

    A screenshot showing how to disable basic authentication for Azure App Service in the Azure portal.

Чтобы убедиться, что доступ к FTP заблокирован, попробуйте подключиться к приложению с помощью FTP/S. Вы должны получить 401 Unauthenticted сообщение.

Чтобы убедиться, что доступ к Git заблокирован, попробуйте локальное развертывание Git. Вы должны получить Authentication failed сообщение.

Развертывание без базовой проверки подлинности

При отключении базовой проверки подлинности методы развертывания, зависящие от простой проверки подлинности, перестают работать.

В следующей таблице показано, как работают различные методы развертывания при отключении базовой проверки подлинности и если есть какой-либо резервный механизм. Дополнительные сведения см. в разделе "Типы проверки подлинности по методам развертывания" в службе приложение Azure.

Метод развертывания Если обычная проверка подлинности отключена
Развертывание Visual Studio Не работает.
FTP Не работает.
Локальный репозиторий Git Не работает.
Azure CLI В Azure CLI 2.48.1 или более поздней версии следующие команды возвращаются к проверке подлинности Microsoft Entra:
- az webapp up
- az webapp deploy
- az webapp deployment source config-zip
- az webapp log deployment show
- az webapp log deployment list
- az webapp log download
- az webapp log tail
- az webapp browse
- az webapp create-remote-connection
- az webapp ssh
- az functionapp deploy
- az functionapp log deployment list
- az functionapp log deployment show
- az functionapp deployment source config-zip 
Подключаемый модуль Maven или подключаемый модуль Gradle Работает.
GitHub со службой сборки Служба приложений Не работает.
GitHub Actions — Существующий рабочий процесс GitHub Actions, использующий обычную проверку подлинности, не может пройти проверку подлинности . В Центре развертывания отключите существующую конфигурацию GitHub и создайте новую конфигурацию GitHub Actions с параметром удостоверения, назначаемого пользователем.
— Если существующее развертывание GitHub Actions настроено вручную, попробуйте использовать субъект-службу или openID Подключение.
— Для новой конфигурации GitHub Actions в Центре развертывания используйте параметр удостоверения, назначаемого пользователем.
Развертывание в мастере создания Если для базовой проверки подлинности задано значение Disable and Continuous deployment set to Enable, GitHub Actions настроен с параметром удостоверения, назначаемого пользователем (OpenID Подключение).
Azure Repos с помощью службы сборки Служба приложений Не работает.
BitBucket Не работает.
Azure Pipelines с задачей AzureWebApp Работает.
Azure Pipelines с задачей AzureRmWebAppDeployment — Используйте последнюю задачу AzureRmWebAppDeployment для получения резервного поведения.
— Тип подключения "Профиль публикации"PublishProfile не работает, так как он использует базовую проверку подлинности. Измените тип подключения на Azure Resource Manager (AzureRM).
— В агентах конвейеров, отличных от Windows, проверка подлинности работает.
— В агентах Windows метод развертывания, используемый задачей, может потребоваться изменить. Если веб-развертывание используется (DeploymentType: 'webDeploy') и обычная проверка подлинности отключена, задача проходит проверку подлинности с помощью маркера Microsoft Entra. Существуют дополнительные требования, если вы не используете windows-latest агент или используете автономный агент. Дополнительные сведения см. в статье "Не удается выполнить веб-развертывание в службе приложение Azure" с помощью проверки подлинности Microsoft Entra из агента Windows.
— Другие методы развертывания работают, например zip-развертывание или запуск из пакета.

Создание настраиваемой роли без разрешений для базовой проверки подлинности

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

  1. В портал Azure в верхнем меню найдите и выберите подписку, в которой вы хотите создать пользовательскую роль.

  2. В области навигации слева выберите контроль доступа (IAM)>Добавить>настраиваемую роль.

  3. Задайте вкладку "Базовый " , а затем нажмите кнопку "Далее".

  4. На вкладке "Разрешения" и выберите " Исключить разрешения".

  5. Найдите и выберите Microsoft веб-приложения, а затем выполните поиск следующих операций:

    Операция Description
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Учетные данные публикации FTP для приложений Служба приложений.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Учетные данные публикации SCM для приложений Служба приложений.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Учетные данные публикации FTP для Служба приложений слотов.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Учетные данные публикации SCM для Служба приложений слотов.
  6. В каждой из этих операций выберите поле для записи, а затем нажмите кнопку "Добавить". На этом шаге операция добавляется как NotActions для роли.

    Вкладка "Разрешения" должна выглядеть следующим образом:

    A screenshot showing the creation of a custom role with all basic authentication permissions excluded.

  7. Выберите Проверить и создать, а затем выберите Создать.

  8. Теперь эту роль можно назначить пользователям вашей организации.

Дополнительные сведения см. в статье "Создание или обновление пользовательских ролей Azure" с помощью портал Azure

Мониторинг базовых попыток проверки подлинности

Все успешные и попытки входа регистрируются в тип журнала Azure Monitor AppServiceAuditLogs . Чтобы проверить попытки и успешные входы в FTP и WebDeploy, выполните действия по отправке журналов в Azure Monitor и включите доставку AppServiceAuditLogs типа журнала.

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

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/EF90E930-9D7F-4A60-8A99-748E0EEA69DE/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.WEB/SITES/MY-DEMO-APP",
  "Category": "AppServiceAuditLogs",
  "OperationName": "Authorization",
  "Properties": {
    "User": "$my-demo-app",
    "UserDisplayName": "$my-demo-app",
    "UserAddress": "24.19.191.170",
    "Protocol": "FTP"
  }
}

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

Ниже приведены соответствующие политики для слотов:

Часто задаваемые вопросы

Почему в Visual Studio отображается предупреждение об отключении базовой проверки подлинности?

Visual Studio требует базовой проверки подлинности для развертывания в службе приложение Azure. Предупреждение напоминает вам, что конфигурация приложения изменилась, и вы больше не сможете развернуть его. Либо вы отключили обычную проверку подлинности в приложении самостоятельно, либо ваша политика организации применяет обычную проверку подлинности для Служба приложений приложений.