Compartilhar via


Segurança

Os túneis do desenvolvedor são um serviço de túnel para desenvolvedores com foco em segurança. Neste artigo, saiba como os túneis do desenvolvedor são protegidos.

Visão geral

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

Domínios

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

  • Autenticação

    • github.com
    • login.microsoftonline.com
  • Túneis do desenvolvedor

    • 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 [clusterId] atuais está disponível em https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.

Encaminhamento pela Web

As portas de túnel que usam os protocolos HTTP(S)/WS(S) podem ser acessadas diretamente por meio do URL de encaminhamento da Web fornecido (por exemplo: https://tunnelid-3000.devtunnels.ms).

  • As conexões de cliente inseguras são sempre atualizadas automaticamente para HTTPS/WSS.
  • A segurança de transporte estrito de HTTP (HSTS) está habilitada com uma idade máxima de um ano.
  • A versão mínima do TLS que o serviço suporta é a 1.2, sendo que a versão preferencial é a TLS 1.3.
  • A terminação TLS é feita na entrada do serviço usando certificados de serviço emitidos por uma AC da Microsoft.
    • Após a terminação TLS, ocorre a regravação do cabeçalho. Isso é necessário para muitos cenários de desenvolvimento de aplicativos da Web.

Proteção anti-phishing

Ao se conectar a um URL de encaminhamento da Web pela primeira vez, os usuários são apresentados a uma página intersticial antiphishing. A página é pulada 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 cabeçalho X-Tunnel-Skip-AntiPhishing-Page
  • A solicitação contém o cabeçalho X-Tunnel-Authorization
  • O usuário já visitou a página e clicou em continuar

Acesso ao túnel

Por padrão, os túneis e as portas de túnel são privados e só podem ser acessados pelo usuário que criou o túnel.

Se um túnel ou porta de túnel precisar ser acessado sem autenticação, uma entrada de controle de acesso de permissão anônima (ACE) 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 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). Esse é um recurso avançado, mas pode ser útil em situações específicas.

Atualmente, há quatro tipos de tokens de acesso ao túnel disponíveis:

  • Um "token de acesso do cliente" permite que o portador se conecte a qualquer porta do túnel.
  • Um "token de acesso ao 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 para gerenciar portas" permite que o portador adicione e exclua portas em um túnel.
  • Um "token de acesso de gerenciamento" permite que o portador realize qualquer operação nesse túnel, incluindo a configuração de controles de acesso, hospedagem, conexão e exclusão do túnel.

Todos os tokens são limitados ao túnel atual, 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 ao escopo de gerenciamento do túnel (não apenas um token de acesso de gerenciamento).

A maioria dos comandos da CLI pode aceitar um argumento --access-token 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>

Dica

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 X-Tunnel-Authorization em vez do cabeçalho Authorization padrão, para evitar possíveis interferências com a autorização específica do aplicativo.

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

Acesso à Organização GitHub

Para oferecer suporte a túneis que concedem acesso a todos os integrantes de uma organização do GitHub, instale o Aplicativo de Túnel do Desenvolvedor do GitHub na organização. Isso dá permissão ao serviço dos Túneis do Desenvolvedor para verificar o status de associação dos usuários nessa organização. Os Túneis do Desenvolvedor não requerem permissões de repositório para a organização. Talvez você precise ser um administrador na organização do GitHub para realizar essa operação.

Outras perguntas

Se, após revisar esta página, você tiver outras dúvidas, consulte Comentários e suporte.