Segurança
Dev tunnels é um serviço de encapsulamento de desenvolvedor focado em segurança. Neste artigo, saiba como os túneis de desenvolvimento são protegidos.
Visão geral
Por padrão, hospedar e se conectar a um túnel requer autenticação com a mesma conta da Microsoft, Microsoft Entra ID ou GitHub que criou o túnel. O encapsulamento requer conexões de saída para 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.
Encaminhamento da Web
As portas de túnel que usam 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
).
- Conexões de cliente inseguras são sempre atualizadas automaticamente para HTTPS/WSS.
- HTTP Strict Transport Security (HSTS) é habilitado com uma idade máxima de um ano.
- A versão mínima do TLS que o serviço suporta é 1.2, com o TLS 1.3 sendo a versão preferida.
- O encerramento do TLS é feito 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, ocorre a regravação do cabeçalho. Isso é necessário para muitos cenários de desenvolvimento de aplicativos Web.
Proteção anti-phishing
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émtext/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, os túneis e as portas de túnel são privados e acessíveis apenas ao 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) permitida e anônima poderá 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 de 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 outras alterações nele.
- Um "token de acesso a portas de gerenciamento" 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 uma alternativa ao login.
Os clientes da Web podem passar um token em um cabeçalho para autorizar solicitações para 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 X-Tunnel-Authorization
cabeçalho em vez do cabeçalho padrão Authorization
para evitar possíveis interferências na 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 oferecer suporte a túneis que concedem acesso a todos os membros de uma organização do GitHub, instale o aplicativo GitHub de Túneis de Desenvolvimento na organização. Isso dá ao serviço Túneis de Desenvolvimento permissão para verificar o status de associação dos usuários nessa organização. (Os túneis de desenvolvimento não exigem 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 perguntas
Se, depois de revisar esta página, você tiver mais perguntas, consulte Comentários e suporte.