Защита удаленного доступа с помощью прокси-сервера приложения Azure AD

Защита удаленного доступа с помощью прокси-сервера приложения Azure AD

14.03.2025

Эта техническая и образовательная статья призвана помочь аналитикам безопасности, ИТ-администраторам и системным инженерам реализовать и настроить прокси-сервер приложения Azure AD для защиты удаленного доступа к локальным веб-приложениям. В гибридной рабочей среде, где пользователям необходим доступ к внутренним ресурсам из любого места, безопасность этого доступа имеет основополагающее значение. Azure AD Application Proxy предоставляет безопасное и упрощенное решение для публикации локальных веб-приложений для удаленных пользователей без необходимости использования сложных VPN или DMZ [1].

Введение

Традиционно для удаленного доступа к внутренним приложениям требовалась настройка виртуальных частных сетей (VPN) или доступность приложений к сетям периметра (DMZ), что усложняло задачу и увеличивало потенциальные векторы атак. С ростом внедрения моделей удаленной и гибридной работы организациям необходим более безопасный и эффективный способ предоставления доступа к устаревшим приложениям, которые все еще находятся локально [2].

Прокси приложения Azure AD — это функция Azure Active Directory (теперь Microsoft Entra ID), которая позволяет пользователям безопасно получать доступ к локальным веб-приложениям из любого места. Он действует как обратный прокси-сервер, маршрутизируя внутренний трафик приложений через Azure AD, который обрабатывает аутентификацию и авторизацию. Это означает, что к локальным приложениям можно получить доступ, как если бы они были приложениями SaaS, используя функции безопасности Azure AD, такие как многофакторная аутентификация (MFA) и условный доступ [3].

В этом практическом руководстве будут рассмотрены предварительные требования, установка и настройка соединителей прокси приложения, публикация различных типов приложений (веб-приложения, веб-клиент удаленного рабочего стола, SharePoint), интеграция с политиками условного доступа, а также способы тестирования и проверки удаленного доступа. Будут предоставлены пошаговые инструкции, практические примеры и краткие объяснения, чтобы читатель мог реализовать, протестировать и проверить эти функции. Кроме того, будут обсуждаться советы по безопасности, проверки соответствия и лучшие практики для обеспечения безопасного и эффективного удаленного доступа, автономно, профессионально и надежно.

Почему прокси-сервер приложения Azure AD важен для удаленного доступа?

  • Повышенная безопасность: централизует проверку подлинности и авторизацию в Azure AD, позволяя использовать такие функции безопасности, как MFA, условный доступ и защита идентификации, для локальных приложений.
  • Упрощенный доступ: обеспечивает единый вход (SSO) для локальных приложений, упрощая доступ для пользователей.
  • Снижение сложности: устраняется необходимость в VPN или DMZ для удаленного доступа, что упрощает сетевую архитектуру и уменьшает поверхность атаки.
  • Экономичность: используется существующая инфраструктура Azure AD без необходимости использования дополнительного оборудования или программного обеспечения для удаленного доступа.
  • Гибкая публикация: поддерживает публикацию широкого спектра веб-приложений, включая приложения на основе заголовков, SharePoint, веб-клиент удаленного рабочего стола и другие пользовательские веб-приложения.

Предварительные условия

Чтобы настроить прокси-сервер приложения Azure AD, вам потребуются следующие элементы:

  1. Лицензирование: подписка на Azure AD Premium P1 или P2 (или лицензия, включающая эти функции, например Microsoft 365 E3/E5) [4].
  2. Административный доступ: учетная запись с ролью «Глобальный администратор» или «Администратор приложений» на портале Azure («https://portal.azure.com»).
  3. Windows Server для Connector: сервер Windows Server (2012 R2 или более поздней версии) в вашей локальной сети, имеющий подключение к приложениям, которые вы хотите опубликовать, и к Azure AD. Этот сервер должен иметь исходящий доступ в Интернет (порты 80 и 443 для Azure AD и 443 для службы прокси-сервера приложения Azure AD) [5].
  4. Локальные веб-приложения: внутренние веб-приложения, к которым вы хотите сделать доступными удаленно.
  5. Пользовательский домен (необязательно): личный домен, проверенный в Azure AD, если вы хотите использовать удобные URL-адреса для опубликованных приложений.

Шаг за шагом: настройка прокси приложения Azure AD

Давайте настроим Application Proxy и опубликуем приложение.

1. Установка и настройка соединителя прокси приложения

Коннектор — это легкий агент, который соединяетв Azure AD и ваши локальные приложения.

  1. Откройте браузер и перейдите на портал Azure: https://portal.azure.com.
  2. Войдите в систему под учетной записью, имеющей необходимые разрешения.
  3. В верхнем поле поиска введите «Azure Active Directory» и выберите его из результатов.
  4. На левой панели навигации выберите Прокси приложения в разделе «Управление».
  5. Нажмите «Загрузить службу коннектора».

  6. На локальном сервере Windows, который вы назначили для соединителя:

    • Загрузите и запустите установщик соединителя (AADApplicationProxyConnectorInstaller.exe).
    • Следуйте инструкциям мастера установки. Во время установки вам будет предложено войти в систему, используя свои учетные данные глобального администратора Azure AD.
    • После успешной установки служба коннектора запустится автоматически.
  7. Вернувшись на портал Azure, на странице Прокси приложения убедитесь, что вновь установленный соединитель отображается в списке «Соединители» со статусом «Активный».

    • Пояснение: Для обеспечения высокой доступности и балансировки нагрузки рекомендуется установить как минимум два разъема. Коннекторы обновляются автоматически, гарантируя, что у вас всегда будет самая последняя версия.

2. Публикация локального веб-приложения

Давайте опубликуем внутреннее веб-приложение. В этом примере представьте, что у нас есть внутреннее веб-приложение под названием MinhaAppInterna, доступное по адресу http://minhaappinterna.local:8080.

  1. На левой панели навигации Azure Active Directory выберите Корпоративные приложения в разделе «Управление».
  2. Нажмите «+ Новое приложение».
  3. Нажмите «Интегрировать любое другое приложение, которого нет в галерее (не в галерее)».
  4. Основы:
    • Имя: укажите осмысленное имя (например, «MyInternal-ProxyApp»).
    • Тип приложения: выберите «Локальное приложение».
  5. Нажмите «Добавить».

  6. После создания приложения вы будете перенаправлены на страницу управления приложением. На левой панели навигации выберите Прокси приложения в разделе «Управление».

  7. Основные настройки:

    • Внутренний URL-адрес: введите внутренний URL-адрес вашего приложения (например: http://minhaappinterna.local:8080). Убедитесь, что соединитель может разрешить этот URL-адрес и получить к нему доступ.
    • Внешний URL-адрес: этот URL-адрес будет автоматически создан на основе вашего домена Azure AD по умолчанию (например, myappinternal-proxy.msappproxy.net). Вы можете настроить собственный домен, если он у вас есть.
    • Метод предварительной аутентификации: выберите «Azure Active Directory» (рекомендуется для обеспечения максимальной безопасности).
    • Группа соединителей: выберите группу соединителей по умолчанию или пользовательскую группу, если у вас несколько соединителей.
  8. Нажмите Сохранить.

  9. На левой панели навигации выберите Пользователи и группы в разделе «Управление».

  10. Нажмите «+Добавить пользователя/группу» и назначьте пользователей или группы Azure AD, которым будет разрешен доступ к этому приложению.

    • Объяснение: Назначение пользователей и групп имеет решающее значение для контроля доступа к опубликованному приложению. Прокси приложения Azure AD гарантирует, что только прошедшие проверку подлинности и авторизованные пользователи смогут получить доступ к внутреннему приложению.

3. Настройка условного доступа для опубликованных приложений

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

  1. На левой панели навигации Azure Active Directory выберите Безопасность > Условный доступ.
  2. Нажмите «+ Новая политика».
  3. Основы:
    • Имя: укажите осмысленное имя (например: MFA_para_MinhaAppInternal).
  4. Обязанности:
    • Идентификация пользователей или рабочих нагрузок: выберите пользователей и группы, на которых будет распространяться политика (например: «Grupo_Usuarios_MinhaAppInterna»).
    • Облачные приложения или действия: выберите «MyAppInternal-Proxy».
  5. Контроль доступа:
    • Предоставить: выберите «Предоставить доступ» и «Требовать многофакторную аутентификацию».
  6. Включить политику: выберите «Включено».
  7. Нажмите Создать.

    • Объяснение. Эта политика гарантирует, что любому пользователю, пытающемуся получить доступ к MyInternal-ProxyApp, будет предложено выполнить многофакторную аутентификацию, даже если локальное приложение не поддерживает MFA изначально.

4. Публикация других типов приложений

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

4.1. Публикация веб-клиента удаленного рабочего стола

  1. Выполните действия, описанные в разделе 2, чтобы создать новое корпоративное приложение.
  2. В конфигурации прокси приложения:
    • Внутренний URL-адрес: введите URL-адрес сервера веб-клиента удаленного рабочего стола (например: https://rdweb.contoso.com/RDWeb).
    • Внешний URL-адрес: будет создан автоматически.
    • Метод предварительной аутентификации: Azure Active Directory.
    • Тип заголовка перевода URL: Внутренние заголовки URL.
  3. Назначьте пользователей/группы.

4.2. Публикация SharePoint локально

  1. Выполните действия, описанные в разделе 2, чтобы создать новое корпоративное приложение.
  2. В конфигурации прокси приложения:
    • Внутренний URL-адрес: введите URL-адрес вашего сайта SharePoint (например: https://sharepoint.contoso.local).
    • Внешний URL-адрес: будет создан автоматически.
    • Метод предварительной аутентификации: Azure Active Directory.
    • Тип заголовка перевода URL: Внутренние заголовки URL.
  3. Назначьте пользователей/группы.

Проверка и тестирование

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

1. Тестирование доступа к опубликованному приложению

  1. Сценарий. На компьютере за пределами корпоративной сети (например, дома) откройте браузер и перейдите по внешнему URL-адресу MinhaAppInternal-Proxy (например, https://minhaappinterna-proxy.msappproxy.net).
  2. Ожидаемое действие: вы должны быть перенаправлены на страницу входа в Azure AD. После ввода учетных данных Azure AD и, если это настроено, завершения MFA, вы должны быть перенаправлены в локальное приложение MyApp.
  3. Проверка:
    • Убедитесь, что приложение загружается правильно и с ним можно взаимодействовать.
    • Проверьте журналы входа в Azure AD, чтобы убедиться, что доступ был аутентифицирован через прокси приложения и что был применен MFA.

2. Проверка журналов входа в Azure AD

  1. На портале Azure перейдите к Azure Active Directory > Мониторинг > Входящие журналы.
  2. Отфильтруйте журналы по «Приложению» («MyAppInternal-Proxy»).
  3. Проверьте данные для входа, включая «Состояние условного доступа» (должно отображаться «Успех» и указывать, что MFA применен).

Советы и рекомендации по безопасности

  • Всегда используйте предварительную аутентификацию Azure AD. Предварительная аутентификация Azure AD — наиболее безопасный метод, поскольку он гарантирует, что только прошедшие проверку подлинности и авторизованные пользователи смогут попасть в вашу внутреннюю сеть. Избегайте сквозной аутентификации, за исключением случаев, когда это строго необходимо для приложений, которые не могут обрабатывать предварительную аутентификацию.
  • Условный доступ. Используйте условный доступ для применения дополнительных политик безопасности, таких как MFA, ограничения местоположения, соответствие устройств и т. д., для всех приложений, опубликованных через прокси приложения.
  • Группы соединителей. Организуйте соединители в группы, чтобы изолировать приложения или расположить соединители ближе к конкретным приложениям для повышения производительности.
  • Высокая доступность. Установите как минимум два соединителя на отдельных серверах, чтобы обеспечить высокую доступность и отказоустойчивость. Рассмотрите возможность установки в разных регионах или зонах доступности, если это применимо.
  • Обслуживание соединителей. Хотя соединители обновляются автоматически, отслеживайте их состояние на портале Azure, чтобы убедиться, что они всегда активны и работоспособны.
  • Безопасность сервера соединителя: защитите сервер, на котором установлен соединитель. Постоянно обновляйте его, применяйте принцип минимальных привилегий и отслеживайте подозрительную активность.
  • Оптимизация производительности. Для приложений с высоким трафиком или требующих низкой задержки учитывайте расположение разъемов относительно серверов приложений и доступную пропускную способность.
  • Мониторинг: отслеживайте журналы входа в Azure AD и журналы соединителей для обнаружения подозрительной активности или проблем с доступом.

Распространенное устранение неполадок

  • Ошибка доступа (404, 500 и т. д.):
    • Проверьте внутренний URL-адрес. Убедитесь, что внутренний URL-адрес, настроенный в прокси приложения, правильный и что соединитель может получить к нему доступ непосредственно с сервера, на котором он установлен.
    • Проверьте соединитель. Убедитесь, что соединитель активен на портале Azure. Перезапустите службу соединителя на сервере.
    • Проверьте группу соединителей. Убедитесь, что группа соединителей, назначенная приложению,м хотя бы один активный разъем.
    • Локальный брандмауэр: проверьте, не блокирует ли брандмауэр на сервере соединителя или сервере приложений трафик.
  • Приложения загружаются некорректно (проблемы с рендерингом):
    • Перевод заголовка: для некоторых приложений может потребоваться изменить параметр «Тип заголовка перевода URL-адреса» в настройках прокси-сервера приложения на «Внутренние заголовки URL-адресов» или «Заголовки внешних URL-адресов».
    • Закодированные ссылки. В приложениях с жестко запрограммированными ссылками на внутренние URL-адреса могут возникнуть проблемы. Рассмотрите возможность использования функции «Перевод ссылок» прокси-сервера приложения или, если возможно, перенастройте приложение.
  • Проблемы единого входа:
    • Конфигурация единого входа: проверьте настройки единого входа в корпоративном приложении. Для приложений, которые не являются интегрированными, вам может потребоваться настроить «SSO на основе пароля» или «SSO на основе заголовка».
    • Ограниченное делегирование Kerberos (KCD): для приложений, использующих встроенную проверку подлинности Windows (IWA), убедитесь, что KCD правильно настроен в Active Directory для соединителя.
  • Условный доступ, блокирующий законных пользователей:
    • Внимательно ознакомьтесь с политиками условного доступа. Убедитесь, что пользователи или группы правильно включены или исключены.
    • Используйте инструмент «Что, если» в условном доступе, чтобы смоделировать доступ и понять, почему политика применяется или блокируется.
  • Автономный соединитель:
    • Проверьте сетевое подключение сервера соединителя к Azure AD (исходящие порты 80 и 443) и к службе прокси приложения (исходящий порт 443).
    • Проверьте журналы событий Windows на сервере соединителя на наличие ошибок, связанных со службами.
    • Убедитесь, что служба «Microsoft AAD Application Proxy Connector» запущена.

Заключение

Azure AD Application Proxy — это мощный и безопасный инструмент для расширения доступа к локальным веб-приложениям для удаленных пользователей, соответствующий принципам модели нулевого доверия. Централизуя аутентификацию и авторизацию в Azure AD и устраняя необходимость в сложных инфраструктурах удаленного доступа, организации могут упростить свою архитектуру безопасности, одновременно усиливая защиту от угроз. Тщательная реализация, интеграция с условным доступом и постоянный мониторинг необходимы для максимизации преимуществ безопасности и обеспечения удобства работы пользователей. Благодаря этому практическому руководству специалисты по безопасности и ИТ-администраторы будут хорошо подготовлены к настройке, проверке и управлению прокси-сервером приложения Azure AD, обеспечению удаленного доступа к критически важным приложениям и укреплению безопасности своих организаций.


Ссылки:

[1] Microsoft Learn. Публикуйте локальные приложения с помощью Microsoft Entra Application Proxy. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/overview-what-is-app-proxy [2] Microsoft Learn. Добавьте локальное приложение для удаленного доступа через Microsoft Entra Application Proxy. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-add-on-premises-application. [3] Microsoft Learn. Публикация удаленного рабочего стола с помощью прокси-сервера приложения Microsoft Entra. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-integrate-with-remote-desktop-services [4] Microsoft Learn. Лицензирование Microsoft Entra ID. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/licensing-azure-active-directory [5] Microsoft Learn. Разъемы прокси-сервера приложения Microsoft Entra. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-connectors [6] Microsoft Learn. Условный доступ по Microsoft Enter ID. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/conditional-access/overview [7] Microsoft Learn. Устранение неполадок с соединителями Microsoft Entra Application Proxy. Доступно по адресу: https://learn.microsoft.com/pt-br/entra/identity/app-proxy/application-proxy-troubleshoot-connectors