Azure Частные артефакты npm Ошибка аутентификации канала - PullRequest
5 голосов
/ 15 января 2020

Несколько месяцев go Я создал частный npm фид в Azure Артефактах. Аутентификация с этим фидом работала нормально.

В последнее время другие начали использовать этот фид, и аутентификация у них не работает с использованием токенов, которые они сгенерировали из Azure Артефактов. При установке npm они получают следующую ошибку

npm ERR! Невозможно пройти проверку подлинности, ваш токен проверки подлинности

недействителен. npm ОШИБКА! Чтобы исправить это, пожалуйста, попробуйте войти снова с:

npm ERR! npm login

В журнале отладки npm есть эта ошибка

verbose stack Ошибка: невозможно аутентифицировать, необходимо: Bearer, Basi c realm = "{{redacted url}}", NTLM


Похоже, что структура токена аутентификации, который мы помещаем в глобальный файл .npmr c, изменилась в Azure Артефакты

С:

; Treat this auth token like a password. Do not share it with anyone, including Microsoft support. This token expires on or before 27/02/2020.

; begin auth token

//{{redacted URL}}/_packaging/{{redacted user name}}/npm/registry/:_authToken={{redacted token string}}

//{redacted URL}}/_packaging/{{redacted user name}}/npm/:_authToken={{redacted token string}}

; end auth token

До

; Treat this auth token like a password. Do not share it with anyone, including Microsoft support. This token expires on or before 14/04/2020.
; begin auth token
//{{redacted url}}/npm/registry/:username={{redacted username}}
//{{redacted url}}/npm/registry/:_password={{redacted password}}
//{{redacted url}}/npm/registry/:email=npm requires email to be set but doesn't use the value
//{{redacted url}}/_packaging/{{redacted username}}/npm/:username={{redacted user name}}
//{{redacted url}}/_packaging/{{redacted username}}/npm/:_password={{redacted password}}
//{{redacted url}}/_packaging/{{redacted username}}/npm/:email=npm requires email to be set but doesn't use the value
; end auth token

Когда используется второй токен (или действительно любой из токенов, которые я теперь генерирую из Azure Артефактов) Мы не можем npm install, мы получаем ошибку, показанную выше. Если другие люди используют тот же токен (в старом формате), что и я, это прекрасно работает. Но срок действия этого токена скоро истечет.

Я попытался указать адрес электронной почты вместо строк «npm требует настройки электронной почты, но значение не используется», но это также не сработало.

Возможно, это не связано, но мы недавно обновили tfs версии 16.131.28507.4 до Azure Devops Server версии Dev17.M153.3.

Кто-нибудь знает, почему изменился формат токена аутентификации? И / или как я могу заставить новые токены работать с моим личным каналом?


npm версия: 6.13.0

версия узла: 10.12.0

Azure Версия сервера Devops: Dev17.M153.3

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

После дальнейшего изучения и разговора с Microsoft Azure мы определили причину проблемы для нас.

Новый формат токенов, развернутых для Azure Артефакты больше не работают, если Ваш экземпляр TFS (Azure Devops) размещен на компьютере, на котором выполняется аутентификация IIS Basi c. Это, вероятно, применимо только к людям, которые сами размещают свой экземпляр TFS.

Единственный доступный обходной путь - изменить этот новый токен и поместить имя пользователя TFS и пароль в кодировке Base 64 в строку токена после * 1005. * и registry/:_password= строки в двух местах, где они появляются. Это не идеально, так как вы фактически должны хранить пароль в виде простого текста на сервере сборки. Но, похоже, теперь это ваш единственный выбор, если вам нужна аутентификация IIS Basi c. Отключение этого и использование другой схемы аутентификации исправляет аутентификацию токена, и вы можете избежать вышеуказанного.

0 голосов
/ 16 января 2020

Я не уверен, что это является причиной вашей проблемы - на нашем экземпляре azure devops у нас недавно был включен условный доступ, который может отключить многие потоки аутентификации на основе PAT / token без четкого сообщения об ошибке - например, если вы используете токен вне вашего обычного компьютера / маршрута доступа (мы передавали токен службе сборки, для которой мы не могли использовать 2FA для аутентификации, и она просто перестала работать на ночь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...