Поделиться через


Проверка подлинности с помощью Azure Repos

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Выбор правильного метода проверки подлинности имеет решающее значение для безопасного доступа к репозиториям Azure Repos и Azure DevOps Server Git. Независимо от того, работаете ли вы из командной строки или используете клиент Git, поддерживающий протокол HTTPS или SSH, важно выбрать учетные данные, которые не только предоставляют необходимый доступ, но и ограничивают область действия, необходимую для выполнения задач.

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

Механизмы проверки подлинности

Токены Microsoft Entra OAuth

Используйте Microsoft Entra для генерации токенов для доступа к REST API. Токены Microsoft Entra можно использовать везде, где используются личные токены доступа. Вот полезный совет по получению одноразового токена доступа из Azure CLI, чтобы вызвать git fetch:

$accessToken = az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
git -c http.extraheader="AUTHORIZATION: bearer $accessToken" clone https://dev.azure.com/{yourOrgName}/{yourProjectName}/_git/{yourRepoName}

Совет

Просмотрите диспетчера учетных данных Git (GCM), чтобы избежать ввода учетных данных каждый раз. Используйте GCM с типом учетных данных по умолчанию как Oauth для создания токенов Microsoft Entra.

Личные маркеры доступа

Личные токены доступа (PATs) предоставляют доступ к Azure DevOps, не требуя прямого использования вашего имени пользователя и пароля. Срок действия этих маркеров позволяет ограничить область доступа к данным.

Используйте PATS для проверки подлинности, если у вас нет ключей SSH, настроенных в системе, или необходимо ограничить разрешения, предоставленные учетными данными.

Для взаимодействия с Git требуется имя пользователя, которое может быть любым, кроме пустой строки. Чтобы использовать PAT с базовой проверкой подлинности HTTP, настройте Base64-encode для $MyPat, как показано в следующем блоке кода.

В PowerShell введите следующий код.

$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue

git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Совет

Если вы регулярно используете PATs, лучше воспользуйтесь GCM (диспетчер учетных данных Git), чтобы не вводить учетные данные каждый раз. Еще лучше изучить использование GCM с типом учетных данных по умолчанию как Oauth для создания токенов Microsoft Entra вместо PATS по возможности.

Ключи SSH

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

Анимированный GIF-файл с добавлением открытого ключа SSH в Azure DevOps

SSH — отличный вариант, если вы уже настроили его в системе, просто добавьте открытый ключ в Azure DevOps и клонируйте репозитории с помощью SSH. SSH может быть предпочтительным для пользователей Linux, macOS или Windows, которые используют Git для Windows и не могут использовать менеджеры учетных данных Git или личные токены доступа для аутентификации по HTTPS.

Дополнительные сведения см. в статье "Настройка SSH с помощью Azure DevOps".

Создание маркеров с помощью диспетчера учетных данных Git

Используйте диспетчер учетных данных Git (GCM), чтобы избежать ввода ваших учетных данных каждый раз и обеспечить большую безопасность маркера при доступе к репозиториям Azure. Войдите на веб-портал, создайте маркер и используйте маркер в качестве пароля при подключении к Azure Repos. Токены Microsoft Entra или PAT создаются по запросу, если у вас установлен и сохранен диспетчер учетных данных локально для использования с командной строкой Git или другим клиентом.

Существующие репозитории

  • Удалить существующий источник: Если вы ранее добавили источник с помощью имени пользователя, удалите его, выполнив следующую команду:

    git remote remove origin

  • Аутентификация с помощью PAT: Если возникают проблемы со стандартной проверкой подлинности, выполните следующую команду, чтобы пройти проверку подлинности с помощью командной строки:

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    path to git repo = /_git/do ссылается на структуру пути URL, используемую в Azure DevOps для репозиториев Git. Сегмент /_git/ указывает, что вы обращаетесь к репозиторию Git, и вы должны заменить do фактическим именем репозитория. Например, если репозиторий называется my-repo, путь будет иметь значение/_git/my-repo.

  • Клонировать репозиторий: Если вы используете Git и нужно пройти аутентификацию, выполните следующую команду:

    git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}

    Замените {organization} именем организации Azure DevOps и {repository} именем репозитория.