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


Безопасность

Туннели разработки — это служба туннелирования разработчиков, ориентированных на безопасность. В этой статье описано, как туннель разработки защищены.

Обзор

По умолчанию для размещения и подключения к туннелю требуется проверка подлинности с той же учетной записью Майкрософт, Microsoft Entra ID или GitHub, которая создала туннель. Для туннелирования требуется, чтобы исходящие подключения были сделаны к службе, размещенной в Azure. Для использования службы не требуются входящий трафик.

Домены

Доступ к туннель разработки можно контролировать, разрешая или запрещая исходящий доступ к следующим доменам:

  • Проверка подлинности

    • github.com
    • login.microsoftonline.com
  • Туннели разработки

    • global.rel.tunnels.api.visualstudio.com
    • [clusterId].rel.tunnels.api.visualstudio.com
    • [clusterId]-data.rel.tunnels.api.visualstudio.com
    • *.[clusterId].devtunnels.ms
    • *.devtunnels.ms

Список текущих [clusterId] значений доступен по адресу https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.

Веб-пересылка

Порты туннеля с помощью протоколов HTTP(S)/WS(S) можно получить непосредственно через предоставленный URL-адрес перенаправления веб-адресов (например: https://tunnelid-3000.devtunnels.ms).

  • Небезопасные клиентские подключения всегда обновляются автоматически до HTTPS/Windows SharePoint Services.
  • Протокол HTTP Strict Transport Security (HSTS) включен с максимальным возрастом в течение одного года.
  • Минимальная версия TLS, поддерживающая службу, — 1.2, при этом TLS 1.3 является предпочтительной версией.
  • Завершение TLS выполняется при входящего трафика службы с помощью сертификатов службы, выданных центром сертификации Майкрософт.
    • После завершения TLS происходит перезапись заголовков. Это необходимо для многих сценариев разработки веб-приложений.

Защита от фишинга

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

  • Запрос использует метод, отличный от GET
  • Заголовок запроса Accept не содержит text/html
  • Запрос содержит X-Tunnel-Skip-AntiPhishing-Page заголовок
  • Запрос содержит X-Tunnel-Authorization заголовок
  • Пользователь уже посетил страницу и нажмите кнопку "Продолжить"

Доступ к туннелям

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

Если требуется доступ к туннелю или порту туннеля без проверки подлинности, можно добавить запись управления доступом ( --allow-anonymousACE).

Доступ к туннелю также можно расширить до текущего клиента Microsoft Entra (use --tenant) или определенных организаций GitHub (используйте --organization); для последнего см . сведения о доступе к организации GitHub ниже.

Интерфейс командной строки также можно использовать для запроса маркеров доступа, которые предоставляют ограниченный доступ любому пользователю, владеющему маркером (используйте devtunnel token). Это расширенная функция, но может быть полезной в определенных ситуациях.

В настоящее время доступны четыре типа маркеров доступа к туннелям:

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

Все маркеры ограничены текущим туннелем; Они не предоставляют доступ к любому из других туннелей текущего пользователя, если таковые есть. Срок действия маркеров истекает через некоторое время (в настоящее время — 24 часа). Маркеры можно обновить только с помощью фактического удостоверения пользователя, имеющего доступ область к туннелю (а не только маркер доступа к управлению).

Большинство команд CLI могут принимать --access-token аргумент с соответствующим маркером в качестве альтернативы входу.

Веб-клиенты могут передавать маркер в заголовке, чтобы авторизовать запросы к URI туннеля:

X-Tunnel-Authorization: tunnel <TOKEN>

Совет

Это полезно для неинтерактивных клиентов, так как позволяет им получать доступ к туннелям, не требуя включения анонимного доступа. Мы используем X-Tunnel-Authorization заголовок вместо стандартного Authorization заголовка, чтобы предотвратить потенциальное вмешательство в авторизацию для конкретного приложения.

Дополнительные сведения об управлении доступом к туннелю разработчика см. в разделе "Управление доступом к туннелю " с помощью интерфейса командной строки.

Доступ организации GitHub

Чтобы поддерживать туннели, предоставляющие доступ ко всем членам организации GitHub, установите приложение Dev Tunnels GitHub в организации. Это дает службе Dev Tunnels разрешение на проверка статус членства пользователей в этой организации. (Для туннелей разработки не требуются разрешения репозитория для организации.) Для выполнения этой операции может потребоваться быть администратором в организации GitHub.

Дополнительные вопросы

Если после просмотра этой страницы у вас есть дополнительные вопросы, см . отзывы и поддержку.