Проверка подлинности реестра с определенной областью
Некоторые поставщики пакетов и организации размещают пакеты в закрытых реестрах, доступ к которым требует аутентификации.
Если вы являетесь пользователем или членом организации, пытающимся получить доступ к реестру с ограниченной областью действия, который требует аутентификации, вы должны настроить файл конфигурации пользователя Package Manager с аутентификацией npm.
Чтобы настроить этот доступ:
1) Получить токен аутентификации npm
Процесс создания токена аутентификации npm и доступа к нему различен для каждого поставщика реестра. Например, менеджер хранилища Artifactory от JFrog использует другую процедуру для создания токена аутентификации от npm. Это пример типичной процедуры, но вам необходимо следовать процессу, рекомендованному конкретным поставщиком реестра пакетов для вашего реестра с определенной областью действия.
Чтобы получить токен аутентификации из npm:
Установите npm локально на ваш компьютер.
-
С помощью терминала введите следующую команду для входа в реестр, заменив
<registry url>на URL сервера реестра:$ npm login --registry <registry url> Найдите и откройте сгенерированный файл .npmrc.
-
Найдите запись
_authTokenили_authи скопируйте ее значение (см. следующий пример).В зависимости от реестра строка токена может быть глобальным уникальным идентификатором (GUID), токеном или строкой с собственническим форматом.
Примеры файлов .npmrc
Вот пример файла .npmrc, содержащего атрибут _authToken:
registry=https://example.com:1234/mylocation/
//example.com:1234/mylocation/:_authToken=<AUTH TOKEN>
Вот пример файла .npmrc, содержащего атрибут_auth:
registry=https://example.com:1234/mylocation
_auth=<AUTH TOKEN>
email=<EMAIL>
always-auth=true
2) Настройка данных аутентификации
Храните сведения о токене для каждого реестра в области, требующего проверки подлинности, в .upmconfig.toml файл конфигурации пользователя с использованием npmAuth схема конфигурации. После сохранения этой информации в файл конфигурации, Package Manager предоставит информацию о вашей аутентификации при каждом запросе, сделанном к каждому реестру в файле.
Чтобы добавить сведения о проверке подлинности в файл конфигурации пользователя, выполните следующие инструкции:
Найдите
.upmconfig.tomlфайл конфигурации пользователя. Если файла не существует, создайте пустой текстовый файл.Форматируйте информацию об аутентификации с помощью схемы в зависимости от того, используется ли механизм аутентификации Bearer (на основе токена) или Basic (зашифрованный Base64).
[npmAuth."<REGISTRY URL>"]
<TOKEN-PROPERTY> = "<TOKEN-VALUE>"
email = "<EMAIL>"
alwaysAuth = <BOOLEAN>
В следующей таблице приведены сведения о том, как задать значения файла конфигурации.
| Вступление | Описание |
|---|---|
[npmAuth."<REGISTRY-URL>"] |
Обязательно. URL реестра. Например, [npmAuth."https://example.com:8081/mylocation"]. |
<TOKEN-PROPERTY> = "<TOKEN-VALUE>" |
Обязательно. Токен аутентификации , созданный из реестра npm. Это может быть GUID, токен, или строка в собственническом формате. Например, это может быть либо token = "<AUTH TOKEN>" (Bearer), либо _auth = "<BASE64 TOKEN>" (Basic). |
| электронная почта | Необязательно. Адрес электронной почты пользователя, соответствующий адресу электронной почты пользователя в реестре. |
| alwaysAuth | Необязательно. Установите true, если метаданные пакета и tarballs не находятся на одном сервере. Как правило, вы можете скопировать значение из в .npmrc файл, который вы создали. |
Пример использования аутентификации на предъявителя
[npmAuth."http://localhost:8081/myrepository/mylocation"]
token = "NpmToken.2348c7ea-6f86-3dbe-86b6-f257e86569a8"
alwaysAuth = true
[npmAuth."http://localhost:4873"]
token = "eaJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWFsX2dyb3VwcyI6WyJwYXNjYWxsIl0sIm5hbWUiOiJwYXNjYWxsIiwiZ3JvdXBzIjpbIn"
[npmAuth."https://api.bintray.example/npm/mycompany/myregistry"]
token = "aGFzY2FsbDo4ZWIwNTM5NzBjNTI3OTIwYjQ4MDVkYzY2YWEzNmQxOTkyNDYzZjky"
email = "username@example.com"
alwaysAuth = true
Настройка основных сведений проверки подлинности
Эти действия используют Azure DevOps в качестве примера, но процесс сходен для любой платформы, которая использует персональный токен доступа (PAT).
Прежде чем начать, установите Node.js, если он еще не установлен.
Получите ваш токен личного доступа Azure DevOps (PAT) и подготовьте его для более позднего этапа. Если вам нужно регенерировать ваш PAT, войдите в Azure DevOps (https://dev.azure.com) и перейдите к Настройки пользователя > Токены личного доступа. Для информации об использовании PATs, обратитесь к статье Microsoft, Использование токенов личного доступа.
-
В командной строке запустите следующую команду:
node -e "require('readline').createInterface({input:process.stdin,output:process.stdout,historySize:0}).question('Enter PAT> ',p => {b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit();})" -
В командной строке
Enter PATвведитеemail:PAT, заменив:emailс электронной почтой связанной с вашей учетной записью DevOps Азура и электронной почтой указанной в файле.upmconfig.tomlPATс вашим PAT из предыдущего шага
Команда возвращает строку, зашифрованную Base64. Скопируйте эту строку и назначите ее в качестве значения для ключа
_authв файле.upmconfig.toml.
Пример использования базовой проверки подлинности
[npmAuth."http://localhost:8081/myrepository/mylocation"]
_auth = "c19kaW5pcm9AaG90bWFpbC4jb206d3FzdzVhemU9Q=="
email = "username@example.com"
alwaysAuth = true