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


Гибридные подключения Службы приложений Azure

Гибридные подключения — это и служба в Azure, и функция в службе приложений Azure. В качестве службы у него есть функции и возможности, выходящие за рамки тех, которые доступны в Службе приложений. Дополнительные сведения о гибридных подключениях и их использовании за пределами службы приложений см. в статье Azure Relay Hybrid Connections.

В Службе приложений гибридные подключения можно использовать для доступа к ресурсам приложения в любой сети, которая может выполнять исходящие вызовы к Azure через порт 443. Гибридные подключения предоставляют доступ из приложения к конечной точке TCP. Он не включает новый способ доступа к приложению. При использовании в службе приложений каждое гибридное подключение сопоставляется с одной комбинацией узла TCP и TCP-порта.

Эта функция позволяет приложениям получать доступ к ресурсам в любой операционной системе, если это конечная точка TCP. Функция гибридных подключений не распознаёт и не учитывает протокол приложения или ресурсы, к которым вы получаете доступ. Они просто предоставляют доступ к сети.

Принцип работы

Для гибридных подключений требуется развернуть агент ретранслятора, где он может достичь требуемой конечной точки и Azure. Агент ретрансляции, Диспетчер гибридных подключений (HCM), вызывает Azure Relay через порт 443. С сайта веб-приложения инфраструктура Службы приложений также подключается к Azure Relay от имени приложения. Через объединенные подключения приложение может получить доступ к нужной конечной точке. Это подключение использует протокол TLS 1.2 для обеспечения безопасности и ключи общей подписи доступа (SAS) для аутентификации и авторизации.

Схема высокоуровневого потока гибридного подключения.

Когда приложение выполняет DNS-запрос, соответствующий настроенной конечной точке гибридного подключения, исходящий TCP-трафик перенаправляется через гибридное подключение.

Примечание.

Это означает, что всегда следует пытаться использовать DNS-имя для гибридного подключения. Некоторые клиентские программы не выполняют поиск DNS, если конечная точка использует IP-адрес.

Преимущества гибридного подключения службы приложений

Существует множество преимуществ для возможностей гибридных подключений, в том числе:

  • Приложения безопасно могут обращаться к локальным службам и системам.
  • Для них не требуется конечная точка с доступом к Интернету.
  • Их можно быстро и легко настроить. Шлюзы не требуются.
  • Каждое гибридное подключение совпадает с одним сочетанием узла:порта, которое полезно для обеспечения безопасности.
  • Для них обычно не требуются бреши в брандмауэре. Все подключения исходят через стандартные веб-порты.
  • Так как эта функция является уровнем сети, она не зависит от языка, который использует ваше приложение, и технологии, которые использует конечная точка.
  • Их можно использовать для доступа к нескольким сетям из одного приложения.
  • Поддерживается в общедоступной версии для приложений Windows и Linux. Гибридные подключения не поддерживаются для пользовательских контейнеров Windows.

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

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

  • Установить диск
  • использование протокола UDP;
  • доступ к службам на основе протокола TCP, использующим динамические порты (таким как пассивный режим FTP или расширенный пассивный режим FTP);
  • поддержка протокола LDAP, так как он иногда требует наличие протокола UDP;
  • Поддерживайте Active Directory, так как невозможно присоединить рабочий процесс службы приложений к домену.

Добавление и создание гибридных подключений в приложении

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

  1. На портале Azure выберите свое приложение. Выберите Параметры>Сеть.

  2. Рядом с гибридными подключениями выберите ссылку "Не настроено ". Здесь можно увидеть гибридные подключения, которые были настроены для приложения.

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

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

    Снимок экрана: страница гибридного подключения, на которой можно добавить подключение.

Если вы хотите создать гибридное подключение, выберите "Создать гибридное подключение". Укажите следующие значения:

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

Снимок экрана: диалоговое окно

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

Если вы хотите удалить гибридное подключение из приложения, щелкните его правой кнопкой мыши и выберите "Отключить".

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

Снимок экрана: сведения о гибридных подключениях.

Создание гибридного подключения в ARM/Bicep

Чтобы создать гибридное подключение с помощью шаблона ARM/Bicep, добавьте следующий ресурс в существующий шаблон. Для создания допустимого гибридного подключения необходимо включить userMetadata. Если не добавить userMetadata, гибридное подключение не функционирует. Если вы создаете гибридное подключение на портале Azure, это свойство автоматически заполняется для вас.

Свойство userMetadata должно быть строковым представлением массива JSON в формате [{/"key/": /"endpoint/", /"value/" : /"<HOST>:<PORT>/"}]. Дополнительные сведения см. в разделе пространства имен Microsoft.Relay или hybridConnections.

resource hybridConnection 'Microsoft.Relay/namespaces/hybridConnections@2024-01-01' = {
  parent: relayNamespace
  name: hybridConnectionName
  properties: {
    requiresClientAuthorization: true
    userMetadata: '[{/"key/": /"endpoint/", /"value/" : /"<HOST>:<PORT>/"}]'
  }
}

Создание гибридного подключения на портале ретранслятора Azure

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

  • требовать авторизации клиентов;
  • Укажите элемент метаданных и именованную конечную точку, содержащую сочетание host:port в качестве значения.

Гибридные подключения и планы службы приложений

Гибридные подключения к службе приложений доступны только для ценовых категорий (SKU) "Базовый", "Стандартный", "Премиум" и "Изолированный". Гибридные подключения недоступны для приложений функций в планах потребления. С каждым тарифным планом связаны определенные ограничения.

Ценовой план Количество доступных гибридных подключений в плане
Базовая 5 по плану
Стандарт 25 по плану
Премиум (версия 1–3) 220 на приложение
IsolatedV2 220 на приложение

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

Снимок экрана: свойства плана службы приложений.

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

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

Цены

Помимо требования к SKU плана службы приложений, существует дополнительная стоимость использования гибридных подключений. Плата взимается за каждого слушателя, использующего гибридное подключение. Прослушиватель — это Диспетчер гибридных подключений (HCM). Если у вас есть пять гибридных подключений, поддерживаемых двумя диспетчерами гибридных подключений, получится 10 прослушивателей. Дополнительные сведения см. в разделе цены на Service Bus.

Диспетчер гибридных подключений

Для работы функции гибридных подключений необходим агент ретрансляции в сети, где размещена конечная точка. Этот агент ретрансляции называется Hybrid Connection Manager (HCM). Чтобы скачать диспетчер гибридных подключений, следуйте инструкциям клиента.

Это средство работает как в Windows, так и в Linux. В Windows диспетчер гибридных подключений требует Windows Server 2012 и более поздних версий. Менеджер гибридных подключений запускается как служба и подключается к Azure Relay через порт 443.

Инструкции по установке

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

Примечание.

Ретранслятор Azure использует для подключения веб-сокеты. Эта возможность доступна только в Windows Server 2012 и более поздних версиях. Из-за этого требования диспетчер гибридных подключений не поддерживается в системах, предшествующих Windows Server 2012.

Для поддержки гибридных подключений, для которых он настроен, диспетчер гибридных подключений требует:

  • доступ к Azure по протоколу TCP через порт 443;
  • доступ к конечной точке гибридного подключения по протоколу TCP;
  • Клиенты Windows должны иметь порты 4999-5001.
  • Клиенты Linux должны иметь доступный порт 5001.
  • возможность выполнения запросов DNS на узле конечной точки и в пространстве имен службы Azure Service Bus. Другими словами, имя узла в подключении ретрансляции Azure должно быть разрешаемым с компьютера, где установлен диспетчер гибридных подключений.

Начало работы с графическим интерфейсом диспетчера гибридных подключений

После установки диспетчера гибридных подключений в Windows найдите графический интерфейс диспетчера гибридных подключений в поле поиска.

Снимок экрана: диспетчер гибридных подключений.

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

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

  1. Запустите графический интерфейс диспетчера гибридных подключений.
  2. Нажмите кнопку +Создать.
  3. Выберите Выбрать с Azure.
  4. Войдите с помощью учетной записи Azure, чтобы получить доступ к гибридным подключениям в ваших подписках. Диспетчер гибридных подключений не продолжает использовать учетную запись Azure за пределами этого шага.
  5. Выберите подписку.
  6. Выберите гибридные подключения, которые вы хотите передать через диспетчер гибридных подключений.
  7. Нажмите кнопку "Создать".

Теперь вы увидите добавленные гибридные подключения.

Снимок экрана: гибридное подключение, добавленное в диспетчер гибридных подключений.

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

Скриншот: детали гибридного подключения.

Начало работы с интерфейсом командной строки диспетчера гибридных подключений

В Windows можно использовать интерфейс командной строки диспетчера гибридных подключений, выполнив поиск и открытие интерфейса командной строки диспетчера гибридных подключений.

Чтобы использовать интерактивный режим с интерфейсом командной строки диспетчера гибридных подключений, который позволяет просматривать сведения о подписке Azure и гибридном подключении, необходимо установить и войти в Azure CLI. Инструкции по установке см. в статье "Установка Azure CLI " и выбор подходящего варианта для клиента. После установки запустите az login и следуйте инструкциям, чтобы завершить вход.

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

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

  1. Запустите интерфейс командной строки диспетчера гибридных подключений.

  2. Запустите hcm add и дождитесь завершения аутентификации в Azure. Если вы еще не установили и вошли в Azure CLI, сначала выполните этот шаг, чтобы использовать интерактивный режим. Если вы не хотите установить Azure CLI, следуйте инструкциям по добавлению гибридного подключения с помощью CLI вручную.

    Снимок экрана: добавление гибридного подключения с помощью интерфейса командной строки.

  3. Выберите подписку. Диспетчер гибридных подключений извлекает все гибридные соединения в этой подписке. Этот шаг может занять до одной минуты.

  4. Выберите гибридное подключение, которое вы хотите, чтобы диспетчер гибридных подключений ретранслировал.

Запустите hcm list , чтобы просмотреть добавленные гибридные подключения.

Вы также можете отобразить подробности о конкретном гибридном подключении с помощью команды hcm show.

Снимок экрана: сведения о гибридном подключении в командной строке (CLI).

Избыточность

Каждый диспетчер гибридных подключений может поддерживать несколько гибридных подключений. Несколько диспетчеров гибридных подключений могут поддерживать любое гибридное подключение. Поведение по умолчанию — маршрутизация трафика по настроенным диспетчерам гибридных подключений для любой конкретной конечной точки. Если требуется высокий уровень доступности гибридных подключений из сети, запустите несколько диспетчеров гибридных подключений на отдельных компьютерах. Алгоритм распределения нагрузки, используемый службой ретрансляции для передач данных на диспетчеры гибридных соединений, осуществляется случайным образом.

Добавление гибридного подключения вручную

Чтобы разрешить кому-либо за пределами вашей подписки запустить экземпляр диспетчера гибридных подключений для конкретного гибридного подключения, поделитесь с ними строкой подключения шлюза для этого гибридного подключения. Строку подключения шлюза можно просмотреть в свойствах гибридного подключения службы приложений на портале Azure. Строка подключения шлюза находится в формате Endpoint=sb://[NAMESPACE].servicebus.windows.net/;SharedAccessKeyName=defaultListener;SharedAccessKey=[KEY];EntityPath=[HYBRID-CONNECTION-NAME].

Скриншот строки подключения шлюза гибридного подключения в портале Azure.

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

Снимок экрана: диалоговое окно, в котором вы вручную добавляете гибридное подключение.

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

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

Обновление

Для Диспетчера гибридных подключений выпускаются периодические обновления, предназначенные для устранения проблем или предоставления улучшений. При выпуске обновлений при запуске появится диалоговое окно в графическом интерфейсе диспетчера гибридных подключений. Чтобы проверить наличие доступных обновлений с помощью интерфейса командной строки диспетчера гибридных подключений, выполните команду hcm version. Обновления должны выполняться с помощью установщика MSI и не могут выполняться с помощью интерфейса командной строки. При применении обновления применяются изменения и перезапускается диспетчер гибридных подключений.

Добавление гибридного подключения к приложению программным способом

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 Service Bus, может добавить существующее гибридное подключение для этого ретранслятора к другим веб-приложениям в Azure App Service. Чтобы запретить другим пользователям повторно использовать то же гибридное подключение, заблокируйте доступ к ретранслятору Azure Service Bus. Эта ситуация может произойти, когда целевой ресурс является службой, которая не имеет других мер безопасности, чтобы предотвратить несанкционированный доступ.

Любой пользователь с Reader доступом к ретранслятору может увидеть гибридное подключение, если они пытаются добавить его в веб-приложение на портале Azure. Они не могут добавить его, так как у них отсутствуют разрешения на получение строки подключения, используемой для установления подключения ретранслятора. Чтобы добавить гибридное подключение, у них должно быть listKeys разрешение (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). Роль Contributor или любая другая роль, которая включает это разрешение на ретранслятор, позволяет пользователям использовать гибридное подключение и добавлять его в свои собственные веб-приложения.

Управление гибридными подключениями

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

  1. В Диспетчере гибридных подключений выберите подключение, чтобы открыть окно с подробностями. Затем нажмите кнопку "Удалить".
  2. На портале Azure выберите свое приложение. Выберите Параметры>Сеть.
  3. Рядом с гибридными подключениями выберите ссылку "Настроено ".
  4. В гибридных подключениях щелкните правой кнопкой мыши подключение и выберите "Отключить".
  5. Перейдите к ретранслятору для обновления нужной конечной точки. В меню навигации в разделе "Сущности" выберите "Гибридные подключения" в разделе "Сущности".
  6. Выберите гибридное подключение. В меню навигации в разделе "Параметры" выберите "Свойства".
  7. Внесите изменения и нажмите кнопку "Сохранить изменения".
  8. Вернитесь к параметрам гибридных подключений для службы приложений и снова добавьте гибридное подключение. Убедитесь, что конечная точка обновлена должным образом. Если гибридное подключение не отображается в списке, обновите его через 5-10 минут.
  9. Вернитесь в Диспетчер гибридных подключений на локальном компьютере и добавьте подключение еще раз.

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

Состояние "Подключено " означает, что по крайней мере один диспетчер гибридных подключений настроен с помощью этого гибридного подключения и может получить доступ к Azure. Если состояние гибридного подключения не говорит о подключении, гибридное подключение не настроено в диспетчере гибридных подключений, который имеет доступ к Azure. Если в диспетчере гибридных подключений отображается сообщение "Не подключено", проверьте следующее:

  • У вашего узла есть исходящий доступ к Azure через порт 443? Вы можете протестировать хост диспетчера гибридных подключений с помощью команды PowerShell Test-NetConnection Destination -P Port.

  • Потенциально ли диспетчер гибридных подключений находится в плохом состоянии? Попробуйте перезапустить локальную службу Диспетчера гибридных подключений Azure .

  • Установлено ли у вас конфликтующее программное обеспечение? Диспетчер гибридных подключений не может сосуществовать с Biztalk Диспетчером гибридных подключений или служебной шиной для Windows Server. При установке диспетчера гибридных подключений сначала следует удалить все версии этих пакетов.

  • У вас есть брандмауэр между узлом диспетчера гибридных подключений и Azure? В этом случае необходимо разрешить исходящий доступ как к URL-адресу конечной точки служебной шины, так и к шлюзам служебной шины, которые обслуживают ваше гибридное подключение.

    • URL-адрес конечной точки служебной шины можно найти в графическом интерфейсе диспетчера гибридных подключений.

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

    • Вы также можете найти URL-адрес конечной точки служебной шины в интерфейсе командной строки диспетчера гибридных подключений.

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

    • Шлюзы служебной шины — это ресурсы, которые принимают запрос в гибридное подключение и передают его через Ретранслятор Azure. Необходимо внести в белый список все шлюзы. Шлюзы находятся в формате: G#-prod-[stamp]-sb.servicebus.windows.net и GV#-prod-[stamp]-sb.servicebus.windows.net. Знак номера # — это число от 0 до 127, а stamp является именем экземпляра в центре обработки данных Azure, где находится конечная точка службы шины сообщений.

    • Если вы можете использовать подстановочный знак, вы можете добавить в список разрешённых *.servicebus.windows.net.

    • Если вы не можете использовать маску, необходимо внести в белый список все 256 шлюзов.

      Вы можете узнать метку с помощью 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
      GV0-prod-sn3-010-sb.servicebus.windows.net
      GV1-prod-sn3-010-sb.servicebus.windows.net
      GV2-prod-sn3-010-sb.servicebus.windows.net
      GV3-prod-sn3-010-sb.servicebus.windows.net
      ...
      GV126-prod-sn3-010-sb.servicebus.windows.net
      GV127-prod-sn3-010-sb.servicebus.windows.net

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

  • Убедитесь, что вы используете DNS-имя в гибридном подключении. Если вы используете IP-адрес, запрос на поиск DNS клиента может не произойти. Если клиент, работающий в веб-приложении, не выполняет поиск DNS, то гибридное подключение не работает.
  • Убедитесь, что DNS-имя, используемое в гибридном подключении, может быть разрешено на хосте диспетчера гибридных подключений. Проверьте разрешение с помощью nslookup EndpointDNSname, где EndpointDNSname соответствует тому, что используется в определении гибридного подключения.
  • Тестируйте доступ с узла диспетчера гибридных подключений к конечной точке с помощью команды Test-NetConnection EndpointDNSname -P PortPowerShell. Если вы не можете связаться с конечной точкой из узла диспетчера гибридных подключений, проверьте брандмауэры между двумя узлами, включая брандмауэры на основе узлов на конечном узле.
  • Если вы используете Служба приложений в Linux, убедитесь, что вы не используете localhost в качестве узла конечной точки. Вместо этого используйте имя компьютера, если вы пытаетесь создать подключение к ресурсу на локальном компьютере.

В службе приложений средство командной строки tcpping можно вызвать из консоли Advanced Tools (Kudu). Этот инструмент может сообщить, имеется ли доступ к конечной точке TCP, но не сообщает, имеется ли доступ к конечной точке гибридного подключения. Используя инструмент в консоли для конечной точки гибридного подключения, вы лишь подтверждаете, что конечная точка использует сочетание "хост:порт".

Если у вас есть клиент командной строки для конечной точки, можно проверить возможность подключения из консоли приложения. Например, можно проверить доступ к конечным точкам веб-сервера с помощью curl.

Примечание.

Для вопросов и поддержки по гибридным подключениям службы приложений и диспетчеру гибридных подключений службы приложений, обратитесь к [email protected].