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


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

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

Служба приложений обеспечивает базовую проверку подлинности для клиентов FTP и веб-развертывания, которые могут подключаться с помощью учетных данных развертывания. Эти API отлично подходят для просмотра файловой системы сайта, отправки драйверов и служебных программ и развертывания с помощью MSBuild.

Однако предприятиям часто требуются методы развертывания, которые являются более безопасными, чем обычная проверка подлинности, например проверка подлинности Идентификатора Microsoft Entra . (Дополнительные сведения см. в разделе "Типы проверки подлинности по методу развертывания" в службе приложений 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 выберите «Выкл» и нажмите кнопку «Сохранить».

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

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

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

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

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

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

Метод развертывания Если обычная проверка подлинности отключена
Развертывание Visual Studio Не работает.
FTP Не работает.
Локальный репозиторий Git Не работает.
Azure CLI В 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 Actions, использующий обычную проверку подлинности , не может пройти проверку подлинности. В Центре развертывания отключите существующую конфигурацию GitHub и создайте новую конфигурацию GitHub Actions с параметром удостоверения, назначаемого пользователем .
Если существующее развертывание GitHub Actions настроено вручную, попробуйте вместо этого использовать учетную запись службы или OpenID Connect.
Для новой конфигурации GitHub Actions в Центре развертывания выберите опцию пользовательского удостоверения.
Развертывание в мастере создания Если для базовой проверки подлинности задано значение Отключено и непрерывное развертывание установлено в Включено, GitHub Actions настроен с опцией удостоверения, назначаемого пользователем (OpenID Connect).
Azure Repos со службой сборки в службе приложений Не работает.
Bitbucket; Не работает.
Azure Pipelines с AzureWebApp задачей Работает.
Azure Pipelines с AzureRmWebAppDeployment задачей Используйте последнюю AzureRmWebAppDeployment задачу для получения резервного поведения.
Тип PublishProfile подключения не работает, так как он использует обычную проверку подлинности. Измените тип подключения на AzureRM.
В агентах, отличных от Windows Azure Pipelines, проверка подлинности выполняется.
В агентах Windows метод развертывания, используемый задачей , может потребоваться изменить. Если DeploymentType: 'webDeploy' используется и обычная проверка подлинности отключена, задача проходит проверку подлинности с помощью маркера Microsoft Entra. Существуют дополнительные требования, если вы не используете windows-latest агент или используете автономный агент. Дополнительные сведения см. в статье «Не удается выполнить веб-развертывание в службе приложений Azure, используя проверку подлинности Microsoft Entra из агента Windows».
Другие методы развертывания работают, например zip-развертывание или запуск из пакета.

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

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

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

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

  3. Установите вкладку "Базовый" по своему усмотрению, а затем выберите "Далее".

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

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

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

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

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

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

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

Дополнительные сведения см. в статье "Создание и обновление пользовательских ролей 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 для аудита любых приложений, которые по-прежнему используют базовую проверку подлинности, и устранять любые несоответствующие ресурсы. Ниже приведены встроенные политики для аудита и исправления базовой проверки подлинности по службе приложений.

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

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

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

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