S vymezeným oborem klíče rozhraní APIScoped API keys

Chcete-li lépe zabezpečené prostředí pro distribuci balíčku NuGet, může převzít kontrolu nad klíči rozhraní API přidáním oborů.To make NuGet a more secure environment for package distribution, you can take control of the API keys by adding scopes.

Schopnost poskytovat nastavit obor na klíči rozhraní API poskytují lepší kontrolu rozhraní API.The ability to provide scope to your API keys give you better control on your APIs. Můžete:You can:

  • Vytvoření více vymezených klíče rozhraní API, které lze použít pro jiné balíčky s různou časových rámců při vypršení platnosti.Create multiple scoped API keys that can be used for different packages with varying expiration timeframes.
  • Získání klíčů rozhraní API zabezpečené.Obtain API keys securely.
  • Upravte existující klíče rozhraní API, chcete-li změnit balíček použitelnosti.Edit existing API keys to change package applicability.
  • Aktualizovat nebo odstranit existující klíče rozhraní API bez bránících operací pomocí dalších klíčů.Refresh or delete existing API keys without hampering operations using other keys.

Proč podporujeme s vymezeným oborem klíče rozhraní API?Why do we support scoped API keys?

Podporujeme obory klíče rozhraní API vám umožní mít udělená oprávnění dál odstupňovat.We support scopes for API keys to allow you to have more fine-grained permissions. Dříve NuGet nabízí jeden klíč rozhraní API pro účet a tento přístup má několik nevýhody:Previously, NuGet offered a single API key for an account, and that approach had several drawbacks:

  • Jeden klíč rozhraní API k řízení všech balíčků.One API key to control all packages. Pomocí jednoho klíče rozhraní API, který se používá ke správě všech balíčků je obtížné bezpečně sdílet klíč při více vývojářů, které jsou spojené s různými balíčky a při sdílení vydavatelského účtu.With a single API key that is used to manage all packages, it is difficult to securely share the key when multiple developers are involved with different packages, and when they share a publisher account.
  • Všechna oprávnění, nebo žádný.All permissions or none. Každý, kdo má přístup ke klíči rozhraní API má všechna oprávnění (publikovat, nabízených oznámení a zrušení seznamu) na balíčky.Anyone with access to the API key has all permissions (publish, push and un-list) on the packages. To je často žádoucí v prostředí s více týmy.This is often not desirable in environment with multiple teams.
  • Jeden bod selhání.Single point of failure. Jeden klíč rozhraní API také znamená, že jediný bod selhání.A single API key also means a single point of failure. Pokud klíče je ohrožena všech balíčků přidružených k účtu může potenciálně dojít k ohrožení.If the key is compromised, all packages associated with the account could potentially be compromised. Aktualizovat klíč rozhraní API je jediný způsob, jak připojit nevracení paměti a předešlo výpadkům při pracovního postupu CI/CD.Refreshing the API key is the only way to plug the leak and avoid an interruption to your CI/CD workflow. Kromě toho můžou nastat případy Pokud chcete odvolat přístup ke klíči rozhraní API pro jednotlivce (například když zaměstnanec odejde z organizace).In addition, there may be cases when you want to revoke access to the API key for an individual (for example, when an employee leaves the organization). Není čistý způsob, jak toto zpracování ještě dnes.There isn’t a clean way to handle this today.

S klíči rozhraní API s vymezeným oborem Snažíme se vyřešit tyto problémy při a ujistěte se, že žádná z stávajících pracovních postupů přerušit.With scoped API keys, we try to address these problems while making sure that none of the existing workflows break.

Získání klíče rozhraní APIAcquire an API key

  1. Přihlaste se k účtu NuGet.org nebo vytvořte účet, pokud ho ještě nemáte.Sign into your nuget.org account or create an account if you don't have one already.

    Další informace o vytvoření účtu najdete v tématu jednotlivé účty.For more information on creating your account, see Individual accounts.

  2. Vyberte své uživatelské jméno (v pravém horním rohu) a pak vyberte klíče rozhraní API.Select your user name (on the upper right), then select API Keys.

  3. Vyberte vytvořit, zadejte název pro svůj klíč, vyberte vybrat obory > Push.Select Create, provide a name for your key, select Select Scopes > Push. Zadejte * pro vzor globa pak vyberte vytvořit.Enter * for Glob pattern, then select Create. (Další informace o oborech najdete níže.)(See below for more about scopes.)

  4. Po vytvoření klíče vyberte Kopírovat a v rozhraní PŘÍKAZového řádku načtěte přístupový klíč, který potřebujete:Once the key is created, select Copy to retrieve the access key you need in the CLI:

    Zkopírování klíče rozhraní API do schránky

  5. Důležitéinformace: Klíč uložte na bezpečném místě, protože ho později nemůžete zkopírovat.Important: Save your key in a secure location because you cannot copy the key again later on. Pokud se vrátíte na stránku klíče rozhraní API, budete muset klíč znovu vygenerovat, abyste ho mohli zkopírovat.If you return to the API key page, you need to regenerate the key to copy it. Klíč rozhraní API můžete odebrat i v případě, že už nechcete nabízet balíčky přes rozhraní příkazového řádku.You can also remove the API key if you no longer want to push packages via the CLI.

Rozsah umožňuje vytvořit samostatné klíče rozhraní API pro různé účely.Scoping allows you to create separate API keys for different purposes. Každý klíč má svůj časový rámec vypršení platnosti a může být vymezen na konkrétní balíčky (nebo vzory glob).Each key has its expiration timeframe and can be scoped to specific packages (or glob patterns). Každý klíč je také vymezen pro konkrétní operace: vložení nových balíčků a aktualizací, pouze nabízených aktualizací nebo oddálení v seznamu.Each key is also scoped to specific operations: push of new packages and updates, push of updates only, or delisting. Pomocí oboru můžete vytvořit klíče rozhraní API pro různé lidi, kteří spravují balíčky pro vaši organizaci tak, aby měli jenom potřebná oprávnění.Through scoping, you can create API keys for different people who manage packages for your organization such that they have only the permissions they need. Další informace najdete v tématu vymezené klíče rozhraní API.For more information, see scoped API keys.

Vytvoření s vymezeným oborem klíče rozhraní APICreate scoped API keys

Můžete vytvořit víc klíčů rozhraní API na základě vašich požadavků.You can create multiple API keys based on your requirements. Klíč rozhraní API můžete použít jeden nebo více balíčků, mají různé obory, které udělují oprávnění a mají datum vypršení platnosti s ním spojená.An API key can apply to one or more packages, have varying scopes that grant specific privileges, and have an expiration date associated with it.

V následujícím příkladu máte klíč rozhraní API s názvem Contoso service CI , který můžete použít k balíčky pro konkrétní Contoso.Service balíčky a je platný 365 dní.In the following example, you have an API key named Contoso service CI that can be used to push packages for specific Contoso.Service packages, and is valid for 365 days. Toto je typický scénář, kde jsou různé týmy v rámci stejné organizace prací na různých balíčcích a členy týmu k dispozici klíč, který uděluje oprávnění jen pro balíček, na kterém pracují.This is a typical scenario where different teams within the same organization work on different packages, and the members of the team are provided the key that grants them privileges only for the package they are working on. Vypršení platnosti slouží jako mechanismus, aby se zabránilo zastaralé či zapomenutí klíče.The expiration serves as a mechanism to prevent stale or forgotten keys.

Vytvoření klíče rozhraní API

Použití glob vzoryUse glob patterns

Pokud pracujete ve více balíčků a máte dlouhý seznam balíčků pro správu, můžete pomocí vzorů podpory zástupných znaků vybrat více balíčků najednou.If you are working on multiple packages and have a large list of packages to manage, you can choose to use globbing patterns to select multiple packages together. Například pokud budete chtít udělit konkrétní obory pro klíč pro všechny balíčky, jejichž ID začíná Fabrikam.Service, můžete to udělat tak, že zadáte fabrikam.service.* v Glob vzor textového pole.For example, if you wish to grant specific scopes to a key for all packages whose ID starts with Fabrikam.Service, you could do this by specifying fabrikam.service.* in the Glob pattern text box.

Vytvoření klíče rozhraní API

Určit oprávnění klíče rozhraní API pomocí vzorů glob platí také pro nové balíčky pro odpovídající vzoru glob.Using glob patterns to determine API key permissions also applies to new packages matching the glob pattern. Například, pokud se pokusíte vložit nový balíček s názvem Fabrikam.Service.Framework, můžete to udělat pomocí klíče vytvořili dříve, protože balíček shoduje se vzorem glob fabrikam.service.*.For example, if you try to push a new package named Fabrikam.Service.Framework, you can do that with the key created previously, since the package matches the glob pattern fabrikam.service.*.

Získání klíčů rozhraní API zabezpečenéObtain API keys securely

Pro zabezpečení, nově vytvořený klíč se nikdy zobrazí na obrazovce a je k dispozici používání jenom kopírování tlačítko.For security, a newly created key is never shown on the screen and is only available using the Copy button. Podobně klíč není přístupný, po aktualizaci stránky.Similarly, the key is not accessible after the page is refreshed.

Vytvoření klíče rozhraní API

Upravit existující klíče rozhraní APIEdit existing API keys

Můžete také aktualizovat oprávnění ke klíči a obory beze změny vlastního klíče.You may also want to update the key permissions and scopes without changing the key itself. Pokud máte klíč s konkrétní rozsahy pro jeden balíček, můžete použít stejné rozsahy na jeden nebo více balíčků.If you have a key with specific scope(s) for a single package, you can choose to apply the same scope(s) on one or many other packages.

Vytvoření klíče rozhraní API

Aktualizovat nebo odstranit existující klíče rozhraní APIRefresh or delete existing API keys

Vlastník účtu můžete klíč aktualizovat, v takovém případě oprávnění (balíčky), oboru a vypršení platnosti zůstanou stejné, ale nový klíč vystaven, provádění nepoužitelné starý klíč.The account owner can choose to refresh the key, in which case the permission (on packages), scope, and expiry remain the same, but a new key is issued making the old key unusable. To je užitečné při správě zastaralé klíče, nebo pokud neexistuje žádné riziko úniku klíče rozhraní API.This is helpful in managing stale keys or where there is any potential for an API key leakage.

Vytvoření klíče rozhraní API

Můžete také odstranit tyto klíče, pokud už nejsou potřeba.You may also choose to delete these keys if they are not needed anymore. Odstraňuje se klíč odebere klíč a zpřístupňuje je nepoužitelné.Deleting a key removes the key and makes it unusable.

Nejčastější dotazyFAQs

Co se stane staré (starší verze) klíč rozhraní API?What happens to my old (legacy) API key?

Váš klíč rozhraní API (starší verze) i nadále fungovat a může fungovat, dokud jej chcete pracovat.Your old API key (legacy) continues to work and can work as long as you want it to work. Ale tyto klíče budou dostupné jenom Pokud nebyly byly použity na více než 365 dnů tak, aby nabízel balíčku.However, these keys will be retired if they have not been used for more than 365 days to push a package. Další podrobnosti najdete v blogovém příspěvku změny u nichž vyprší platnost klíče rozhraní API.For more details, see the blog post Changes to expiring API keys. Jste již nemůže aktualizovat tento klíč.You can no longer refresh this key. Budete muset odstranit starší verze klíče a místo toho vytvořte nový klíč s vymezeným oborem.You need to delete the legacy key and create a new scoped key instead.

Poznámka

Tento klíč má všechna oprávnění pro všechny balíčky a nikdy nevyprší.This key has all permissions on all the packages and it never expires. Měli byste zvážit odstranění tohoto klíče a vytvoření nových klíčů s s vymezeným oborem oprávnění a jednoznačného vypršení platnosti.You should consider deleting this key and creating new keys with scoped permissions and definite expiry.

Kolik klíčů rozhraní API můžete vytvořit?How many API keys can I create?

Neexistuje žádné omezení počtu klíčů rozhraní API, které lze vytvořit.There is no limit on the number of API keys you can create. Ale doporučujeme vám zajistit jeho na spravovat počet tak, že není tím, že mají mnoho zastaralé klíče s žádné informace o umístění a kdo je používá.However, we advise you to keep it to a manageable count so that you do not end up having many stale keys with no knowledge of where and who is using them.

Můžete odstranit Moje starší verze klíč rozhraní API nebo můžete přestat používat nyní?Can I delete my legacy API key or discontinue using now?

Ano.Yes. Je možné – a pravděpodobně by měl – odstranit klíč rozhraní API starší verze.You can--and you probably should--delete your legacy API key.

Získat zpět Můj klíč rozhraní API, který byl odstraněn omylem?Can I get back my API key that I deleted by mistake?

Ne.No. Po odstranění můžete pouze vytvářet nové klíče.Once deleted, you can only create new keys. Je možné omylem odstraněné klíče bez obnovení.There is no recovery possible for accidentally deleted keys.

Dál starý klíč rozhraní API pro práci po aktualizaci klíče rozhraní API?Does the old API key continue to work upon API key refresh?

Ne.No. Po aktualizaci klíč se získá generovat nový klíč, který má stejný obor, oprávnění a vypršení platnosti jako měl ten starý.Once you refresh a key, a new key gets generated that has the same scope, permission, and expiry as the old one. Starý klíč přestane existovat.The old key ceases to exist.

Můžete udělit další oprávnění k existující klíč rozhraní API?Can I give more permissions to an existing API key?

Nelze měnit obor, ale můžete upravit seznam balíčků, které se vztahuje na.You cannot modify the scope, but you can edit the package list it is applicable to.

Jak poznám, že pokud některé zkratky vypršela nebo získávání buď vypršela platnost?How do I know if any of my keys expired or are getting expired?

Pokud vyprší platnost libovolné klávesy, můžeme vám dá vědět prostřednictvím zprávu s upozorněním v horní části stránky.If any key expires, we will let you know through a warning message at the top of the page. Jsme také odeslat e-mailové upozornění pro vlastníka účtu deseti dnů před vypršením platnosti klíče tak, aby na něm může fungovat dobře předem.We also send a warning e-mail to the account holder ten days before the expiration of the key so that you can act on it well in advance.