Zabezpečení
Vývojové tunely jsou služba tunelového propojení zaměřená na zabezpečení. V tomto článku se dozvíte, jak jsou vývojové tunely zabezpečené.
Přehled
Ve výchozím nastavení vyžaduje hostování a připojení k tunelu ověřování pomocí stejného účtu Microsoft, Microsoft Entra ID nebo účtu GitHub, který tunel vytvořil. Tunelování vyžaduje, aby odchozí připojení byla provedena ve službě hostované v Azure. K používání služby nejsou nutná žádná příchozí připojení.
Domény
Přístup k vývojovými tunely je možné řídit povolením nebo odepřením odchozího přístupu k následujícím doménám:
Ověřování
github.com
login.microsoftonline.com
Vývojové tunely
global.rel.tunnels.api.visualstudio.com
[clusterId].rel.tunnels.api.visualstudio.com
[clusterId]-data.rel.tunnels.api.visualstudio.com
*.[clusterId].devtunnels.ms
*.devtunnels.ms
Seznam aktuálních [clusterId]
hodnot je k dispozici na adrese https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.
Přeposílání webu
K portům tunelu pomocí protokolů HTTP(S)/WS(S) je možné přistupovat přímo přes zadanou adresu URL pro přesměrování webu (například: https://tunnelid-3000.devtunnels.ms
).
- Nezabezpečená klientská připojení se vždy automaticky upgradují na HTTPS/WSS.
- Služba HTTP Strict Transport Security (HSTS) je povolená s jedním ročním maximálním věkem.
- Minimální verze protokolu TLS, kterou služba podporuje, je 1.2, přičemž upřednostňovanou verzí je tls 1.3.
- Ukončení protokolu TLS se provádí v příchozím přenosu dat služby pomocí certifikátů služeb vydaných certifikační autoritou Microsoftu.
- Po ukončení protokolu TLS probíhá přepis hlaviček. To se vyžaduje pro mnoho scénářů vývoje webových aplikací.
Ochrana proti útokům phishing
Při prvním připojování k adrese URL pro přesměrování webu se uživatelům zobrazí intersticiální anti-phishingová stránka. Stránka se přeskočí za následujících okolností:
- Požadavek používá jinou metodu než
GET
- Hlavička požadavku
Accept
neobsahujetext/html
- Požadavek obsahuje hlavičku
X-Tunnel-Skip-AntiPhishing-Page
. - Požadavek obsahuje hlavičku
X-Tunnel-Authorization
. - Uživatel už stránku navštívil a kliknul na pokračovat.
Přístup k tunelu
Ve výchozím nastavení jsou tunely a porty tunelu soukromé a přístupné pouze pro uživatele, který tunel vytvořil.
Pokud je potřeba získat přístup k tunelu nebo portu tunelu bez ověřování, je možné přidat (použít --allow-anonymous
) položku řízení přístupu (ACE).
Přístup k tunelu je možné rozšířit také na vašeho aktuálního tenanta Microsoft Entra (použití --tenant
) nebo konkrétní organizace GitHubu (použijte --organization
), kde najdete níže uvedený přístup k organizaci GitHubu.
Rozhraní příkazového řádku se dá použít také k vyžádání přístupových tokenů, které udělují omezený přístup komukoli, kdo token drží (použijte devtunnel token
). Jedná se o pokročilou funkci, ale může být užitečná v konkrétních situacích.
V současné době jsou k dispozici čtyři typy přístupových tokenů tunelu:
- "Přístupový token klienta" umožňuje nosné připojení k jakýmkoli portům tunelu.
- "Přístupový token hostitele" umožňuje nosné hostování tunelu a přijímat připojení, ale ne provádět žádné další změny.
- "Přístupový token pro správu portů" umožňuje nosné sadě přidávat a odstraňovat porty v tunelu.
- "Přístupový token pro správu" umožňuje nosný provádět všechny operace na daném tunelu, včetně nastavení řízení přístupu, hostování, připojení a odstranění tunelu.
Všechny tokeny jsou omezeny na aktuální tunel; neudělují přístup k žádnému z jiných tunelů aktuálního uživatele, pokud existuje. Platnost tokenů vyprší po nějaké době (aktuálně 24 hodin). Tokeny je možné aktualizovat pouze pomocí skutečné identity uživatele, která má přístup ke tunelu v oboru správy (nejen přístupový token pro správu).
Většina příkazů rozhraní příkazového řádku může jako alternativu k přihlášení přijmout --access-token
argument s odpovídajícím tokenem.
Webové klienty můžou předat token v hlavičce pro autorizaci požadavků na identifikátor URI tunelu:
X-Tunnel-Authorization: tunnel <TOKEN>
Tip
To je užitečné pro neinteraktivní klienty, protože jim umožňuje přístup k tunelům bez nutnosti povolit anonymní přístup. Hlavičku X-Tunnel-Authorization
používáme místo standardní Authorization
hlavičky, abychom zabránili potenciálnímu narušení autorizace specifické pro aplikaci.
Další informace o správě přístupu k tunelu prostřednictvím rozhraní příkazového řádku najdete v části Správa přístupu k vývojovému tunelu.
Přístup k organizaci GitHubu
Pokud chcete podporovat tunely, které udělují přístup všem členům organizace GitHubu, nainstalujte v organizaci aplikaci Dev Tunnels GitHub. To službě Dev Tunnels dává oprávnění ke kontrole stavu členství uživatelů v dané organizaci. (Dev Tunnels nevyžaduje oprávnění úložiště pro organizaci.) K provedení této operace možná budete muset být správcem v organizaci GitHubu.
Další otázky
Pokud po kontrole této stránky máte další otázky, podívejte se na zpětnou vazbu a podporu.