Sicherheit
Dev Tunnels ist ein sicherheitsorientierter Entwicklertunneldienst. In diesem Artikel erfahren Sie, wie Entwicklertunnel gesichert sind.
Übersicht
Standardmäßig erfordert das Hosten und Herstellen einer Verbindung mit einem Tunnel eine Authentifizierung mit demselben Microsoft-, Microsoft Entra-ID- oder GitHub-Konto, das den Tunnel erstellt hat. Für Tunneling müssen ausgehende Verbindungen mit dem in Azure gehosteten Dienst hergestellt werden. Für die Verwendung des Diensts sind keine eingehenden Verbindungen erforderlich.
Domänen
Der Zugriff auf Entwicklertunnel kann gesteuert werden, indem der ausgehende Zugriff auf die folgenden Aktionen zugelassen oder verweigert wird Standard s:
Authentifizierung
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
Die Liste der aktuellen [clusterId]
Werte ist unter https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.
Webweiterleitung
Tunnelports mit den HTTP(S)/WS(S)-Protokollen können direkt über die bereitgestellte Webweiterleitungs-URL (z. B.: ) aufgerufen werden. https://tunnelid-3000.devtunnels.ms
- Unsichere Clientverbindungen werden immer automatisch auf HTTPS/WSS aktualisiert.
- HTTP Strict Transport Security (HSTS) ist mit einem Jahres-Max-Alter aktiviert.
- Die minimale TLS-Version, die der Dienst unterstützt, ist 1.2, wobei TLS 1.3 die bevorzugte Version ist.
- TLS-Beendigung erfolgt beim Dienstausgang mithilfe von Dienstzertifikaten, die von einer Microsoft-Zertifizierungsstelle ausgestellt wurden.
- Nach der Beendigung von TLS erfolgt die Kopfzeilenumschreibung. Dies ist für viele Webanwendungsentwicklungsszenarien erforderlich.
Anti-Phishing-Schutz
Beim erstmaligen Herstellen einer Verbindung mit einer Webweiterleitungs-URL werden Benutzern eine Interstitial-Antiphishingseite angezeigt. Die Seite wird unter den folgenden Umständen übersprungen:
- Die Anforderung verwendet eine andere Methode als
GET
- Der Anforderungsheader
Accept
enthält nichttext/html
- Die Anforderung enthält den
X-Tunnel-Skip-AntiPhishing-Page
Header. - Die Anforderung enthält den
X-Tunnel-Authorization
Header. - Der Benutzer hat die Seite bereits besucht und auf "Weiter" geklickt.
Tunnelzugriff
Tunnel und Tunnelports sind standardmäßig privat und nur für den Benutzer zugänglich, der den Tunnel erstellt hat.
Wenn auf einen Tunnel- oder Tunnelport ohne Authentifizierung zugegriffen werden muss, kann ein Zugriffssteuerungseintrag (Allow-anonymous Access Control Entry, ACE) hinzugefügt werden (Verwenden --allow-anonymous
).
Der Tunnelzugriff kann auch auf Ihren aktuellen Microsoft Entra-Mandanten (Verwendung --tenant
) oder bestimmte GitHub-Organisationen (Verwendung --organization
) erweitert werden. Letzteres finden Sie unten unter GitHub Organization Access .
Die CLI kann auch verwendet werden, um Zugriffstoken anzufordern, die eingeschränkten Zugriff auf alle Personen gewähren, die das Token halten (Verwenden devtunnel token
). Dies ist ein erweitertes Feature, kann aber in bestimmten Situationen nützlich sein.
Derzeit sind vier Arten von Tunnelzugriffstoken verfügbar:
- Ein "Clientzugriffstoken" ermöglicht dem Bearer, eine Verbindung mit allen Ports des Tunnels herzustellen.
- Ein "Hostzugriffstoken" ermöglicht dem Bearer das Hosten des Tunnels und akzeptiert Verbindungen, nimmt jedoch keine weiteren Änderungen daran vor.
- Ein "Verwalten des Ports-Zugriffstokens" ermöglicht dem Bearer das Hinzufügen und Löschen von Ports in einem Tunnel.
- Ein "Verwaltungszugriffstoken" ermöglicht es dem Bearer, alle Vorgänge in diesem Tunnel auszuführen, einschließlich festlegen von Zugriffssteuerungen, Hosting, Verbinden und Löschen des Tunnels.
Alle Token sind auf den aktuellen Tunnel beschränkt; sie gewähren keinen Zugriff auf die anderen Tunnel des aktuellen Benutzers, falls vorhanden. Die Token laufen nach einiger Zeit ab (derzeit 24 Stunden). Token können nur mithilfe einer tatsächlichen Benutzeridentität aktualisiert werden, die über Zugriff auf den Verwaltungsbereich auf den Tunnel verfügt (nicht nur ein Verwaltungszugriffstoken).
Die meisten CLI-Befehle können ein --access-token
Argument mit einem geeigneten Token als Alternative zur Anmeldung akzeptieren.
Webclients können ein Token in einem Header übergeben, um Anforderungen an einen Tunnel-URI zu autorisieren:
X-Tunnel-Authorization: tunnel <TOKEN>
Tipp
Dies ist nützlich für nicht interaktive Clients, da sie auf Tunnel zugreifen können, ohne dass anonymer Zugriff aktiviert werden muss. Wir verwenden den X-Tunnel-Authorization
Header anstelle des Standardheaders Authorization
, um potenziell einen Eingriff in die anwendungsspezifische Autorisierung zu verhindern.
Weitere Informationen zum Verwalten des Tunnelzugriffs über die CLI finden Sie im Abschnitt "Verwalten des Dev-Tunnelzugriffs ".
GitHub-Organisationszugriff
Um Tunnel zu unterstützen, die Zugriff auf alle Mitglieder einer GitHub-Organisation gewähren, installieren Sie die GitHub-App Dev Tunnels in der Organisation. Dadurch erhält der Dev Tunnels-Dienst die Berechtigung, den Mitgliedschaftsstatus der Benutzer in dieser Organisation zu überprüfen. (Dev Tunnels erfordert keine Repositoryberechtigungen für die Organisation.) Möglicherweise müssen Sie ein Administrator in der GitHub-Organisation sein, um diesen Vorgang auszuführen.
Weitere Fragen
Wenn Sie nach der Überprüfung dieser Seite weitere Fragen haben, lesen Sie Feedback und Support.If after reviewing this page, you have further questions, see Feedback and support.