Megosztás a következőn keresztül:


Védelem a rosszindulatú nyilvános csomagok ellen

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Az Azure Artifacts felsőbb rétegbeli forrásaival a fejlesztők egységes hírcsatorna használatával tehetnek közzé és használhatnak csomagokat az Artifact-hírcsatornákból és a népszerű nyilvános adatbázisokból, például NuGet.org vagy npmjs.com. Korábban az Artifact-hírcsatornák összevonták az elérhető csomagverziók listáját mind a hírcsatornából, mind az összes konfigurált felsőbb rétegbeli forrásból.

Egy hírcsatorna tartalmát bemutató ábra.

A Külső forrású verziók engedélyezése funkcióval a fejlesztők kiválaszthatják, hogy külső forrású csomagverziókat szeretnének-e használni. Meghatározza, hogy mely csomagok érhetők el az egyes csomagok nyilvános nyilvántartásaiból.

Ha letiltja a Külső verziók engedélyezése kapcsolót, a nyilvános beállításjegyzékből származó verziók le lesznek tiltva, és elérhetetlenné válnak a letöltéshez. Ez további biztonsági réteget biztosít azáltal, hogy megakadályozza a nyilvános adatbázisokból származó potenciálisan rosszindulatú csomagoknak való kitettséget.

Ha azonban a felhasználók szeretnék, engedélyezhetik a Külső verziók engedélyezése kapcsolót a nyilvános adatbázisokból származó csomagok elérésének és felhasználásának engedélyezéséhez.

Feljegyzés

Ez a beállítás nem módosítja a már a hírcsatornába mentett csomagverziókat. A beállítás módosítása miatt a csomagverziókhoz való hozzáférés nem változik.

Alkalmazható forgatókönyvek

Az alábbi szakasz bemutatja azokat a gyakori forgatókönyveket, amelyekben a külső verzió beállítása letiltja a külső forrású csomagverziókat, valamint azokat az egyéb forgatókönyveket, amelyekben nincs szükség a nyilvános csomagokhoz való hozzáférés letiltására.

A nyilvános verziók le vannak tiltva

Nyilvánossá tett privát csomagverzió

Ebben a forgatókönyvben a csapat egy privát csomagtal rendelkezik, amelyet nyilvánossá tettek. Ebben az esetben a külső verziók beállítása miatt a hírcsatorna letiltja az adott csomagnévvel rendelkező új verziók használatát egy nyilvános forrásból.

Egy nyilvánosan elérhető belső csomagverziót bemutató ábra.

Privát és nyilvános csomagok használata

Ebben a forgatókönyvben, ha egy csapat privát és nyilvános csomagok kombinációját használja, a külső forrásból származó csomagok letiltása blokkolja a nyilvános beállításjegyzék új csomagverzióit.

Az elérhető privát és nyilvános csomagokat bemutató ábra.

A nyilvános verziók nem lesznek letiltva

Minden csomag privát*

Ha az összes meglévő csomag privát, és a csapat nem tervezi nyilvános csomagok használatát, a külső verziók beállítása nincs hatással a csapat munkafolyamatára ebben a forgatókönyvben.

Csak privát csomagokat tartalmazó hírcsatornát bemutató ábra.

Minden csomag nyilvános

Ebben az esetben, ha a csapat kizárólag nyilvános csomagokat használ, akár a nyilvános beállításjegyzékből, akár más nyílt forráskódú adattárakból, a beállítás semmilyen módon nem befolyásolja a munkafolyamatot.

Csak nyilvános csomagokat tartalmazó hírcsatornát bemutató ábra.

Nyilvános csomag privátként

Ebben az esetben, ha egy nyilvános csomagot privát csomaggá alakít át, a külső verziók beállítása semmilyen módon nem befolyásolja a csapat munkafolyamatát.

Egy nyilvánosról privátra konvertált csomagot bemutató ábra.

Külső verziók engedélyezése

Feljegyzés

A külső forrású verziók engedélyezéséhez hírcsatorna-tulajdonosnak kell lennie. További információ: Hírcsatorna-engedélyek.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza az Összetevők lehetőséget, majd válassza ki a hírcsatornát a legördülő menüből.

  3. Válassza ki a csomagot, majd a három pont gombra kattintva további lehetőségeket. Válassza a Külső forrású verziók engedélyezése lehetőséget.

    Képernyőkép a külső forrású verziók engedélyezéséről.

  4. A külső verziók engedélyezéséhez válassza a váltógombot. Ha végzett, válassza a Bezárás lehetőséget.

    Képernyőkép a külső verziók engedélyezéséről.

Külső verziók engedélyezése a REST API használatával

Külső verziók engedélyezése a PowerShell használatával

  1. Hozzon létre egy személyes hozzáférési jogkivonatot a Csomagolás>olvasása, írása és kezelése engedélyekkel.

    Képernyőkép a csomagolási engedélyek kiválasztásáról.

  2. Hozzon létre egy környezeti változót a személyes hozzáférési jogkivonathoz.

    $env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
    
  3. Konvertálja a személyes hozzáférési jogkivonatot baser64 kódolású sztringgé, és hozza létre a HTTP-kérés fejlécét.

    $token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar")))
    $headers = @{
        Authorization = "Basic $token"
    }
    
  4. Hozza létre a végpont URL-címét. Példa: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1

    • Projekt hatókörű hírcsatorna:

      $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"
      
    • Szervezeti hatókörű hírcsatorna:

      $url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
      

Futtassa a következő parancsot a csomag felsőbb rétegbeli viselkedési állapotának lekéréséhez. $url és $headers ugyanazok a változók, amelyeket az előző szakaszban használtunk.

Invoke-RestMethod -Uri $url -Headers $headers