Klucze interfejsu API o określonym zakresie

Aby zwiększyć bezpieczeństwo środowiska NuGet dla dystrybucji pakietów, możesz przejąć kontrolę nad kluczami interfejsu API, dodając zakresy.

Możliwość zapewnienia zakresu kluczy interfejsu API zapewnia lepszą kontrolę nad interfejsami API. Masz następujące możliwości:

  • Utwórz wiele kluczy interfejsu API o określonym zakresie, które mogą być używane dla różnych pakietów z różnymi przedziałami czasu wygaśnięcia.
  • Bezpieczne uzyskiwanie kluczy interfejsu API.
  • Edytuj istniejące klucze interfejsu API, aby zmienić możliwość stosowania pakietu.
  • Odśwież lub usuń istniejące klucze interfejsu API bez utrudniania operacji przy użyciu innych kluczy.

Dlaczego obsługujemy klucze interfejsu API o określonym zakresie?

Obsługujemy zakresy kluczy interfejsu API, aby umożliwić uzyskanie bardziej precyzyjnych uprawnień. Wcześniej pakiet NuGet oferował pojedynczy klucz interfejsu API dla konta i ma kilka wad:

  • Jeden klucz interfejsu API do kontrolowania wszystkich pakietów. W przypadku pojedynczego klucza interfejsu API, który jest używany do zarządzania wszystkimi pakietami, trudno jest bezpiecznie udostępniać klucz, gdy wielu deweloperów jest zaangażowanych w różne pakiety i gdy współużytkują konto wydawcy.
  • Wszystkie uprawnienia lub żadne. Każda osoba mająca dostęp do klucza interfejsu API ma wszystkie uprawnienia (publikowanie, wypychanie i usuwanie listy) w pakietach. Często nie jest to pożądane w środowisku z wieloma zespołami.
  • Pojedynczy punkt awarii. Pojedynczy klucz interfejsu API oznacza również pojedynczy punkt awarii. Jeśli klucz zostanie naruszony, wszystkie pakiety skojarzone z kontem mogą zostać potencjalnie naruszone. Odświeżanie klucza interfejsu API jest jedynym sposobem podłączenia przecieku i uniknięcia przerwy w przepływie pracy ciągłej integracji/ciągłego wdrażania. Ponadto może wystąpić sytuacja, w której chcesz odwołać dostęp do klucza interfejsu API dla osoby fizycznej (na przykład gdy pracownik opuści organizację). Nie ma czystego sposobu obsługi tego dzisiaj.

W przypadku kluczy interfejsu API o określonym zakresie staramy się rozwiązać te problemy, upewniając się, że żaden z istniejących przepływów pracy nie zostanie przerwany.

Uzyskiwanie klucza interfejsu API

  1. Zaloguj się do konta nuget.org lub utwórz konto , jeśli jeszcze go nie masz.

  2. Wybierz swoją nazwę użytkownika w prawym górnym rogu, a następnie wybierz pozycję Klucze interfejsu API.

  3. Wybierz pozycję Utwórz i podaj nazwę klucza.

  4. W obszarze Wybierz zakresy wybierz pozycję Wypchnij.

  5. W obszarze Wybierz wzorzec globu pakietów>wprowadź *.

  6. Wybierz pozycję Utwórz.

  7. Wybierz pozycję Kopiuj , aby skopiować nowy klucz.

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

Ważne

  • Zawsze przechowuj klucz interfejsu API jako klucz tajny. Klucz interfejsu API jest jak hasło, które umożliwia każdemu zarządzać pakietami w Twoim imieniu. Usuń lub ponownie wygeneruj klucz interfejsu API, jeśli zostanie on przypadkowo ujawniony.
  • Zapisz klucz w bezpiecznej lokalizacji, ponieważ nie można ponownie skopiować klucza później. Jeśli wrócisz do strony klucza interfejsu API, musisz ponownie wygenerować klucz, aby go skopiować. Możesz również usunąć klucz interfejsu API, jeśli nie chcesz już wypychać pakietów.

Określenie zakresu umożliwia tworzenie oddzielnych kluczy interfejsu API do różnych celów. Każdy klucz ma przedział czasu wygaśnięcia i można określić zakres klucza dla określonych pakietów lub wzorców globu. Zakres każdego klucza można również ograniczyć do określonych operacji: Wypychanie nowych pakietów i wersji pakietów, wypychanie tylko nowych wersji pakietów lub anulowanie listy.

Za pomocą określania zakresu można tworzyć klucze interfejsu API dla różnych osób, które zarządzają pakietami w organizacji, aby miały one tylko wymagane uprawnienia.

Tworzenie kluczy interfejsu API o określonym zakresie

Możesz utworzyć wiele kluczy interfejsu API na podstawie wymagań. Klucz interfejsu API może być stosowany do co najmniej jednego pakietu, ma różne zakresy, które przyznają określone uprawnienia i mają skojarzona z nim datę wygaśnięcia.

W poniższym przykładzie masz klucz interfejsu API o nazwie Contoso service CI , który może służyć do wypychania pakietów dla określonych Contoso.Service pakietów i jest ważny przez 365 dni. Jest to typowy scenariusz, w którym różne zespoły w tej samej organizacji pracują nad różnymi pakietami, a członkowie zespołu otrzymują klucz, który przyznaje im uprawnienia tylko dla pakietu, nad którym pracują. Wygaśnięcie służy jako mechanizm zapobiegania nieaktualnym lub zapomnianym kluczom.

Create API keys

Używanie wzorców glob

Jeśli pracujesz nad wieloma pakietami i masz dużą listę pakietów do zarządzania, możesz użyć wzorców globbingu, aby wybrać wiele pakietów razem. Jeśli na przykład chcesz przyznać określone zakresy do klucza dla wszystkich pakietów, których identyfikator zaczyna się od Fabrikam.Service, możesz to zrobić, określając fabrikam.service.* w polu tekstowym Wzorzec Glob.

Create API keys - 2

Używanie wzorców glob do określania uprawnień klucza interfejsu API dotyczy również nowych pakietów pasujących do wzorca globu. Jeśli na przykład spróbujesz wypchnąć nowy pakiet o nazwie Fabrikam.Service.Framework, możesz to zrobić za pomocą utworzonego wcześniej klucza, ponieważ pakiet jest zgodny ze wzorcem globu fabrikam.service.*.

Bezpieczne uzyskiwanie kluczy interfejsu API

W przypadku zabezpieczeń nowo utworzony klucz nigdy nie jest wyświetlany na ekranie i jest dostępny tylko za pomocą przycisku Kopiuj . Podobnie klucz nie jest dostępny po odświeżeniu strony.

Create API keys - 3

Edytowanie istniejących kluczy interfejsu API

Możesz również zaktualizować uprawnienia i zakresy klucza bez zmiany samego klucza. Jeśli masz klucz z określonymi zakresami dla pojedynczego pakietu, możesz zastosować te same zakresy w jednym lub wielu innych pakietach.

Create API keys - 4

Odświeżanie lub usuwanie istniejących kluczy interfejsu API

Właściciel konta może odświeżyć klucz, w takim przypadku uprawnienie (w pakietach), zakres i wygaśnięcie pozostają takie same, ale zostaje wystawiony nowy klucz, co spowoduje, że stary klucz będzie bezużyteczny. Jest to przydatne w zarządzaniu nieaktywnymi kluczami lub w przypadku potencjalnego wycieku klucza interfejsu API.

Create API keys - 5

Możesz również usunąć te klucze, jeśli nie są już potrzebne. Usunięcie klucza powoduje usunięcie klucza i uniemożliwi jego użycie.

Często zadawane pytania

Co się stanie z moim starym (starszym) kluczem interfejsu API?

Stary klucz interfejsu API (starsza wersja) nadal działa i może działać tak długo, jak chcesz, aby działał. Jednak te klucze zostaną wycofane, jeśli nie zostały użyte przez ponad 365 dni do wypchnięcia pakietu. Aby uzyskać więcej informacji, zobacz wpis w blogu Zmiany w wygasających kluczach interfejsu API. Nie można już odświeżyć tego klucza. Musisz usunąć starszy klucz i utworzyć nowy klucz o określonym zakresie.

Uwaga

Ten klucz ma wszystkie uprawnienia do wszystkich pakietów i nigdy nie wygasa. Należy rozważyć usunięcie tego klucza i utworzenie nowych kluczy z uprawnieniami o określonym zakresie i określonym wygaśnięciem.

Ile kluczy interfejsu API można utworzyć?

Nie ma limitu liczby kluczy interfejsu API, które można utworzyć. Zalecamy jednak, aby zachować ją w możliwej do zarządzania liczbie, aby nie mieć wielu nieaktualnych kluczy bez wiedzy o tym, gdzie i kto z nich korzysta.

Czy mogę usunąć mój starszy klucz interfejsu API lub przestać używać go teraz?

Tak. Możesz — prawdopodobnie powinieneś usunąć starszy klucz interfejsu API.

Czy mogę odzyskać klucz interfejsu API, który został usunięty przez pomyłkę?

L.p. Po usunięciu można tworzyć tylko nowe klucze. Nie można odzyskać przypadkowo usuniętych kluczy.

Czy stary klucz interfejsu API nadal działa po odświeżeniu klucza interfejsu API?

L.p. Po odświeżeniu klucza zostanie wygenerowany nowy klucz, który ma ten sam zakres, uprawnienie i wygaśnięcie co stary. Stary klucz przestaje istnieć.

Czy mogę przyznać więcej uprawnień do istniejącego klucza interfejsu API?

Nie można zmodyfikować zakresu, ale możesz edytować listę pakietów, do której ma ona zastosowanie.

Jak mogę wiedzieć, czy którykolwiek z moich kluczy wygasł lub czy wygasł?

Jeśli jakikolwiek klucz wygaśnie, powiadomimy Cię za pośrednictwem komunikatu ostrzegawczego w górnej części strony. Wysyłamy również wiadomość e-mail ostrzegawczą do właściciela konta dziesięć dni przed wygaśnięciem klucza, aby można było działać z wyprzedzeniem.