Гибридные подключения Службы приложений Azure
Гибридные подключения — это и служба в Azure, и функция в службе приложений Azure. В качестве службы он использует и возможности за пределами тех, которые используются в Служба приложений. Чтобы узнать больше о гибридных подключениях и их использовании вне службы приложений, изучите раздел Протокол гибридных подключений ретранслятора Azure.
В Службе приложений гибридные подключения можно использовать для доступа к ресурсам приложения в любой сети, которая может выполнять исходящие вызовы к Azure через порт 443. Гибридные подключения предоставляют доступ из приложения к конечной точке TCP. Он не включает новый способ доступа к приложению. При использовании в службе приложений каждое гибридное подключение сопоставляется с одной комбинацией узла TCP и TCP-порта.
Эта функция позволяет приложениям получать доступ к ресурсам в любой операционной системе, если это конечная точка TCP. Гибридным подключениям не важен используемый протокол приложения или ресурсы, к которым вы обращаетесь. Они просто предоставляют доступ к сети.
Принцип работы
Для гибридных подключений требуется развернуть агент ретранслятора, где он может достичь требуемой конечной точки и Azure. Агент ретрансляции, Диспетчер гибридных подключений (HCM), вызывает Azure Relay через порт 443. С сайта веб-приложения инфраструктура Службы приложений также подключается к Azure Relay от имени приложения. Через объединенные подключения приложение может получить доступ к нужной конечной точке. Это подключение использует протокол TLS 1.2 для обеспечения безопасности и ключи подписанного URL-адреса (SAS) для аутентификации и авторизации.
Когда приложение выполняет DNS-запрос, соответствующий настроенной конечной точке гибридного подключения, исходящий TCP-трафик перенаправляется через гибридное подключение.
Примечание.
Это означает, что всегда следует пытаться использовать DNS-имя для гибридного подключения. Некоторые клиентские программы не выполняют поиск DNS, если конечная точка использует IP-адрес.
Преимущества гибридного подключения службы приложений
Существует множество преимуществ для возможностей гибридных подключений, в том числе:
- Приложения безопасно могут обращаться к локальным службам и системам.
- Для них не требуется конечная точка с доступом к Интернету.
- Их можно быстро и легко настроить. Шлюзы не требуются.
- Каждое гибридное подключение совпадает с одним сочетанием узла:порта, которое полезно для обеспечения безопасности.
- Для них обычно не требуются бреши в брандмауэре. Все подключения исходят через стандартные веб-порты.
- Так как эта функция является уровнем сети, она не зависит от языка, который использует ваше приложение, и технологии, которые использует конечная точка.
- Их можно использовать для доступа к нескольким сетям из одного приложения.
- Поддерживается в общедоступной версии для приложений Windows и приложений Linux. Гибридные подключения не поддерживаются для пользовательских контейнеров Windows.
Действия, которые нельзя сделать с гибридными подключениями
Ниже приведены действия, которые нельзя сделать с гибридными подключениями:
- подключение диска;
- использование протокола UDP;
- доступ к службам на основе протокола TCP, использующим динамические порты (таким как пассивный режим FTP или расширенный пассивный режим FTP);
- поддержка протокола LDAP, так как он иногда требует наличие протокола UDP;
- Поддержка Active Directory, так как вы не можете присоединиться к домену Служба приложений рабочей роли.
Добавление и создание гибридных подключений в приложении
Чтобы создать гибридное подключение, выполните приведенные действия.
В портал Azure выберите свое приложение. Щелкните Параметры>Сети.
Рядом с гибридными подключениями выберите ссылку "Не настроено ". Здесь можно увидеть гибридные подключения, которые были настроены для приложения.
Чтобы добавить новое гибридное подключение, нажмите кнопку Добавить гибридное подключение. Вы увидите список уже созданных гибридных подключений. Чтобы добавить одно или несколько из них в приложение, выберите соответствующие подключения, затем щелкните Добавление выбранного гибридного подключения.
Если вы хотите создать гибридное подключение, щелкните Создать гибридное подключение. Укажите следующие значения:
- Имя гибридного подключения.
- имя узла конечной точки;
- порт конечной точки;
- пространство имен служебной шины, которое вы хотите использовать.
Каждое гибридное подключение привязано к пространству имен служебная шина. Каждое служебная шина пространство имен находится в регионе Azure. Чтобы избежать задержки в сети, используйте пространство имен служебная шина в том же регионе, что и приложение.
Если вы хотите удалить из приложения гибридное подключение, щелкните его правой кнопкой мыши и выберите Отключить.
После добавления гибридного подключения в приложение вы сможете просмотреть сведения о нем, просто щелкнув это подключение.
Создание гибридного подключения на портале ретранслятора Azure
Помимо использования элементов интерфейса портала в приложении, вы можете создавать гибридные подключения на портале ретранслятора Azure. Чтобы гибридное подключение могло использоваться службой приложений, оно должно:
- требовать авторизации клиентов;
- Укажите элемент метаданных и именованную конечную точку, содержащую сочетание host:port в качестве значения.
Гибридные подключения и планы службы приложений
Гибридные подключения к службе приложений доступны только для ценовых категорий (SKU) "Базовый", "Стандартный", "Премиум" и "Изолированный". Гибридные подключения недоступны для приложений функций в планах потребления. С каждым тарифным планом связаны определенные ограничения.
Ценовой план | Количество гибридных подключений в плане |
---|---|
Базовая | 5 на план |
Стандартные | 25 на план |
Премиум (версия 1–3) | 220 на приложение |
Изолированный (версия 1–2) | 220 на приложение |
В пользовательском интерфейсе плана службы приложений показано, сколько гибридных подключений используется и какими приложениями.
Чтобы просмотреть сведения, выберите гибридное подключение. Вы увидите все сведения, можно было увидеть в представлении приложения. Можно также узнать, сколько приложений в том же плане использует это гибридное подключение.
Существует ограничение числа конечных точек гибридного подключения, которые могут использоваться в плане службы приложений. Каждое гибридное подключение можно использовать в любом количестве приложений в этом плане. Например, отдельное гибридное подключение, используемое в пяти отдельных приложениях в плане службы приложений, считается одним гибридным подключением.
Цены
Помимо требования SKU плана Служба приложений, существует дополнительная стоимость использования гибридных подключений. Плата за каждый прослушиватель использует гибридное подключение. Прослушиватель — это Диспетчер гибридных подключений (HCM). Если у вас есть пять гибридных подключений, поддерживаемых двумя Диспетчер гибридных подключений, которые будут иметь 10 прослушивателей. Дополнительные сведения см. на странице цен на служебную шину.
Hybrid Connection Manager
Для работы гибридных подключений в сети, в которой размещена конечная точка гибридного подключения, необходим агент ретрансляции. Он называется Hybrid Connection Manager (HCM). Чтобы скачать HCM, выполните приведенные далее действия.
- В портал Azure выберите свое приложение. Щелкните Параметры>Сети.
- Рядом с гибридными подключениями выберите ссылку, чтобы открыть страницу гибридных подключений.
- Выберите " Скачать диспетчер соединений".
Данный инструмент работает в Windows Server 2012 и более поздних версиях. HCM работает как служба и устанавливает исходящее подключение к Azure Relay на порту 443.
После установки HCM можно запустить HybridConnectionManagerUi.exe , чтобы использовать пользовательский интерфейс для средства. Этот файл расположен в каталоге установки диспетчера гибридных подключений. В Windows 10 можно также найти Диспетчер гибридных подключений пользовательский интерфейс в поле поиска.
При запуске пользовательского интерфейса HCM первое, что вы видите, — это таблица со списком всех гибридных подключений, настроенных с помощью этого экземпляра HCM. Если вы хотите внести изменения, сначала пройдите аутентификацию в Azure.
Вот как можно добавить одно или несколько гибридных подключений в HCM.
Запустите пользовательский интерфейс HCM.
Выберите Добавить новое гибридное подключение.
Войдите с помощью учетной записи Azure, чтобы получить доступ к гибридным подключениям в ваших подписках. HCM не продолжает использовать учетную запись Azure за пределами этого шага.
Выберите подписку.
Щелкните гибридные подключения, которые HCM должен транслировать.
Выберите Сохранить.
Теперь вы увидите добавленные гибридные подключения. Можно также выбрать настроенное гибридное подключение, чтобы просмотреть сведения о нем.
Чтобы HCM мог обслуживать настроенные для него гибридные подключения, ему требуется:
- доступ к Azure по протоколу TCP через порт 443;
- доступ к конечной точке гибридного подключения по протоколу TCP;
- возможность поиска DNS на узле конечной точки и в пространстве имен служебной шины Azure. Другими словами, имя узла в подключении ретрансляции Azure должно быть разрешаемым с компьютера, на котором размещен HCM.
Примечание.
Ретранслятор Azure использует для подключения веб-сокеты. Эта возможность доступна только в Windows Server 2012 и более поздних версиях. Из-за этого HCM не поддерживается в системах, предшествующих Windows Server 2012.
Избыточность
Каждый экземпляр HCM может поддерживать несколько гибридных подключений. Несколько HCM могут поддерживать любое гибридное подключение. Режим по умолчанию — маршрутизация трафика методом циклического перебора между настроенными экземплярами HCM для любой заданной конечной точки. Если требуется обеспечить высокий уровень доступности гибридных подключений из сети, запустите несколько экземпляров HCM на разных компьютерах. Алгоритм распределения нагрузки, используемый службой ретранслятора для распределения трафика между экземплярами HCM, назначается случайно.
Добавление гибридного подключения вручную
Если необходимо, чтобы кто-либо вне вашей подписки разместил экземпляр HCM для заданного гибридного подключения, предоставьте ему строку подключения к шлюзу для этого гибридного подключения. Вы можете увидеть строку подключения к шлюзу в свойствах гибридного подключения на портале Azure. Чтобы использовать эту строку, нажмите кнопку Ввести вручную в HCM и вставьте строку подключения к шлюзу.
Обновление
Для Диспетчера гибридных подключений выпускаются периодические обновления, предназначенные для устранения проблем или предоставления улучшений. При выпуске обновлений диалоговое окно отображается в пользовательском интерфейсе HCM. При применении обновления применяются изменения и перезапускается HCM.
Добавление гибридного подключения к приложению программным способом
Azure CLI поддерживает гибридные подключения. Предоставленные команды работают как на уровне приложения, так и на уровне плана службы приложений. Команды уровня приложения
az webapp hybrid-connection
Group
az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
This command group is in preview. It may be changed/removed in a future release.
Commands:
add : Add a hybrid-connection to a webapp.
list : List the hybrid-connections on a webapp.
remove : Remove a hybrid-connection from a webapp.
Команды плана Служба приложений позволяют задать ключ, который используется гибридным подключением. Для каждого гибридного подключения существует два ключа — первичный и вторичный. Вы можете использовать первичный или вторичный ключ со следующими командами. Этот параметр позволяет переключать ключи для периодического повторного создания ключей.
az appservice hybrid-connection --help
Group
az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
This command group is in preview. It may be changed/removed in a future release.
Commands:
set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
connections in that appservice plan.
Защита гибридных подключений
Любой пользователь, имеющий достаточные разрешения на ретранслятор Служебная шина Azure, может добавить существующее гибридное подключение для этого ретранслятора в другие веб-приложения Служба приложений. Чтобы запретить другим пользователям повторно использовать то же гибридное подключение, заблокируйте доступ к ретранслятору Служебная шина Azure. Эта ситуация может произойти, когда целевой ресурс является службой, которая не имеет других мер безопасности, чтобы предотвратить несанкционированный доступ.
Любой пользователь с Reader
доступом к ретранслятору может видеть гибридное подключение, если они пытаются добавить его в веб-приложение в портал Azure. Они не могут добавить его, так как у них отсутствуют разрешения на получение строка подключения, которая используется для установления подключения ретранслятора. Чтобы добавить гибридное подключение, у них должно быть listKeys
разрешение (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action
). Роль Contributor
или любая другая роль, которая включает это разрешение на ретранслятор, позволяет пользователям использовать гибридное подключение и добавлять его в свои собственные веб-приложения.
Управление гибридными подключениями
Если необходимо изменить узел конечной точки или порт для гибридного подключения, выполните следующие действия.
- В Диспетчер гибридных подключений выберите подключение, чтобы просмотреть его окно сведений. Затем щелкните Удалить.
- В портал Azure выберите свое приложение. Щелкните Параметры>Сети.
- Рядом с гибридными подключениями выберите ссылку "Настроено ".
- В гибридных подключениях щелкните правой кнопкой мыши подключение и выберите " Отключить".
- Перейдите к ретранслятору для конечной точки, необходимой для обновления. В меню навигации в разделе "Сущности" выберите "Гибридные подключения" в разделе "Сущности".
- Выберите гибридное подключение. В меню навигации в разделе "Параметры" выберите "Свойства".
- Внесите изменения и нажмите кнопку "Сохранить изменения".
- Вернитесь к параметрам гибридных подключений для Службы приложений и добавьте гибридное подключение еще раз. Убедитесь, что конечная точка обновлена должным образом. Если гибридное подключение не отображается в списке, обновите его через 5-10 минут.
- Вернитесь в Диспетчер гибридных подключений на локальном компьютере и добавьте подключение еще раз.
Устранение неполадок
Состояние "Подключено" означает, что по крайней мере один HCM настроен с помощью этого гибридного подключения и может получить доступ к Azure. Если состояние вашего гибридного подключения не Подключено, то оно не настроено в HCM с доступом к Azure. Когда В HCM отображается "Не подключено", проверьте следующее:
У вашего узла есть исходящий доступ к Azure через порт 443? Вы можете протестировать на узле HCM с помощью команды
Test-NetConnection Destination -P Port
PowerShell.HCM потенциально находится в неисправном состоянии? Попробуйте перезапустить локальную службу службы azure Диспетчер гибридных подключений.
Установлено ли у вас конфликтующее программное обеспечение? Диспетчер гибридных подключений не может сосуществовать с Biztalk Диспетчер гибридных подключений или служебная шина для Windows Server. При установке HCM сначала следует удалить все версии этих пакетов.
У вас есть брандмауэр между узлом HCM и Azure? В этом случае необходимо разрешить исходящий доступ к URL-адресу конечной точки служебная шина и шлюзам служебная шина, которые обслуживают гибридное подключение.
URL-адрес конечной точки служебная шина можно найти в пользовательском интерфейсе Диспетчер гибридных подключений.
Шлюзы служебная шина — это ресурсы, которые принимают запрос в гибридное подключение и передают его через Ретранслятор Azure. Необходимо разрешить список всех 128 шлюзов. Шлюзы находятся в формате:
G#-prod-[stamp]-sb.servicebus.windows.net
Знак#
номера — это число от 0 до 127 иstamp
является именем экземпляра в центре обработки данных Azure, где существует служебная шина конечная точка.Если можно использовать подстановочный знак, список разрешений *.servicebus.windows.net.
Если вы не можете использовать подстановочный знак, необходимо разрешить список всех 128 шлюзов.
Вы можете узнать метку с помощью nslookup на URL-адресе конечной точки служебная шина.
В этом примере метка имеет значение
sn3-010
. Чтобы разрешить список шлюзов служебная шина, вам потребуется следующее:G0-prod-sn3-010-sb.servicebus.windows.net
G1-prod-sn3-010-sb.servicebus.windows.net
G2-prod-sn3-010-sb.servicebus.windows.net
G3-prod-sn3-010-sb.servicebus.windows.net
... G126-prod-sn3-010-sb.servicebus.windows.net
G127-prod-sn3-010-sb.servicebus.windows.net
Если состояние " Подключено" , но ваше приложение не может достичь конечной точки, выполните следующие действия.
- Убедитесь, что вы используете DNS-имя в гибридном подключении. Если вы используете IP-адрес, запрос на поиск DNS клиента может не произойти. Если клиент, работающий в веб-приложении, не выполняет поиск DNS, то гибридное подключение не работает.
- Убедитесь, что DNS-имя, используемое в гибридном подключении, может разрешаться с узла HCM. Проверьте разрешение с помощью nslookup EndpointDNSname, где EndpointDNSname — точное совпадение со значением, которое используется в определении гибридного подключения.
- Тестирование доступа с узла HCM к конечной точке с помощью команды
Test-NetConnection EndpointDNSname -P Port
PowerShell. Если вы не можете связаться с конечной точкой с узла HCM, проверьте брандмауэры между двумя узлами, включая брандмауэры на основе узлов на конечном узле. - Если вы используете Служба приложений в Linux, убедитесь, что вы не используете
localhost
в качестве узла конечной точки. Вместо этого используйте имя компьютера, если вы пытаетесь создать подключение к ресурсу на локальном компьютере.
В службе приложений из консоли "Дополнительные инструменты (Kudu)" можно вызвать инструмент командной строки tcpping. Этот инструмент может сообщить, имеется ли доступ к конечной точке TCP, но не сообщает, имеется ли доступ к конечной точке гибридного подключения. Используя этот инструмент в консоли для конечной точки гибридного подключения, можно только подтвердить, что оно использует сочетание "узел:порт".
Если у вас есть клиент командной строки для конечной точки, можно проверить возможность подключения из консоли приложения. Например, можно проверить доступ к конечным точкам веб-сервера с помощью curl.