Использование личных маркеров доступа


После создания PAT вы можете использовать его там, где требуются учетные данные пользователя для проверки подлинности в Azure DevOps.

Уведомления

Пользователи получают два уведомления в течение времени существования PAT-One при создании, а остальные семь дней до истечения срока действия.

После создания PAT вы получите уведомление, аналогичное приведенному в следующем примере.

Уведомление о создании PAT

За семь дней до истечения срока действия PAT вы получаете уведомление, как в следующем примере.

Уведомление о ближайшем окончании срока действия PAT

Непредвиденное уведомление

При получении непредвиденного уведомления PAT администратор или инструмент мог создать PAT от вашего имени. См. следующие примеры.

  • при подключении к Azure DevOps репозиторию Git с помощью git.exe. Он создает маркер с отображаемым именем, например "Git: https://MyOrganization.visualstudio.com/ On Мойкомпьютер".
  • Когда вы или администратор настраиваете развертывание веб-приложения в службе приложений Azure, он создает маркер с отображаемым именем, например "перехватчики событий:: развертывание веб-приложения" в службе приложений Azure: deploy Web App.
  • Когда вы или администратор настроите веб-тест нагрузки в рамках конвейера, он создает маркер с отображаемым именем, например "Вебапплоадтесткдинттокен".
  • при настройке расширения для обмена сообщениями интеграции Microsoft Teams создается маркер с отображаемым именем, например "интеграция Microsoft Teams".

Если вы считаете, что PAT существует по ошибке, мы рекомендуем отозвать Pat. Затем измените пароль. В качестве пользователя Azure AD обратитесь к администратору, чтобы узнать, использовалась ли ваша организация из неизвестного источника или расположения. см. также вопросы и ответы о случайной проверке PAT в общедоступном репозитории GitHub.

Использование PAT

Ваш маркер является вашим идентификатором и представляет вас при его использовании. Сосчитайте и используйте PAT, например ваш пароль.

Для взаимодействия Git требуется имя пользователя, которое может быть любым, кроме пустой строки. В качестве пароля используется PAT. Кроме того, необходимо выполнить кодирование имени пользователя в Base64 и PAT, чтобы использовать его с обычной проверкой подлинности HTTP. В Linux или macOS в bash можно ввести:

MY_PAT=yourPAT # replace "yourPAT" with your actual PAT
B64_PAT=$(printf "%s"":$MY_PAT" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName 

Совет

Для существующих репозиториев, если вы уже добавили источник с помощью имени пользователя, сначала выполните следующую команду. git remote remove origin В противном случае выполните следующую команду: git remote add origin https://<PAT>@<company_machineName>.visualstudio.com:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all

в Windows можно сделать что-то аналогичное в PowerShell:

$MyPat = 'yourPAT'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("$MyPat"))
git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Чтобы обеспечить безопасность маркера, используйте диспетчеры учетных данных, чтобы не вводить учетные данные каждый раз. Рекомендуется использовать следующий Диспетчер учетных данных:

Использование PAT в коде

См. Следующий пример, который получает список сборок, использующих фигурные скобки.


curl -u :{PAT} https://dev.azure.com/{organization}/_apis/build-release/builds

Если вы хотите предоставить PAT через заголовок HTTP, сначала преобразуйте его в строку Base64 (в следующем примере показано, как преобразовать в base64 с помощью C#). Полученная строка затем может быть представлена в виде заголовка HTTP в следующем формате:

Authorization: Basic BASE64_USERNAME_PAT_STRING

Здесь на C# используется класс HttpClient.

public static async void GetBuilds()
{
    try
    {
        var personalaccesstoken = "PATFROMWEB";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", "", personalaccesstoken))));

            using (HttpResponseMessage response = client.GetAsync(
                        "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
            {
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

Совет

При использовании переменных добавьте в $ начало строки, как показано в следующем примере.

public static async void GetBuilds()
{
    try
    {
        var personalaccesstoken = "PATFROMWEB";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", "", personalaccesstoken))));

            using (HttpResponseMessage response = client.GetAsync(
                        $"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
            {
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

Когда ваш код работает, лучше всего перейти с базовой проверки подлинности на OAuth.

Если включить обычную проверку подлинности IIS для TFS, ПАТС недействительна. Дополнительные сведения см. в статье использование обычной проверки подлинности IIS с локальнойсредой TFS.

дополнительные примеры использования патс см. в статьях диспетчеры учетных данных Git, интерфейсы api, NuGet на компьютерах Mac, клиентов отчетовили начало работы с Azure DevOps CLI.

Изменение PAT

Можно повторно создать или расширить PAT и изменить его область.

Примечание

Сведения о включении нового пользовательского интерфейса для новой страницы диспетчера учетных записей см. в разделе Управление и включение компонентов.

  1. На домашней странице откройте параметры пользователя и выберите профиль.

    Страница Мой профиль Team Services, предварительная версия, изменение PAT.

  2. В разделе Безопасность выберите Личные маркеры доступа. Выберите маркер, для которого необходимо изменить, и нажмите кнопку изменить.

    Выберите Изменить для изменения PAT

  3. Измените имя токена, организацию, к которой он применяется, срок действия маркера или область доступа, связанную с маркером, а затем нажмите кнопку сохранить.

    Изменение и сохранение PAT

Отзыв PAT

Вы можете отозвать PAT в любое время, по различным причинам.

Примечание

Сведения о включении нового пользовательского интерфейса для новой страницы диспетчера учетных записей см. в разделе Управление и включение компонентов.

  1. На домашней странице откройте параметры пользователя и выберите профиль.

    Страница

  2. В разделе Безопасность выберите Личные маркеры доступа. Выберите маркер, для которого требуется отозвать доступ, а затем нажмите кнопку отозвать.

    Отозвать токен или все токены

  3. В диалоговом окне подтверждения выберите отозвать .

    Подтвердить отзыв

Часто задаваемые вопросы

Вопрос. Существует ли способ продления PAT с помощью REST API?

Ответ. Да, существует способ продления, управления и создания ПАТС с помощью наших API- интерфейсов управления жизненным циклом Pat. Дополнительные сведения об обновлении, повторном создании и вращении ПАТС см. в статье вопросы и ответы.

вопрос. можно ли использовать обычную проверку подлинности для всех Azure DevOps интерфейсов api restful?

Ответ. Нет. В большинстве случаев можно использовать обычную проверку подлинности, но Организации и профили поддерживают только OAuth. Дополнительные сведения см. в статье Управление ПАТС с помощью REST API.

Вопрос. что произойдет, если я случайно проверит мои дела в общедоступном репозитории на GitHub?

ответ. Azure DevOps сканирует патс в общедоступных репозиториях на GitHub. при обнаружении потерянного маркера немедленно отправляется подробное уведомление владельцу маркера и регистрируется событие в журнале аудитаAzure DevOpsной организации. Мы советуем затронутым пользователям немедленно устранить проблемы, повернув или отменяя утечку.

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | Team Foundation Server 2018 — Team Foundation Server 2017

Личный маркер доступа (PAT) используется в качестве альтернативного пароля для проверки подлинности в Azure DevOps. Узнайте, как создавать, использовать, изменять и отзывать ПАТС для Azure DevOps.

если вы работаете в средствах корпорации майкрософт, то учетная запись Майкрософт (MSA) или Azure Active Directory (Azure AD) является приемлемым и хорошо поддерживаемым подходом. Но если вы работаете со сторонними инструментами, которые не поддерживают учетные записи Майкрософт или Azure AD, или вы не хотите предоставлять основные учетные данные для средства, вы можете использовать ПАТС для ограничения риска.

ПАТС легко создавать, когда они нужны, и их легко отозвать. Чтобы настроить ПАТС для сторонних средств, используйте Диспетчеры учетных данных Git или создайте их вручную. Рекомендуется ознакомиться с руководством по проверке подлинности , чтобы помочь вам выбрать подходящий механизм проверки подлинности. Для небольших проектов, для которых требуется менее надежное решение, ПАТС является простой альтернативой. Если пользователи не используют диспетчер учетных данных, им необходимо каждый раз вводить учетные данные.

Вы можете создавать ПАТС и управлять ими одним из следующих способов:

Важно!

для организаций, которые поддерживаются Azure Active Directory, у вас есть 90 дней для входа в систему с новым PAT; в противном случае она считается неактивной. Дополнительные сведения см. в статье частота входа пользователя в систему для условного доступа.

Создание личного маркера доступа

Примечание

Сведения о включении нового пользовательского интерфейса для новой страницы диспетчера учетных записей см. в разделе Управление и включение компонентов.

  1. Вход в организацию в Azure DevOps ( https://dev.azure.com/{yourorganization} )

  2. На домашней странице откройте параметры пользователя, а затем выберите Личные маркеры доступа.

    Выбор персональных маркеров доступа

  3. И выберите + Новый токен.

    Выберите новый токен для создания

  4. Присвойте маркеру имя, выберите организацию, в которой вы хотите использовать токен, а затем выберите срок существования маркера.

    Введите сведения о базовом маркере

  5. Выберите области для этого маркера, которые следует авторизовать для конкретных задач.

    например, чтобы создать маркер, позволяющий агенту сборки и выпуска выполнить проверку подлинности в Azure DevOps Services, ограничьте область действия токена на пулы агентов ( управление для чтения). Для чтения событий журнала аудита, а затем для управления и удаления потоков выберите пункт чтение журнала аудита, а затем выберите создать.

    Выбор областей для PAT

  6. Когда все будет готово, Скопируйте маркер. Для обеспечения безопасности он не будет показан снова. Используйте этот маркер в качестве пароля.

    Копирование токена в буфер обмена

  1. Войдите на веб-портал ( https://{server}:8080/tfs/ ).

  2. На домашней странице откройте профиль. Перейдите к сведениям о безопасности.

    Домашняя страница, откройте профиль, перейдите к разделу Безопасность.

  3. Создайте личный маркер доступа.

    Добавление личного маркера доступа

  4. Присвойте маркеру имя. Выберите срок существования токена.

    При наличии нескольких организаций можно также выбрать организацию, в которой вы хотите использовать маркер.

    Укажите имя маркера, а затем выберите срок существования. если используется Azure DevOps Services, выберите учетную запись для токена.

  5. Выберите области для этого маркера, которые следует авторизовать для конкретных задач.

    Например, чтобы создать маркер, позволяющий агенту сборки и выпуска выполнить проверку подлинности, ограничьте область действия токена на Пулы агентов (чтение, управление).

  6. Когда все будет готово, Скопируйте маркер. Для обеспечения безопасности он не будет показан снова. Используйте этот маркер в качестве пароля. Выберите Закрыть.

    Использование токена в качестве пароля для средств или приложений Git