Partilhar via


Segurança

O Dev tunnels é um serviço de tunelamento de desenvolvedor focado em segurança. Neste artigo, saiba como os túneis de desenvolvimento são protegidos.

Descrição geral

Por padrão, hospedar e conectar-se a um túnel requer autenticação com a mesma conta da Microsoft, Microsoft Entra ID ou GitHub que criou o túnel. O tunelamento requer conexões de saída a serem feitas com o serviço hospedado no Azure. Nenhuma conexão de entrada é necessária para usar o serviço.

Domínios

O acesso aos túneis de desenvolvimento pode ser controlado permitindo ou negando o acesso de saída aos seguintes domínios:

  • Autenticação

    • github.com
    • login.microsoftonline.com
  • Túneis de desenvolvimento

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

A lista de valores atuais [clusterId] está disponível em https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.

Reencaminhamento para a Web

As portas de túnel usando os protocolos HTTP(S)/WS(S) podem ser acessadas diretamente através da URL de encaminhamento da Web fornecida (por exemplo: https://tunnelid-3000.devtunnels.ms).

  • As conexões de cliente inseguras são sempre atualizadas automaticamente para HTTPS/WSS.
  • O HSTS (HTTP Strict Transport Security) é ativado com uma idade máxima de um ano.
  • A versão mínima de TLS suportada pelo serviço é 1.2, sendo o TLS 1.3 a versão preferida.
  • A terminação TLS é feita na entrada do serviço usando certificados de serviço, emitidos por uma autoridade de certificação da Microsoft.
    • Após o término do TLS, a regravação do cabeçalho ocorre. Isso é necessário para muitos cenários de desenvolvimento de aplicativos Web.

Proteção antiphishing

Ao se conectar a uma URL de encaminhamento da Web pela primeira vez, os usuários recebem uma página antiphishing intersticial. A página é ignorada nas seguintes circunstâncias:

  • A solicitação usa um método diferente de GET
  • O cabeçalho da solicitação Accept não contém text/html
  • A solicitação contém o X-Tunnel-Skip-AntiPhishing-Page cabeçalho
  • A solicitação contém o X-Tunnel-Authorization cabeçalho
  • O usuário já visitou a página e clicou em continuar

Acesso ao túnel

Por padrão, túneis e portas de túnel são privados e acessíveis apenas para o usuário que criou o túnel.

Se uma porta de túnel ou túnel precisar ser acessada sem autenticação, uma entrada de controle de acesso (ACE) pernomina-anônima pode ser adicionada (use --allow-anonymous).

O acesso ao túnel também pode ser estendido ao seu locatário atual do Microsoft Entra (use --tenant) ou a organizações específicas do GitHub (use --organization); para este último, consulte Acesso à Organização do GitHub abaixo.

A CLI também pode ser usada para solicitar tokens de acesso que concedem acesso limitado a qualquer pessoa que possua o token (use devtunnel token). Este é um recurso avançado, mas pode ser útil em situações específicas.

Atualmente, quatro tipos de tokens de acesso ao túnel estão disponíveis:

  • Um "token de acesso do cliente" permite que o portador se conecte a qualquer porta do túnel.
  • Um "token de acesso de host" permite que o portador hospede o túnel e aceite conexões, mas não faça nenhuma outra alteração nele.
  • Um "token de acesso de gerenciamento de portas" permite que o portador adicione e exclua portas em um túnel.
  • Um "token de acesso de gerenciamento" permite que o portador execute quaisquer operações nesse túnel, incluindo a configuração de controles de acesso, hospedagem, conexão e exclusão do túnel.

Todos os tokens estão limitados ao túnel atual; eles não concedem acesso a nenhum dos outros túneis do usuário atual, se houver. Os tokens expiram após algum tempo (atualmente 24 horas). Os tokens só podem ser atualizados usando uma identidade de usuário real que tenha acesso de escopo de gerenciamento ao túnel (não apenas um token de acesso de gerenciamento).

A maioria dos comandos da CLI pode aceitar um --access-token argumento com um token apropriado como alternativa ao login.

Os clientes da Web podem passar um token em um cabeçalho para autorizar solicitações a um URI de túnel:

X-Tunnel-Authorization: tunnel <TOKEN>

Gorjeta

Isso é útil para clientes não interativos, pois permite que eles acessem túneis sem exigir que o acesso anônimo seja habilitado. Usamos o cabeçalho em vez do cabeçalho padrão Authorization para evitar interferências potenciais com a X-Tunnel-Authorization autorização específica do aplicativo.

Consulte a seção Gerenciar acesso ao túnel de desenvolvimento para saber mais sobre como gerenciar o acesso ao túnel por meio da CLI.

Acesso à organização do GitHub

Para dar suporte a túneis que concedem acesso a todos os membros de uma organização GitHub, instale o aplicativo GitHub Dev Tunnels na organização. Isso dá ao serviço Dev Tunnels permissão para verificar o status de associação dos usuários nessa organização. (O Dev Tunnels não requer permissões de repositório para a organização.) Talvez seja necessário ser um administrador na organização do GitHub para executar essa operação.

Outras questões

Se, depois de rever esta página, tiver mais perguntas, consulte Comentários e suporte.