Keamanan
Terowongan dev adalah layanan penerowongan pengembang yang berfokus pada keamanan. Dalam artikel ini, pelajari tentang bagaimana terowongan dev diamankan.
Gambaran Umum
Secara default, menghosting dan menyambungkan ke terowongan memerlukan autentikasi dengan akun Microsoft, MICROSOFT Entra ID, atau GitHub yang sama yang membuat terowongan. Penerowongan memerlukan koneksi keluar untuk dibuat ke layanan yang dihosting di Azure. Tidak ada koneksi masuk yang diperlukan untuk menggunakan layanan.
Domain
Akses ke terowongan dev dapat dikontrol dengan mengizinkan atau menolak akses keluar ke domain berikut:
Autentikasi
github.com
login.microsoftonline.com
Terowongan Dev
global.rel.tunnels.api.visualstudio.com
[clusterId].rel.tunnels.api.visualstudio.com
[clusterId]-data.rel.tunnels.api.visualstudio.com
*.[clusterId].devtunnels.ms
*.devtunnels.ms
Daftar nilai saat ini [clusterId]
tersedia di https://global.rel.tunnels.api.visualstudio.com/api/v1/clusters.
Penerusan web
Port terowongan menggunakan protokol HTTP(S)/WS(S) dapat diakses langsung melalui url penerusan web yang disediakan (misalnya: https://tunnelid-3000.devtunnels.ms
).
- Koneksi klien yang tidak aman selalu ditingkatkan secara otomatis ke HTTPS/WSS.
- HTTP Strict Transport Security (HSTS) diaktifkan dengan usia maksimal satu tahun.
- Versi TLS minimum yang didukung layanan adalah 1.2, dengan TLS 1.3 menjadi versi yang disukai.
- Penghentian TLS dilakukan pada ingress layanan menggunakan sertifikat layanan, yang dikeluarkan oleh Microsoft CA.
- Setelah penghentian TLS, penulisan ulang header terjadi. Ini diperlukan untuk banyak skenario pengembangan aplikasi web.
Perlindungan anti-phishing
Saat menyambungkan ke url penerusan web untuk pertama kalinya, pengguna disajikan dengan halaman anti-phishing interstisial. Halaman dilewati dalam keadaan berikut:
- Permintaan menggunakan metode selain
GET
- Header permintaan
Accept
tidak berisitext/html
- Permintaan berisi
X-Tunnel-Skip-AntiPhishing-Page
header - Permintaan berisi
X-Tunnel-Authorization
header - Pengguna telah mengunjungi halaman dan mengklik lanjutkan
Akses terowongan
Secara default, terowongan dan port terowongan bersifat pribadi dan hanya dapat diakses oleh pengguna yang membuat terowongan.
Jika port terowongan atau terowongan memang perlu diakses tanpa autentikasi, entri kontrol Akses anonim (ACE) dapat ditambahkan (gunakan --allow-anonymous
).
Akses terowongan juga dapat diperluas ke penyewa Microsoft Entra Anda saat ini (gunakan --tenant
) atau organisasi GitHub tertentu (gunakan --organization
); untuk yang terakhir lihat Akses Organisasi GitHub di bawah ini.
CLI juga dapat digunakan untuk meminta token akses yang memberikan akses terbatas kepada siapa pun yang memegang token (gunakan devtunnel token
). Ini adalah fitur lanjutan tetapi dapat berguna dalam situasi tertentu.
Saat ini, empat jenis token akses terowongan tersedia:
- "Token akses klien" memungkinkan pembawa untuk terhubung ke port terowongan apa pun.
- "Token akses host" memungkinkan pembawa untuk menghosting terowongan dan menerima koneksi, tetapi tidak membuat perubahan lain padanya.
- "Mengelola token akses port" memungkinkan pembawa untuk menambahkan dan menghapus port pada terowongan.
- "Token akses manajemen" memungkinkan pembawa untuk melakukan operasi apa pun di terowongan itu, termasuk mengatur kontrol akses, menghosting, menghubungkan, dan menghapus terowongan.
Semua token terbatas pada terowongan saat ini; mereka tidak memberikan akses ke terowongan lain pengguna saat ini, jika ada. Token kedaluwarsa setelah beberapa waktu (saat ini 24 jam). Token hanya dapat di-refresh menggunakan identitas pengguna aktual yang memiliki akses kelola cakupan ke terowongan (bukan hanya token akses manajemen).
Sebagian besar perintah CLI dapat menerima --access-token
argumen dengan token yang sesuai sebagai alternatif untuk masuk.
Klien web dapat meneruskan token di header untuk mengotorisasi permintaan ke URI terowongan:
X-Tunnel-Authorization: tunnel <TOKEN>
Tip
Ini berguna untuk klien non-interaktif karena memungkinkan mereka mengakses terowongan tanpa memerlukan akses anonim untuk diaktifkan. Kami menggunakan X-Tunnel-Authorization
header alih-alih header standar Authorization
untuk mencegah berpotensi mengganggu otorisasi khusus aplikasi.
Lihat bagian Mengelola akses terowongan dev untuk mempelajari selengkapnya tentang cara mengelola akses terowongan melalui CLI.
Akses Organisasi GitHub
Untuk mendukung terowongan yang memberikan akses ke semua anggota organisasi GitHub, instal aplikasi Dev Tunnels GitHub di organisasi. Itu memberikan izin layanan Dev Tunnels untuk memeriksa status keanggotaan pengguna di organisasi tersebut. (Dev Tunnels tidak memerlukan izin repositori ke org.) Anda mungkin perlu menjadi admin di organisasi GitHub untuk melakukan operasi ini.
Pertanyaan lebih lanjut
Jika setelah meninjau halaman ini, Anda memiliki pertanyaan lebih lanjut, lihat Umpan Balik dan dukungan.