Delen via


Beveiliging

Dev-tunnels is een beveiligingsgerichte service voor tunneling van ontwikkelaars. In dit artikel leert u hoe dev tunnels worden beveiligd.

Overzicht

Voor het hosten en verbinden met een tunnel is standaard verificatie vereist met hetzelfde Microsoft-, Microsoft Entra-id- of GitHub-account dat de tunnel heeft gemaakt. Voor tunneling moeten uitgaande verbindingen worden gemaakt met de service die wordt gehost in Azure. Er zijn geen binnenkomende verbindingen vereist voor het gebruik van de service.

Domeinen

Toegang tot dev-tunnels kan worden beheerd door uitgaande toegang tot de volgende domeinen toe te staan of te weigeren:

  • Verificatie

    • github.com
    • login.microsoftonline.com
  • Dev-tunnels

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

De lijst met huidige [clusterId] waarden is beschikbaar op https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.

Doorsturen via het web

Tunnelpoorten met behulp van de HTTP(S)/WS(S)-protocollen kunnen rechtstreeks worden geopend via de opgegeven url voor het doorsturen van internet (bijvoorbeeld: https://tunnelid-3000.devtunnels.ms).

  • Onveilige clientverbindingen worden altijd automatisch bijgewerkt naar HTTPS/WSS.
  • HTTP Strict Transport Security (HSTS) is ingeschakeld met een maximale leeftijd van één jaar.
  • De minimale TLS-versie die door de service wordt ondersteund, is 1.2, waarbij TLS 1.3 de voorkeursversie is.
  • TLS-beëindiging wordt uitgevoerd bij inkomend verkeer van services met behulp van servicecertificaten die zijn uitgegeven door een Microsoft-CA.
    • Na TLS-beëindiging vindt het herschrijven van headers plaats. Dit is vereist voor veel scenario's voor het ontwikkelen van webtoepassingen.

Bescherming tegen phishing

Wanneer gebruikers voor het eerst verbinding maken met een URL voor het doorsturen via internet, krijgen ze een interstitiële antiphishingpagina te zien. De pagina wordt onder de volgende omstandigheden overgeslagen:

  • De aanvraag maakt gebruik van een andere methode dan GET
  • De aanvraagheader Accept bevat geen text/html
  • De aanvraag bevat de X-Tunnel-Skip-AntiPhishing-Page header
  • De aanvraag bevat de X-Tunnel-Authorization header
  • De gebruiker heeft de pagina al bezocht en op Doorgaan geklikt

Tunneltoegang

Tunnels en tunnelpoorten zijn standaard privé en alleen toegankelijk voor de gebruiker die de tunnel heeft gemaakt.

Als een tunnel of tunnelpoort zonder verificatie moet worden geopend, kan een toegangsbeheervermelding (ACE) worden toegevoegd (gebruik --allow-anonymous).

Tunneltoegang kan ook worden uitgebreid naar uw huidige Microsoft Entra-tenant (gebruik --tenant) of specifieke GitHub-organisaties (gebruik --organization); zie hieronder GitHub-organisatietoegang .

De CLI kan ook worden gebruikt om toegangstokens aan te vragen die beperkte toegang verlenen aan iedereen met het token (gebruik devtunnel token). Dit is een geavanceerde functie, maar kan nuttig zijn in specifieke situaties.

Er zijn momenteel vier typen tunneltoegangstokens beschikbaar:

  • Met een 'clienttoegangstoken' kan de bearer verbinding maken met alle poorten van de tunnel.
  • Met een 'hosttoegangstoken' kan de bearer de tunnel hosten en verbindingen accepteren, maar geen andere wijzigingen aanbrengen.
  • Met een toegangstoken voor poorten beheren kan de bearer poorten aan een tunnel toevoegen en verwijderen.
  • Met een 'beheertoegangstoken' kan de bearer alle bewerkingen op die tunnel uitvoeren, waaronder het instellen van toegangsbeheer, het hosten, verbinden en verwijderen van de tunnel.

Alle tokens zijn beperkt tot de huidige tunnel; ze verlenen geen toegang tot een van de andere tunnels van de huidige gebruiker, indien van toepassing. De tokens verlopen na enige tijd (momenteel 24 uur). Tokens kunnen alleen worden vernieuwd met behulp van een werkelijke gebruikersidentiteit met toegangsbeheerbereik tot de tunnel (niet alleen een beheertoegangstoken).

De meeste CLI-opdrachten kunnen een --access-token argument met een geschikt token accepteren als alternatief voor aanmelden.

Webclients kunnen een token doorgeven in een header om aanvragen voor een tunnel-URI te autoriseren:

X-Tunnel-Authorization: tunnel <TOKEN>

Tip

Dit is handig voor niet-interactieve clients omdat ze toegang hebben tot tunnels zonder dat anonieme toegang moet worden ingeschakeld. We gebruiken de X-Tunnel-Authorization header in plaats van de standaardheader Authorization om te voorkomen dat toepassingsspecifieke autorisatie wordt verstoord.

Zie de sectie Dev Tunnel-toegang beheren voor meer informatie over het beheren van tunneltoegang via de CLI.

Toegang tot GitHub-organisatie

Installeer de GitHub-app Dev Tunnels in de organisatie om tunnels te ondersteunen die toegang verlenen tot alle leden van een GitHub-organisatie. Dit geeft de Dev Tunnels-service toestemming om de lidmaatschapsstatus van gebruikers in die organisatie te controleren. (Dev Tunnels vereist geen opslagplaatsmachtigingen voor de organisatie.) Mogelijk moet u een beheerder in de GitHub-organisatie zijn om deze bewerking uit te voeren.

Verdere vragen

Als u na het bekijken van deze pagina nog vragen hebt, raadpleegt u Feedback en ondersteuning.