Freigeben über


Bereichsbezogene API-Schlüssel

Um NuGet zu einer sichereren Umgebung für die Paketverteilung zu machen, können Sie die Kontrolle über die API-Schlüssel übernehmen, indem Sie Bereiche hinzufügen.

Die Möglichkeit, den Umfang für Ihre API-Schlüssel bereitzustellen, bietet Ihnen eine bessere Kontrolle über Ihre APIs. Sie haben folgende Möglichkeiten:

  • Erstellen Sie mehrere bereichsbezogene API-Schlüssel, die für verschiedene Pakete mit unterschiedlichen Ablaufzeiten verwendet werden können.
  • Api-Schlüssel sicher abrufen.
  • Bearbeiten Sie vorhandene API-Schlüssel, um die Anwendbarkeit des Pakets zu ändern.
  • Aktualisieren oder Löschen vorhandener API-Schlüssel, ohne Vorgänge mit anderen Schlüsseln zu behindern.

Warum unterstützen wir bereichsbezogene API-Schlüssel?

Wir unterstützen Bereiche für API-Schlüssel, damit Sie über detailliertere Berechtigungen verfügen können. Zuvor bot NuGet einen einzelnen API-Schlüssel für ein Konto an, und dieser Ansatz hatte mehrere Nachteile:

  • Ein API-Schlüssel zum Steuern aller Pakete. Bei einem einzelnen API-Schlüssel, der zum Verwalten aller Pakete verwendet wird, ist es schwierig, den Schlüssel sicher zu teilen, wenn mehrere Entwickler an verschiedenen Paketen beteiligt sind und wenn sie ein Herausgeberkonto freigeben.
  • Alle Berechtigungen oder keine. Jeder Benutzer mit Zugriff auf den API-Schlüssel verfügt über alle Berechtigungen (Veröffentlichen, Pushen und Aufheben der Liste) für die Pakete. Dies ist häufig in der Umgebung mit mehreren Teams nicht wünschenswert.
  • Einzelner Fehlerpunkt. Ein einzelner API-Schlüssel bedeutet auch einen einzigen Fehlerpunkt. Wenn der Schlüssel kompromittiert wird, können alle dem Konto zugeordneten Pakete potenziell kompromittiert werden. Das Aktualisieren des API-Schlüssels ist die einzige Möglichkeit, das Leck zu schließen und eine Unterbrechung Ihres CI/CD-Workflows zu vermeiden. Darüber hinaus kann es Fälle geben, in dem Sie den Zugriff auf den API-Schlüssel für eine Person widerrufen möchten (z. B. wenn ein Mitarbeiter die Organisation verlässt). Es gibt keinen sauberen Weg, dies heute zu bewältigen.

Bei bereichsbezogenen API-Schlüsseln versuchen wir, diese Probleme zu beheben, und stellen sicher, dass keine der vorhandenen Workflows umgebrochen ist.

API-Schlüssel abrufen

  1. Melden Sie sich bei Ihrem nuget.org-Konto an, oder erstellen Sie ein Konto , wenn Sie noch kein Konto haben.

  2. Wählen Sie oben rechts Ihren Benutzernamen und dann API-Schlüssel aus.

  3. Wählen Sie "Erstellen" aus, und geben Sie einen Namen für Ihren Schlüssel an.

  4. Unter "Bereich auswählen", wählen Sie die Option Push aus.

  5. Geben Sie unter "Pakete auswählen>Glob-Muster" *ein.

  6. Wählen Sie "Erstellen" aus.

  7. Wählen Sie "Kopieren" aus, um den neuen Schlüssel zu kopieren.

    Screenshot des neuen API-Schlüssels mit dem Link

Von Bedeutung

  • Bewahren Sie ihren API-Schlüssel immer als geheim auf. Der API-Schlüssel ist wie ein Kennwort, mit dem jeder Pakete in Ihrem Auftrag verwalten kann. Löschen oder regenerieren Sie Ihren API-Schlüssel, wenn er versehentlich angezeigt wird.
  • Speichern Sie Ihren Schlüssel an einem sicheren Speicherort, da Sie den Schlüssel später nicht mehr kopieren können. Wenn Sie zur API-Schlüsselseite zurückkehren, müssen Sie den Schlüssel neu generieren, um ihn zu kopieren. Sie können den API-Schlüssel auch entfernen, wenn Sie keine Pushpakete mehr verschieben möchten.

Mithilfe von Scoping können Sie separate API-Schlüssel für unterschiedliche Zwecke erstellen. Jeder Schlüssel verfügt über einen Ablaufzeitrahmen, und Sie können den Schlüssel auf bestimmte Pakete oder Globmuster beschränken. Sie legen auch jeden Schlüssel auf bestimmte Vorgänge fest: Hochladen Sie neue Pakete und Paketversionen, hochladen Sie nur neue Paketversionen, oder nehmen Sie die Auflistung zurück.

Mithilfe der Bereichseinschränkung können Sie API-Schlüssel für verschiedene Personen erstellen, die Pakete für Ihre Organisation verwalten, sodass sie nur die erforderlichen Berechtigungen haben.

Erstellen von bereichsbezogenen API-Schlüsseln

Sie können mehrere API-Schlüssel basierend auf Ihren Anforderungen erstellen. Ein API-Schlüssel kann auf ein oder mehrere Pakete angewendet werden, unterschiedliche Bereiche aufweisen, die bestimmte Berechtigungen gewähren und einem Ablaufdatum zugeordnet sind.

Im folgenden Beispiel haben Sie einen API-Schlüssel mit dem Namen Contoso service CI , der zum Pushen von Paketen für bestimmte Contoso.Service Pakete verwendet werden kann und für 365 Tage gültig ist. Dies ist ein typisches Szenario, in dem verschiedene Teams innerhalb derselben Organisation an verschiedenen Paketen arbeiten, und die Mitglieder des Teams werden dem Schlüssel bereitgestellt, der ihnen berechtigungen nur für das Paket gewährt, an dem sie arbeiten. Das Ablaufdatum dient als Mechanismus, um veraltete oder vergessene Schlüssel zu verhindern.

Erstellen von API-Schlüsseln

Globmuster verwenden

Wenn Sie an mehreren Paketen arbeiten und über eine große Liste der zu verwaltenden Pakete verfügen, können Sie mithilfe von Globbingmustern mehrere Pakete zusammen auswählen. Wenn Sie z. B. einem Schlüssel für alle Pakete, deren ID mit Fabrikam.Service beginnt, bestimmte Berechtigungen gewähren möchten, können Sie dies tun, indem Sie im fabrikam.service.* angeben .

Erstellen von API-Schlüsseln – 2

Die Verwendung von Glob-Mustern zum Ermitteln von API-Schlüsselberechtigungen gilt auch für neue Pakete, die mit dem Glob-Muster übereinstimmen. Wenn Sie beispielsweise versuchen, ein neues Paket mit dem Namen Fabrikam.Service.Frameworkzu übertragen, können Sie dies mit dem zuvor erstellten Schlüssel tun, da das Paket mit dem Glob-Muster fabrikam.service.*übereinstimmt.

Sicheres Abrufen von API-Schlüsseln

Aus Sicherheitsgründen wird nie ein neu erstellter Schlüssel auf dem Bildschirm angezeigt und ist nur über die Schaltfläche "Kopieren " verfügbar. Auf ähnliche Weise kann auf den Schlüssel nicht zugegriffen werden, nachdem die Seite aktualisiert wurde.

Erstellen von API-Schlüsseln – 3

Bearbeiten vorhandener API-Schlüssel

Sie können auch die Schlüsselberechtigungen und Bereiche aktualisieren, ohne den Schlüssel selbst zu ändern. Wenn Sie über einen Schlüssel mit bestimmten Bereichen für ein einzelnes Paket verfügen, können Sie die gleichen Bereiche auf ein oder viele andere Pakete anwenden.

Erstellen von API-Schlüsseln – 4

Aktualisieren oder Löschen vorhandener API-Schlüssel

Der Kontobesitzer kann den Schlüssel aktualisieren, in dem Fall die Berechtigung (für Pakete), der Bereich und das Ablaufen unverändert bleiben, aber ein neuer Schlüssel wird ausgegeben, sodass der alte Schlüssel nicht mehr verwendet werden kann. Dies ist hilfreich beim Verwalten veralteter Schlüssel oder bei der Möglichkeit eines API-Schlüssellecks.

Erstellen von API-Schlüsseln – 5

Sie können diese Schlüssel auch löschen, wenn sie nicht mehr benötigt werden. Wenn Sie einen Schlüssel löschen, wird der Schlüssel entfernt und kann nicht mehr verwendet werden.

Häufig gestellte Fragen

Was geschieht mit meinem alten (Legacy)-API-Schlüssel?

Ihr alter API-Schlüssel (Legacy) funktioniert weiterhin und kann so lange wie gewünscht funktionieren. Diese Schlüssel werden jedoch zurückgezogen, wenn sie mehr als 365 Tage lang nicht zum Pushen eines Pakets verwendet wurden. Weitere Informationen finden Sie im Blogbeitrag "Änderungen an ablaufenden API-Schlüsseln". Sie können diesen Schlüssel nicht mehr aktualisieren. Sie müssen stattdessen den Legacyschlüssel löschen und einen neuen bereichsbezogenen Schlüssel erstellen.

Hinweis

Dieser Schlüssel verfügt über alle Berechtigungen für alle Pakete und läuft nie ab. Sie sollten diesen Schlüssel löschen und neue Schlüssel mit eingeschränkten Berechtigungen und einem definierten Ablaufdatum erstellen.

Wie viele API-Schlüssel kann ich erstellen?

Es gibt keine Beschränkung für die Anzahl der API-Schlüssel, die Sie erstellen können. Wir empfehlen Ihnen jedoch, sie auf eine überschaubare Anzahl zu halten, damit Sie nicht viele veraltete Schlüssel ohne Wissen darüber haben, wo und wer sie verwendet.

Kann ich meinen legacy-API-Schlüssel löschen oder jetzt die Verwendung beenden?

Ja. Sie können -- und sie sollten wahrscheinlich Ihren älteren API-Schlüssel löschen.

Kann ich meinen API-Schlüssel, den ich versehentlich gelöscht habe, zurückholen?

Nein. Nach dem Löschen können Sie nur neue Schlüssel erstellen. Für versehentlich gelöschte Schlüssel ist keine Wiederherstellung möglich.

Funktioniert der alte API-Schlüssel weiterhin bei der AKTUALISIERUNG des API-Schlüssels?

Nein. Sobald Sie einen Schlüssel erneuern, wird ein neuer Schlüssel erzeugt, der denselben Bereich, dieselbe Berechtigung und denselben Ablauf wie der alte hat. Der alte Schlüssel ist nicht mehr vorhanden.

Kann ich einem vorhandenen API-Schlüssel weitere Berechtigungen erteilen?

Sie können den Bereich nicht ändern, aber Sie können die Paketliste bearbeiten, auf die sie anwendbar ist.

Wie kann ich feststellen, ob einer meiner Schlüssel abgelaufen ist oder bald abläuft?

Wenn ein Schlüssel abläuft, informieren wir Sie über eine Warnmeldung am oberen Rand der Seite. Wir senden auch eine Warn-E-Mail an den Kontoinhaber zehn Tage vor Ablauf des Schlüssels, damit Sie gut im Voraus darauf reagieren können.