Клонирование репозитория из MSA при поддержке DevOps Azure с использованием Visual Studio 2017 или 2019 и учетной записи AAD

Microsoft представила возможность приглашать пользователей AAD в учетные записи DevOps, поддерживаемые MSA. Это отлично подходит для компаний, которые переводят учетные записи с "неуправляемых" на "управляемые", начиная с передачи права собственности на учетную запись пользователю AAD, а затем исправляя ошибки пользователей и лицензирования в более медленном подходе.

Однако, когда я пытаюсь клонировать репозиторий с использованием Visual Studio 2017 или 2019, меня приветствует сообщение об ошибке:

Git потерпел неудачу с фатальной ошибкой. Ошибка аутентификации для: {remote-url}.

или, в зависимости от того, какая у вас версия диспетчера учетных данных Git:

ошибка: невозможно порождать askpass: нет такого файла или каталога фатально: не удалось прочитать имя пользователя для '{remote-url}': терминальные запросы отключены`

При клонировании из командной строки проблем не возникает, и впоследствии Visual Studio также может использовать полученный репозиторий git.

2 ответа

Решение

После разговора с Чедом Болесом (который поддерживает Team Explorer в Visual Studio), мы разработали еще один вариант. Это предпочтительнее, чем перезапись файлов в установке Visual Studio, так как это может привести к поломке будущих обновлений и может вызвать проблемы с отладкой в ​​будущем.

  1. Установите GCMW-1.18.4.exe в вашей системе и / или обновите Git для Windows до последней версии, которая должна включать GCM.
  2. Обновите вашу глобальную конфигурацию git, чтобы она указала на конкретную реализацию диспетчера учетных данных Git:

    c:\>git config --global --edit
    

    Обновите [credential] раздел для чтения:

    [credential]
        helper = C:\\\\Program\\ Files\\\\Git\\\\mingw64\\\\libexec\\\\git-core\\\\git-credential-manager.exe
    

    Убедитесь, что путь указывает, где в вашей системе можно найти последнюю версию Git Credential Manager. Запомните все побеги, необходимые для работы путей в глобальной конфигурации git.

Оказывается, что Visual Studio 2017 (по состоянию на 15.9.7) и 2019 (предварительный просмотр 3) все еще поставляются с версией 1.17 Git Credential Manager, и они не используют глобально установленную версию, когда она доступна.

Вы можете проверить, есть ли у вас "старая" версия в следующих местах:

C:\Program Files (x86)\Microsoft Visual Studio\2017\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

Если они не на версии 1.18.4, то у них нет необходимого исправления для проверки подлинности AAD в учетных записях с поддержкой MSA.

Если у вас правильная версия, вы должны увидеть:

исправлять

Это официально не поддерживается и может иметь нежелательные побочные эффекты. Но у меня это сработало;).

Чтобы исправить Visual Studio, вы можете перезаписать двоичные файлы в указанных выше местах файлами в последнем выпуске zip Git Credential Manager:

Вам нужно будет повторно применять эти файлы каждый раз при обновлении до более нового обновления / предварительного просмотра, пока, к сожалению, Microsoft не решит отправить последнюю версию как часть Visual Studio. Visual Studio Installer будет упорно перезаписать его с версией 1.17.

Другие вопросы по тегам