Kötü amaçlı genel paketlere karşı koruma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Artifacts yukarı akış kaynaklarıyla geliştiriciler, Yapıt akışlarından ve NuGet.org veya npmjs.com gibi popüler genel kayıt defterlerinden paketleri yayımlamak ve kullanmak için birleşik akış kullanma kolaylığı elde eder. Daha önce Yapıt akışları hem akışın kendisinden hem de yapılandırılmış tüm yukarı akış kaynaklarından kullanılabilir paket sürümlerinin listesini bir araya getiriyor.
Dış kaynaklı sürümlere izin ver, geliştiricilerin dış kaynaklı paket sürümlerini kullanmak isteyip istemediklerini seçmesine olanak tanıyan bir özelliktir. Belirli paketler için genel kayıt defterlerinden erişilebilen paketleri yönetir.
Dış Sürümlere İzin Ver iki durumlu düğmesini devre dışı bırakırsanız, genel kayıt defterindeki sürümler engellenir ve indirilemez duruma gelir. Bu, genel kayıt defterlerinden gelen kötü amaçlı olabilecek paketlerin açığa çıkmasını önleyerek ek bir güvenlik katmanı ekler.
Ancak kullanıcılar tercih ederse, genel kayıt defterlerinden paketlere erişim ve kullanma izni vermek için Dış Sürümlere İzin Ver iki durumlu düğmesini etkinleştirebilir.
Not
Bu ayar, akışa zaten kaydedilmiş olan paket sürümlerinde değişiklik yapmaz. Bu ayarın değiştirilmesi sonucunda bu paket sürümlerine erişim değişmez.
Uygulanabilir senaryolar
Aşağıdaki bölümde, dış sürüm ayarının dış kaynaklı paket sürümlerini engellediği çeşitli yaygın senaryolar ve genel paketlere erişimi engellemeye gerek olmayan diğer senaryolar gösterilmektedir.
Genel sürümler engellendi
Genel kullanıma açık özel paket sürümü
Bu senaryoda, bir ekibin genel kullanıma açık özel bir paketi vardır. Bu durumda dış sürümler ayarı, akışın ortak kaynaktan bu paket adına sahip yeni sürümlerin tüketimini engellemesine neden olur.
Hem özel hem de genel paketlere sahip olma
Bu senaryoda, bir ekip özel ve genel paketlerin birleşimini kullanıyorsa, dış kaynaklı paketlere izin verme, genel kayıt defterinden yeni paket sürümlerini engeller.
Genel sürümler engellenmez
Tüm paketler özeldir*
Mevcut tüm paketler özelse ve ekibin genel paketleri kullanma planı yoksa, dış sürümler ayarının bu senaryoda ekibin iş akışı üzerinde hiçbir etkisi olmaz.
Tüm paketler geneldir
Bu senaryoda, ister genel kayıt defterinden ister diğer açık kaynak depolarından olsun, ekip yalnızca genel paketleri kullanıyorsa, bu ayar iş akışını hiçbir şekilde etkilemez.
Özel yapılan genel paket
Bu durumda, genel paket özel pakete dönüştürüldüğünde dış sürümler ayarı ekibin iş akışını hiçbir şekilde etkilemez.
Dış sürümlere izin ver
Not
Dış kaynaklı sürümlere izin vermek için Akış Sahibi olmanız gerekir. Daha fazla bilgi için bkz . Akış izinleri.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
Yapıtlar'ı seçin ve ardından açılan menüden akışınızı seçin.
Paketinizi seçin ve ardından diğer seçenekler için üç nokta düğmesini seçin. Dış kaynaklı sürümlere izin ver'i seçin.
Dış sürümlere izin vermek için iki durumlu düğmeyi seçin. İşiniz bittiğinde Kapat'ı seçin.
REST API kullanarak dış sürümlere izin ver
PowerShell kullanarak dış sürümlere izin ver
Paketleme>Okuma, yazma ve yönetme izinleriyle kişisel erişim belirteci oluşturun.
Kişisel erişim belirteciniz için bir ortam değişkeni oluşturun.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
Kişisel erişim belirtecinizi baser64 ile kodlanmış dizeye dönüştürün ve HTTP isteği üst bilgisini oluşturun.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }
Uç nokta URL'nizi oluşturma. Örnek: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1
Proje kapsamlı akış:
$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"
Kuruluş kapsamlı akış:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
Paketinizin yukarı akış davranış durumunu almak için aşağıdaki komutu çalıştırın. $url
ve $headers
önceki bölümde kullandığımız değişkenlerle aynıdır.
Invoke-RestMethod -Uri $url -Headers $headers