Как интегрировать CredentialProvider.VSS.exe (или другой поставщик учетных данных NuGet) с VS, чтобы не требовался PAT в packageSourceCredentials? - PullRequest
0 голосов
/ 03 апреля 2019

Кажется возможным получить пакеты только из частного фида пакетов (используя VS Manage NuGet Packages for Solution) в моей организации DevOps Azure, добавив PAT (с областью пакетов) в packageSourceCredentials в моем% APPDATA% \ NuGet \ NuGet.config.

Мне не нравится делать это по двум причинам -

  1. Это обязательное условие хоста (ну, хорошо, это в моем профиле роуминга, но все же ..)
  2. Пользовательская шкала времени для PAT допускает максимальный срок жизни токена не более одного года.Конечно, автоматический токен сеанса был бы лучше, чем токен с истекающим сроком действия, и ему нужно было бы установить его значение в файле NuGet.config?

Я заметил, что выполняется. \ CredentialProvider.VSS.exe -U {my_org_url} возвращает объект JSON, содержащий маркер сеанса в свойстве Password с требуемой областью доступа для каналов частного пакета, т. е. «Имя пользователя»: «VssSessionToken», «Пароль»: «{my_session_token}» - там говорится «Получение новых учетных данных для источника: {my_package_feed_url}, область действия: vso.packaging_write vso.drop_write "в выходных данных.

Если я использую источники nuget, добавьте и используйте значение пароля в качестве значения PAT, тогда настройка пароля в кодировке base-64 packageSourceCredentials работаети можно получить доступ к фиду пакетов в VS, но, поскольку это маркер сеанса, он не работает очень долго.

Я попытался добавить провайдер учетных данных nuget, т.е.% USERPROFILE% .nuget \ plugins \netcore \ CredentialProvider.Microsoft, но, похоже, это ничего не изменило.

Аналогично, размещение CredentialProvider.VSS.exe здесь "% LOCALAPPDATA% \ NuGet \ CredentialProviders \ CredentialProvider.VSS.exe" не имеет значения, т. Е. PAT в NuGet.config был единственным способом доступа к частной ленте пакетов из VS.

А также даже установка NUGET_CREDENTIALPROVIDERS_PATH =% LOCALAPPDATA% \ NuGet \ CredentialProviders также не имеет значения.

Я надеюсь, что каким-то образом можно установить какое-то волшебство, чтобы CredentialProvider.VSS.exe (илиМожно настроить другой поставщик учетных данных NuGet, который работает с VS), чтобы мне не приходилось использовать PAT в packageSourceCredentials.

...