Melindungi terhadap paket publik berbahaya
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Dengan sumber hulu Azure Artifacts, pengembang mendapatkan kenyamanan menggunakan umpan terpadu untuk menerbitkan dan menggunakan paket dari umpan Artefak dan registri publik populer seperti NuGet.org atau npmjs.com. Sebelumnya, umpan Artefak menggabungkan daftar versi paket yang tersedia dari umpan itu sendiri dan semua sumber hulu yang dikonfigurasi.
Versi Izinkan bersumber eksternal adalah fitur yang memungkinkan pengembang memilih apakah mereka ingin menggunakan versi paket yang bersumber secara eksternal. Ini mengatur paket mana yang dapat diakses dari registri publik untuk paket tertentu.
Saat Anda menonaktifkan tombol Izinkan Versi Eksternal, versi dari registri publik diblokir dan menjadi tidak tersedia untuk diunduh. Ini menambahkan lapisan keamanan tambahan dengan mencegah paparan paket yang berpotensi berbahaya dari registri publik.
Namun, jika pengguna lebih suka, mereka dapat mengaktifkan tombol Izinkan Versi Eksternal untuk mengizinkan akses ke dan menggunakan paket dari registri publik.
Catatan
Pengaturan ini tidak akan membuat perubahan pada versi paket apa pun yang sudah disimpan ke umpan. Akses ke versi paket ini tidak akan berubah sebagai akibat dari perubahan pengaturan ini.
Skenario yang berlaku
Bagian berikut mengilustrasikan berbagai skenario umum di mana pengaturan versi eksternal memblokir versi paket yang bersumber secara eksternal, dan skenario lain di mana tidak perlu memblokir akses ke paket publik.
Versi publik diblokir
Versi paket privat dibuat publik
Dalam skenario ini, tim memiliki paket privat yang dipublikasikan. Pengaturan versi eksternal dalam hal ini akan menyebabkan umpan memblokir konsumsi versi baru apa pun dengan nama paket tersebut dari sumber publik.
Memiliki paket privat dan publik
Dalam skenario ini, jika tim menggunakan kombinasi paket privat dan publik, melarang paket bersumber eksternal memblokir versi paket baru apa pun dari registri publik.
Versi publik tidak akan diblokir
Semua paket bersifat privat*
Jika semua paket yang ada bersifat privat, dan tim tidak memiliki rencana untuk menggunakan paket publik apa pun, pengaturan versi eksternal tidak berpengaruh pada alur kerja tim dalam skenario ini.
Semua paket bersifat publik
Dalam skenario ini, jika tim secara eksklusif menggunakan paket publik, baik dari registri publik atau repositori sumber terbuka lainnya, pengaturan tidak memengaruhi alur kerja mereka dengan cara apa pun.
Paket publik dibuat privat
Dalam situasi ini, ketika paket publik dikonversi ke paket privat, pengaturan versi eksternal tidak memengaruhi alur kerja tim dengan cara apa pun.
Perbolehkan versi eksternal
Catatan
Anda harus menjadi Pemilik Umpan untuk mengizinkan versi yang bersumber secara eksternal. Untuk informasi selengkapnya, lihat Izin umpan.
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Artefak, lalu pilih umpan Anda dari menu dropdown.
Pilih paket Anda, lalu pilih tombol elipsis untuk opsi lainnya. Pilih Izinkan versi bersumber eksternal.
Pilih tombol alih untuk memperbolehkan versi eksternal. Pilih Tutup saat Anda selesai.
Mengizinkan versi eksternal menggunakan REST API
Perbolehkan versi eksternal menggunakan PowerShell
Buat token akses pribadi dengan Kemasan>Baca, tulis, & kelola izin.
Buat variabel lingkungan untuk token akses pribadi Anda.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
Konversikan token akses pribadi Anda ke string yang dikodekan baser64 dan buat header permintaan HTTP.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }
Buat url titik akhir Anda. Contoh: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1
Umpan cakupan proyek:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
Umpan cakupan organisasi:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
Jalankan perintah berikut untuk mengambil status perilaku upstream paket Anda. $url
dan $headers
adalah variabel yang sama dengan yang kami gunakan di bagian sebelumnya.
Invoke-RestMethod -Uri $url -Headers $headers