Klíče rozhraní API s vymezeným oborem

Pokud chcete, aby NuGet byl bezpečnějším prostředím pro distribuci balíčků, můžete převzít kontrolu nad klíči rozhraní API přidáním oborů.

Možnost poskytnout rozsah klíčům rozhraní API poskytuje lepší kontrolu nad rozhraními API. Můžete provádět následující akce:

  • Vytvořte několik klíčů rozhraní API s vymezeným oborem, které je možné použít pro různé balíčky s různými časovými rámci vypršení platnosti.
  • Bezpečné získání klíčů rozhraní API
  • Upravte existující klíče rozhraní API a změňte použitelnost balíčku.
  • Aktualizace nebo odstranění existujících klíčů rozhraní API bez narušení operací pomocí jiných klíčů

Proč podporujeme klíče rozhraní API s vymezeným oborem?

Podporujeme obory klíčů rozhraní API, které vám umožní mít jemněji odstupňovaná oprávnění. NuGet dříve nabídl jeden klíč rozhraní API pro účet a tento přístup měl několik nevýhod:

  • Jeden klíč rozhraní API pro řízení všech balíčků. S jedním klíčem rozhraní API, který se používá ke správě všech balíčků, je obtížné bezpečně sdílet klíč, když se více vývojářů podílí na různých balíčcích a při sdílení účtu vydavatele.
  • Všechna oprávnění nebo žádná. Každý, kdo má přístup ke klíči rozhraní API, má všechna oprávnění (publikování, nabízení a zrušení seznamu) v balíčcích. To často není žádoucí v prostředí s více týmy.
  • Kritický bod selhání Jeden klíč rozhraní API také znamená jediný bod selhání. Pokud dojde k ohrožení zabezpečení klíče, můžou být potenciálně ohroženy všechny balíčky přidružené k účtu. Aktualizace klíče rozhraní API je jediným způsobem, jak připojit únik a vyhnout se přerušení pracovního postupu CI/CD. Kromě toho může docházet k případům, kdy chcete odvolat přístup k klíči rozhraní API pro jednotlivce (například když zaměstnanec opustí organizaci). Neexistuje čistý způsob, jak to dnes zvládnout.

U klíčů rozhraní API s vymezeným oborem se snažíme tyto problémy vyřešit a zároveň se ujistit, že se žádný z existujících pracovních postupů nezalomí.

Získání klíče rozhraní API

  1. Pokud ho ještě nemáte, přihlaste se ke svému nuget.org účtu nebo si ho vytvořte.

  2. Vyberte své uživatelské jméno v pravém horním rohu a pak vyberte Klíče rozhraní API.

  3. Vyberte Vytvořit a zadejte název klíče.

  4. V části Vybrat obory vyberte Nasdílení změn.

  5. V části Vybrat vzor globu>balíčků zadejte *.

  6. Vyberte Vytvořit.

  7. Vyberte Kopírovat a zkopírujte nový klíč.

    Screenshot that shows the new API key with the Copy link.

Důležité

  • Vždy udržujte klíč rozhraní API tajným kódem. Klíč rozhraní API je jako heslo, které umožňuje každému spravovat balíčky vaším jménem. Pokud se klíč rozhraní API omylem odhalí, odstraňte ho nebo vygenerujte znovu.
  • Uložte klíč do zabezpečeného umístění, protože klíč později nemůžete zkopírovat. Pokud se vrátíte na stránku klíče rozhraní API, musíte klíč znovu vygenerovat a zkopírovat ho. Klíč rozhraní API můžete také odebrat, pokud už nechcete nasdílet balíčky.

Rozsah umožňuje vytvořit samostatné klíče rozhraní API pro různé účely. Každý klíč má časový rámec vypršení platnosti a klíč můžete nastavit na konkrétní balíčky nebo vzory globu. Každý klíč také definujete na konkrétní operace: Nasdílíte nové balíčky a verze balíčků, nasdílíte jenom nové verze balíčků nebo zrušíte seznam.

Prostřednictvím oboru můžete vytvořit klíče rozhraní API pro různé uživatele, kteří spravují balíčky pro vaši organizaci, aby měli jenom potřebná oprávnění.

Vytvoření klíčů rozhraní API s vymezeným oborem

Na základě vašich požadavků můžete vytvořit více klíčů rozhraní API. Klíč rozhraní API se může použít pro jeden nebo více balíčků, má různé obory, které udělují konkrétní oprávnění, a má přiřazené datum vypršení platnosti.

V následujícím příkladu máte klíč rozhraní API s názvem Contoso service CI , který lze použít k nabízení balíčků pro konkrétní Contoso.Service balíčky a je platný po dobu 365 dnů. Jedná se o typický scénář, kdy různé týmy ve stejné organizaci pracují na různých balíčcích a členové týmu mají k dispozici klíč, který jim uděluje oprávnění pouze pro balíček, na kterém pracují. Vypršení platnosti slouží jako mechanismus, který zabraňuje zastaralým nebo zapomenutým klíčům.

Create API keys

Použití vzorů globů

Pokud pracujete na více balíčcích a máte velký seznam balíčků, které chcete spravovat, můžete použít vzory globbingu a vybrat více balíčků společně. Pokud například chcete udělit konkrétním oborům klíč pro všechny balíčky, jejichž ID začíná Fabrikam.Service, můžete to udělat zadáním fabrikam.service.* do textového pole Vzor globu.

Create API keys - 2

Použití vzorů globů k určení oprávnění klíče rozhraní API platí také pro nové balíčky odpovídající vzoru globu. Pokud se například pokusíte nasdílet nový balíček s názvem Fabrikam.Service.Framework, můžete to udělat pomocí klíče vytvořeného dříve, protože balíček odpovídá vzoru fabrikam.service.*globu .

Bezpečné získání klíčů rozhraní API

Pro zabezpečení se nově vytvořený klíč nikdy na obrazovce nezobrazuje a je k dispozici pouze pomocí tlačítka Kopírovat . Podobně není klíč po aktualizaci stránky přístupný.

Create API keys - 3

Úprava existujících klíčů rozhraní API

Můžete také chtít aktualizovat oprávnění a obory klíčů beze změny samotného klíče. Pokud máte klíč s určitými obory pro jeden balíček, můžete použít stejné obory na jednom nebo mnoha dalších balíčcích.

Create API keys - 4

Aktualizace nebo odstranění existujících klíčů rozhraní API

Vlastník účtu se může rozhodnout aktualizovat klíč, v takovém případě oprávnění (v balíčcích), rozsah a vypršení platnosti zůstanou stejné, ale nový klíč se vydá, takže starý klíč bude nepoužitelný. To je užitečné při správě zastaralých klíčů nebo v případě, že existuje potenciál úniku klíčů rozhraní API.

Create API keys - 5

Tyto klíče můžete také odstranit, pokud už je nepotřebujete. Odstraněním klíče klíč odeberete a zneužitelný.

Nejčastější dotazy

Co se stane se starým (starším) klíčem rozhraní API?

Váš starý klíč rozhraní API (starší verze) bude fungovat a může fungovat tak dlouho, dokud ho chcete používat. Tyto klíče se ale vyřadí, pokud se k odeslání balíčku nepoužily déle než 365 dnů. Další podrobnosti najdete v blogovém příspěvku Změny klíčů rozhraní API s vypršenou platností. Tento klíč už nemůžete aktualizovat. Musíte odstranit starší klíč a místo toho vytvořit nový klíč s vymezeným oborem.

Poznámka:

Tento klíč má všechna oprávnění pro všechny balíčky a jeho platnost nikdy nevyprší. Měli byste zvážit odstranění tohoto klíče a vytvoření nových klíčů s vymezenými oprávněními a jednoznačnou platností.

Kolik klíčů rozhraní API můžu vytvořit?

Počet klíčů rozhraní API, které můžete vytvořit, není nijak omezený. Doporučujeme vám ale, abyste ho udrželi na spravovatelném počtu, abyste nemuseli mít mnoho zastaralých klíčů bez znalosti o tom, kde a kdo je používá.

Můžu odstranit starší klíč rozhraní API nebo přestat používat?

Ano. Můžete - a pravděpodobně byste měli odstranit starší klíč rozhraní API.

Můžu získat zpět klíč rozhraní API, který omylem odstraním?

Ne. Po odstranění můžete vytvořit pouze nové klíče. Není možné obnovit náhodně odstraněné klíče.

Funguje starý klíč rozhraní API při aktualizaci klíče rozhraní API?

Ne. Po aktualizaci klíče se vygeneruje nový klíč se stejným oborem, oprávněním a vypršením platnosti jako starý klíč. Starý klíč přestane existovat.

Můžu stávajícímu klíči rozhraní API udělit další oprávnění?

Obor nelze upravit, ale můžete upravit seznam balíčků, na který se vztahuje.

Návody vědět, jestli vypršela platnost některého z mých klíčů nebo jestli vypršela platnost?

Pokud vyprší platnost nějakého klíče, dáme vám vědět prostřednictvím upozornění v horní části stránky. Pošleme také e-mail s upozorněním držiteli účtu deset dní před vypršením platnosti klíče, abyste s ním mohli dobře pracovat předem.