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


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

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

Служба приложений обеспечивает базовую проверку подлинности для клиентов FTP и клиентов Web Deploy, чтобы подключаться с использованием учетных данных для развертывания, включая имя пользователя и пароль. Базовые API проверки подлинности хорошо подходят для обозрения файловой системы сайта, отправки драйверов и служебных программ, и развертывания при помощи MSBuild. Дополнительные сведения см. в статье "Настройка учетных данных развертывания для службы приложений Azure".

Предприятия часто требуют более безопасных методов развертывания, чем обычная проверка подлинности, например идентификатор Microsoft Entra. Маркеры доступа Microsoft Entra OAuth 2.0 имеют ограниченное время существования, зависят от приложений и ресурсов, для которых они выданы, и не могут использоваться повторно. Авторизация на основе маркеров OAuth помогает устранить множество проблем с базовой проверкой подлинности.

Microsoft Entra также позволяет развертывать службы из других служб Azure с использованием управляемых удостоверений. Дополнительные сведения см. в разделе "Типы проверки подлинности по методу развертывания" в Службе приложений Azure.

Предпосылки

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

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

Для развертывания FTP базовая аутентификация контролируется флагом basicPublishingCredentialsPolicies/ftp или параметром портала учетных данных для базовой аутентификации FTP.

Для других методов развертывания, использующих базовую проверку подлинности, таких как Visual Studio, локальный Git и GitHub, базовая проверка подлинности управляется флагом basicPublishingCredentialsPolicies/scm или опцией портала SCM Basic Auth Publishing Credentials.

Замечание

Базовая проверка подлинности SCM необходима для включения базовой проверки подлинности FTP.

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

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню навигациислева приложения выберите>".

  3. Выберите "Выкл." для учетных данных публикации SCM Basic Auth, учетных данных публикации FTP Basic Auth или обеих, а затем нажмите Сохранить.

    Снимок экрана: отключение базовой проверки подлинности для службы приложений Azure на портале Azure.

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

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

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

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

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

Метод развертывания Если обычная проверка подлинности отключена
Развертывание Visual Studio Для развертывания с проверкой подлинности Microsoft Entra требуется Visual Studio 2022 версии 17.12 или более поздней.
FTP Не работает.
Локальный репозиторий Git Не работает.
Azure CLI (Интерфейс командной строки для Azure) В Azure CLI 2.48.1 или более поздней версии следующие команды возвращаются к проверке подлинности Microsoft Entra:
az webapp up.
az webapp deploy.
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 и создайте новую конфигурацию GitHub Actions, которая использует удостоверение, назначаемое пользователем.
Если существующее развертывание GitHub Actions настроено вручную, попробуйте вместо этого использовать учетную запись службы или OpenID Connect.
Для новых рабочих процессов GitHub Actions используйте параметр удостоверения, назначаемого пользователем .
GitHub со службой сборки службы приложений Не работает.
Развертывание из портального мастера создания Если вы выберете источник непрерывного развертывания и базовая аутентификация установлена на Отключить, GitHub Actions будет использовать опцию удостоверения, назначаемого пользователем (OpenID Connect).
Bitbucket; Не работает.
Azure Repos со службой сборки службы приложений Не работает.
Azure Repos с Azure Pipelines Работает.
Azure Pipelines с AzureWebApp задачей Работает.

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

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

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

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

  3. На странице "Создание настраиваемой роли" укажите имя роли и нажмите кнопку "Далее".

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

  5. Выполните поиск и выберите Microsoft Web Apps.

  6. Найдите и разверните microsoft.web/sites/basicPublishingCredentialsPolicies.

  7. Выберите поле для записи и нажмите кнопку "Добавить". На этом шаге операция добавляется в NotActions для роли.

  8. Снова выберите "Исключить разрешения ".

  9. Найдите и разверните microsoft.web/sites/slots/basicPublishingCredentialsPolicies, выберите поле "Запись " и нажмите кнопку "Добавить".

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

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

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

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

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

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

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 для аудита любых приложений, которые по-прежнему используют базовую проверку подлинности, и устранять любые несоответствующие ресурсы. В следующем списке показаны встроенные политики аудита и исправления базовой проверки подлинности в службе приложений:

В следующем списке показаны соответствующие политики для слотов: