Защита удаленного доступа с помощью прокси-сервера приложения 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, вам потребуются следующие элементы:
- Лицензирование: подписка на Azure AD Premium P1 или P2 (или лицензия, включающая эти функции, например Microsoft 365 E3/E5) [4].
- Административный доступ: учетная запись с ролью «Глобальный администратор» или «Администратор приложений» на портале Azure («https://portal.azure.com»).
- Windows Server для Connector: сервер Windows Server (2012 R2 или более поздней версии) в вашей локальной сети, имеющий подключение к приложениям, которые вы хотите опубликовать, и к Azure AD. Этот сервер должен иметь исходящий доступ в Интернет (порты 80 и 443 для Azure AD и 443 для службы прокси-сервера приложения Azure AD) [5].
- Локальные веб-приложения: внутренние веб-приложения, к которым вы хотите сделать доступными удаленно.
- Пользовательский домен (необязательно): личный домен, проверенный в Azure AD, если вы хотите использовать удобные URL-адреса для опубликованных приложений.
Шаг за шагом: настройка прокси приложения Azure AD
Давайте настроим Application Proxy и опубликуем приложение.
1. Установка и настройка соединителя прокси приложения
Коннектор — это легкий агент, который соединяетв Azure AD и ваши локальные приложения.
- Откройте браузер и перейдите на портал Azure: https://portal.azure.com.
- Войдите в систему под учетной записью, имеющей необходимые разрешения.
- В верхнем поле поиска введите «Azure Active Directory» и выберите его из результатов.
- На левой панели навигации выберите Прокси приложения в разделе «Управление».
-
Нажмите «Загрузить службу коннектора».
-
На локальном сервере Windows, который вы назначили для соединителя:
- Загрузите и запустите установщик соединителя (
AADApplicationProxyConnectorInstaller.exe). - Следуйте инструкциям мастера установки. Во время установки вам будет предложено войти в систему, используя свои учетные данные глобального администратора Azure AD.
- После успешной установки служба коннектора запустится автоматически.
- Загрузите и запустите установщик соединителя (
-
Вернувшись на портал Azure, на странице Прокси приложения убедитесь, что вновь установленный соединитель отображается в списке «Соединители» со статусом «Активный».
- Пояснение: Для обеспечения высокой доступности и балансировки нагрузки рекомендуется установить как минимум два разъема. Коннекторы обновляются автоматически, гарантируя, что у вас всегда будет самая последняя версия.
2. Публикация локального веб-приложения
Давайте опубликуем внутреннее веб-приложение. В этом примере представьте, что у нас есть внутреннее веб-приложение под названием MinhaAppInterna, доступное по адресу http://minhaappinterna.local:8080.
- На левой панели навигации Azure Active Directory выберите Корпоративные приложения в разделе «Управление».
- Нажмите «+ Новое приложение».
- Нажмите «Интегрировать любое другое приложение, которого нет в галерее (не в галерее)».
- Основы:
- Имя: укажите осмысленное имя (например, «MyInternal-ProxyApp»).
- Тип приложения: выберите «Локальное приложение».
-
Нажмите «Добавить».
-
После создания приложения вы будете перенаправлены на страницу управления приложением. На левой панели навигации выберите Прокси приложения в разделе «Управление».
-
Основные настройки:
- Внутренний URL-адрес: введите внутренний URL-адрес вашего приложения (например:
http://minhaappinterna.local:8080). Убедитесь, что соединитель может разрешить этот URL-адрес и получить к нему доступ. - Внешний URL-адрес: этот URL-адрес будет автоматически создан на основе вашего домена Azure AD по умолчанию (например, myappinternal-proxy.msappproxy.net). Вы можете настроить собственный домен, если он у вас есть.
- Метод предварительной аутентификации: выберите «Azure Active Directory» (рекомендуется для обеспечения максимальной безопасности).
- Группа соединителей: выберите группу соединителей по умолчанию или пользовательскую группу, если у вас несколько соединителей.
- Внутренний URL-адрес: введите внутренний URL-адрес вашего приложения (например:
-
Нажмите Сохранить.
-
На левой панели навигации выберите Пользователи и группы в разделе «Управление».
-
Нажмите «+Добавить пользователя/группу» и назначьте пользователей или группы Azure AD, которым будет разрешен доступ к этому приложению.
- Объяснение: Назначение пользователей и групп имеет решающее значение для контроля доступа к опубликованному приложению. Прокси приложения Azure AD гарантирует, что только прошедшие проверку подлинности и авторизованные пользователи смогут получить доступ к внутреннему приложению.
3. Настройка условного доступа для опубликованных приложений
Условный доступ позволяет применять дополнительные политики безопасности, такие как MFA, для доступа к приложениям.
- На левой панели навигации Azure Active Directory выберите Безопасность > Условный доступ.
- Нажмите «+ Новая политика».
- Основы:
- Имя: укажите осмысленное имя (например:
MFA_para_MinhaAppInternal).
- Имя: укажите осмысленное имя (например:
- Обязанности:
- Идентификация пользователей или рабочих нагрузок: выберите пользователей и группы, на которых будет распространяться политика (например: «Grupo_Usuarios_MinhaAppInterna»).
- Облачные приложения или действия: выберите «MyAppInternal-Proxy».
- Контроль доступа:
- Предоставить: выберите «Предоставить доступ» и «Требовать многофакторную аутентификацию».
- Включить политику: выберите «Включено».
-
Нажмите Создать.
- Объяснение. Эта политика гарантирует, что любому пользователю, пытающемуся получить доступ к MyInternal-ProxyApp, будет предложено выполнить многофакторную аутентификацию, даже если локальное приложение не поддерживает MFA изначально.
4. Публикация других типов приложений
Прокси приложения можно использовать для публикации других типов ресурсов, например удаленныхВеб-клиент для настольных компьютеров и SharePoint.
4.1. Публикация веб-клиента удаленного рабочего стола
- Выполните действия, описанные в разделе 2, чтобы создать новое корпоративное приложение.
- В конфигурации прокси приложения:
- Внутренний URL-адрес: введите URL-адрес сервера веб-клиента удаленного рабочего стола (например: https://rdweb.contoso.com/RDWeb).
- Внешний URL-адрес: будет создан автоматически.
- Метод предварительной аутентификации:
Azure Active Directory. - Тип заголовка перевода URL:
Внутренние заголовки URL.
- Назначьте пользователей/группы.
4.2. Публикация SharePoint локально
- Выполните действия, описанные в разделе 2, чтобы создать новое корпоративное приложение.
- В конфигурации прокси приложения:
- Внутренний URL-адрес: введите URL-адрес вашего сайта SharePoint (например: https://sharepoint.contoso.local).
- Внешний URL-адрес: будет создан автоматически.
- Метод предварительной аутентификации:
Azure Active Directory. - Тип заголовка перевода URL:
Внутренние заголовки URL.
- Назначьте пользователей/группы.
Проверка и тестирование
Крайне важно протестировать удаленный доступ, чтобы обеспечить безопасный доступ к приложениям.
1. Тестирование доступа к опубликованному приложению
- Сценарий. На компьютере за пределами корпоративной сети (например, дома) откройте браузер и перейдите по внешнему URL-адресу MinhaAppInternal-Proxy (например, https://minhaappinterna-proxy.msappproxy.net).
- Ожидаемое действие: вы должны быть перенаправлены на страницу входа в Azure AD. После ввода учетных данных Azure AD и, если это настроено, завершения MFA, вы должны быть перенаправлены в локальное приложение MyApp.
- Проверка:
- Убедитесь, что приложение загружается правильно и с ним можно взаимодействовать.
- Проверьте журналы входа в Azure AD, чтобы убедиться, что доступ был аутентифицирован через прокси приложения и что был применен MFA.
2. Проверка журналов входа в Azure AD
- На портале Azure перейдите к Azure Active Directory > Мониторинг > Входящие журналы.
- Отфильтруйте журналы по «Приложению» («MyAppInternal-Proxy»).
- Проверьте данные для входа, включая «Состояние условного доступа» (должно отображаться «Успех» и указывать, что 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