Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Usługa Azure Artifacts umożliwia deweloperom zarządzanie pakietami z różnych źródeł, w tym rejestrami publicznymi, takimi jak npmjs.com i źródła prywatne. Aby przeprowadzić uwierzytelnianie za pomocą usługi Azure Artifacts, należy skonfigurować plik konfiguracji npmrc . Ten plik przechowuje adresy URL kanałów informacyjnych i poświadczenia używane przez narzędzie npm, oraz umożliwia dostosowanie zachowania klienta, takiego jak konfigurowanie serwerów proxy, ustalanie domyślnych lokalizacji pakietów lub konfiguracja dostępu do prywatnych kanałów. Plik npmrc zazwyczaj znajduje się w katalogu głównym użytkownika, ale można go również utworzyć na poziomie projektu, aby zastąpić ustawienia domyślne.
Wymagania wstępne
Połącz się z kanałem
Usługa Azure Artifacts zaleca używanie dwóch oddzielnych plików konfiguracji npmrc . Jedna powinna być przechowywana lokalnie w celu przechowywania poświadczeń, a druga powinna zostać dodana do katalogu projektu wraz z package.json w celu zdefiniowania adresu URL kanału informacyjnego. Takie podejście umożliwia udostępnianie konfiguracji na poziomie projektu bez ujawniania poufnych informacji.
Aby skonfigurować plik poświadczeń, utwórz lub zaktualizuj plik npmrc i dołącz wszystkie niezbędne poświadczenia rejestru. Dzięki temu klient npm może łatwo uzyskiwać dostęp do poświadczeń na potrzeby uwierzytelniania.
Poniższe kroki zawierają instrukcje konfigurowania pliku konfiguracji na poziomie projektu. Wybierz kartę odpowiadającą środowisku programistycznemu:
Uwaga
vsts-npm-auth
nie jest obsługiwany w usłudze Azure DevOps Server.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym , a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik npmrc do projektu w tym samym katalogu co package.json i wklej podany fragment kodu z sekcji Konfiguracja projektu do pliku.
Uruchom następujące polecenie, aby uzyskać token usługi Azure Artifacts dodany do pliku npmrc na poziomie użytkownika. Nie trzeba tego uruchamiać za każdym razem — narzędzie npm zwróci błąd 401 Brak autoryzacji podczas odświeżania tokenu.
vsts-npm-auth -config .npmrc
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym , a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik npmrc do katalogu projektu. Powinien to być ten sam katalog, w którym znajduje się plik package.json .
Wklej fragment kodu podany w sekcji Konfiguracja projektu do pliku npmrc . Plik powinien wyglądać podobnie do następującego:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
Konfigurowanie poświadczeń
Skopiuj następujący fragment kodu i wklej go do pliku npmrc:
Kanał informacyjny na potrzeby organizacji
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Kanał informacyjny w zakresie projektu:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Wygeneruj osobisty token dostępu przy użyciu pakowania zakresów odczytu i zapisu.
Uruchom następujące polecenie w oknie wiersza polecenia. Po wyświetleniu monitu wklej osobisty token dostępu i naciśnij Enter. Skrypt zwróci wersję zakodowaną w formacie Base64 identyfikatora PAT, skopiuj ją do użycia w następnym kroku.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Jeśli używasz systemu Linux lub macOS, możesz uruchomić następujące polecenie w terminalu, aby przekonwertować osobisty token dostępu (PAT) na ciąg zakodowany w formacie Base64. Skopiuj wynikowa wartość do użycia w następnym kroku.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Zastąp symbole zastępcze [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] w pliku npmrc na poziomie użytkownika za pomocą osobistego tokenu dostępu zakodowanego w formacie Base64 wygenerowanego w poprzednim kroku.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, wybierz swój kanał informacyjny z menu rozwijanego, a następnie wybierz pozycję Połącz z kanałem informacyjnym.
Wybierz npm z lewej, a następnie wykonaj kroki w sekcji Konfiguracja projektu, aby skonfigurować plik .npmrc. prześlij plik i uwierzytelnij się w swoim kanale informacyjnym.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym , a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik npmrc w katalogu projektu w tym samym katalogu co plik package.json i wklej fragment kodu podany w sekcji Konfiguracja projektu do pliku npmrc . Plik powinien wyglądać podobnie do następującego:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
Konfigurowanie poświadczeń
Skopiuj następujący fragment kodu i wklej go do pliku .npmrc:
Źródło danych o zakresie kolekcji:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Kanał informacyjny w zakresie projektu:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Wygeneruj osobisty token dostępu przy użyciu pakowania zakresów odczytu i zapisu.
Uruchom następujące polecenie w oknie wiersza polecenia. Po wyświetleniu monitu wklej osobisty token dostępu i naciśnij Enter. Skrypt zwróci wersję zakodowaną w formacie Base64 identyfikatora PAT, skopiuj ją do użycia w następnym kroku.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Zastąp symbole zastępcze [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] w pliku npmrc na poziomie użytkownika za pomocą osobistego tokenu dostępu zakodowanego w formacie Base64 wygenerowanego w poprzednim kroku.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz Artefakty, a następnie Podłącz do kanału.
Wybierz npm po lewej stronie, a następnie wykonaj kroki opisane w sekcji Konfiguracja projektu, aby skonfigurować plik .npmrc. plik i uwierzytelnij się za pomocą swojego kanału.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym , a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik npmrc w katalogu projektu w tym samym katalogu co plik package.json i wklej fragment kodu podany w sekcji Konfiguracja projektu do pliku npmrc . Plik powinien wyglądać podobnie do następującego:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
Uwaga
W przypadku dystrybucji Debian, Ubuntu i innych społeczności lub przedsiębiorstw, takich jak Fedora lub Redhat, upewnij się, że zainstalowano wymagania wstępne z repozytorium dystrybucji NodeSource.
Konfigurowanie poświadczeń
Skopiuj następujący fragment kodu i wklej go do pliku .npmrc:
Źródło danych o zakresie kolekcji:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Kanał informacyjny w zakresie projektu:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Wygeneruj osobisty token dostępu przy użyciu pakowania zakresów odczytu i zapisu.
Uruchom następujące polecenie w oknie wiersza polecenia. Po wyświetleniu monitu wklej osobisty token dostępu i naciśnij Enter. Skrypt zwróci wersję zakodowaną w formacie Base64 identyfikatora PAT, skopiuj ją do użycia w następnym kroku.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Zastąp symbole zastępcze [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] w pliku npmrc na poziomie użytkownika za pomocą osobistego tokenu dostępu zakodowanego w formacie Base64 wygenerowanego w poprzednim kroku.
Powiązana zawartość