Melindungi terhadap paket publik berbahaya
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Dengan sumber hulu Azure Artifacts, pengembang mendapatkan kemudahan dengan menggunakan umpan terpadu untuk menerbitkan dan mengonsumsi paket dari umpan Artifacts dan registri publik populer seperti NuGet.org atau npmjs.com.
Perbolehkan versi yang bersumber secara eksternal
Fitur ini memungkinkan pengembang mengontrol apakah mereka ingin menggunakan versi paket dari registri publik seperti NuGet.org atau npmjs.com.
Setelah tombol Izinkan Versi Eksternal diaktifkan untuk paket tertentu, versi dari registri publik tersedia untuk diunduh. Secara default, opsi ini dinonaktifkan, menambahkan lapisan keamanan tambahan dengan mencegah paparan paket yang berpotensi berbahaya dari registri publik. Anda harus menjadi Pemilik Umpan untuk mengaktifkan memungkinkan fitur versi yang bersumber secara eksternal.
Catatan
Mengubah pengaturan ini tidak memengaruhi versi paket yang sudah disimpan ke umpan. Versi tersebut akan tetap dapat diakses terlepas dari pengaturan ini.
Skenario yang berlaku
Bagian berikut menguraikan skenario umum di mana versi eksternal (paket dari registri publik) baik diblokir maupun diizinkan untuk disimpan dalam saluran. Di sisa artikel ini, kami menyebut paket dari registri publik sebagai paket dan paket publik dalam umpan Azure Artifacts sebagai paket privat.
Skenario 1: 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.
Skenario 2: 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 diubah menjadi 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 Feed 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 endpoint 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 berskala 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"
- Memperoleh perilaku aliran data hulu
- Mengatur perilaku pengunggahan upstream
- Menghapus perilaku upstreaming
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