Использование личных маркеров доступа
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Личный маркер доступа (PAT) служит альтернативным паролем для проверки подлинности в Azure DevOps. Этот PAT идентифицирует вас и определяет специальные возможности и область доступа. Таким образом, обратитесь к PATS с таким же уровнем осторожности, как и пароли.
Внимание
Мы рекомендуем использовать токены Microsoft Entra. Дополнительные сведения о наших усилиях по сокращению использования PAT см. в блоге. Ознакомьтесь с нашим руководством по проверке подлинности , чтобы выбрать подходящий механизм проверки подлинности для ваших потребностей.
При использовании средств Майкрософт учетная запись Майкрософт (MSA) или идентификатор Microsoft Entra распознается и поддерживается. Если вы используете средства, не поддерживающие учетные записи Microsoft Entra или не хотите предоставлять общий доступ к основным учетным данным, paTs может быть подходящим вариантом. Однако мы рекомендуем использовать токены Microsoft Entra всегда, когда это возможно.
Вы можете управлять PATs с помощью следующих методов:
- Пользовательский интерфейс: с помощью настроек пользователя, как описано в этой статье.
- API управления жизненным циклом PAT
- менеджеры учетных данных Git для операций Git. Диспетчеры учетных данных упрощают управление токенами. Без него пользователи должны каждый раз вводить свои учетные данные.
Необходимые компоненты
-
Разрешения:
- Иметь разрешение на доступ и изменение параметров пользователя, где управляются PATs.
-
Проверьте разрешения. Чтобы проверить разрешения, выполните любой из следующих процессов в Azure DevOps:
- Перейдите к профилю и выберите параметров> личного доступа. Если вы можете просмотреть и управлять paTs здесь, у вас есть необходимые разрешения.
- Перейдите в проект и выберите "Разрешения для проекта>". Найдите учетную запись пользователя в списке и проверьте назначенные вам разрешения. Найдите разрешения, связанные с управлением маркерами или параметрами пользователя.
-
Проверьте разрешения. Чтобы проверить разрешения, выполните любой из следующих процессов в Azure DevOps:
- Если у вашей организации есть политики, администратор Azure DevOps может потребовать предоставления вам определенных разрешений или добавления в список разрешений для создания PATS и управления ими.
- PATs подключены к учетной записи пользователя, которая сгенерировала токен. В зависимости от задач, которые выполняет PAT, вам может потребоваться больше разрешений.
- Иметь разрешение на доступ и изменение параметров пользователя, где управляются PATs.
- Уровни доступа: имеют по крайней мере базовый доступ.
- рекомендации по безопасности : ознакомьтесь с рекомендациями по обеспечению безопасности для управления PAT. использовать их только при необходимости и всегда регулярно поворачивать их.
Создание личного маркера доступа
Войдите в свою организацию (
https://dev.azure.com/{Your_Organization}
).На домашней странице откройте параметры пользователя и выберите личные маркеры доступа.
Выберите +Создать маркер.
Присвойте маркеру имя, выберите организацию, в которой вы хотите использовать маркер, а затем установите маркер автоматически истекает после заданного количества дней.
Выберите области для этого маркера, чтобы авторизовать определенные задачи.
Например, чтобы создать маркер для агента сборки и выпуска для проверки подлинности в Azure DevOps, задайте область маркера пулам агентов (чтение и управление). Чтобы прочитать события журнала аудита и управлять или удалять потоки, выберите "Чтение журнала аудита" и нажмите кнопку "Создать".
Примечание.
Возможно, вы не сможете создавать полноуровневые PAT. Если это так, администратор Azure DevOps в Microsoft Entra ID включил политику, которая ограничивает вас на определенный пользовательский набор областей. Дополнительные сведения см. в разделе "Управление PATs" с помощью политик и ограничения создания полноуровневых PAT. Для определяемого пользователем ПАТ необходимой области для доступа к API
vso.governance
управления компонентами не можно выбрать в пользовательском интерфейсе.После завершения скопируйте маркер и сохраните его в безопасном расположении. Для обеспечения безопасности он снова не отображается.
Используйте PAT в любом месте, где учетные данные пользователя требуются для проверки подлинности в Azure DevOps.
Внимание
- Обратитесь к PAT с той же осторожностью, что и пароль, и сохраните его в конфиденциальности.
- Войдите с помощью нового PAT в течение 90 дней для организаций, поддерживаемых идентификатором Microsoft Entra; в противном случае ПАТ становится неактивным. Дополнительные сведения см. в разделе "Частота входа пользователей" для условного доступа.
Notifications
В течение срока существования PAT пользователи получают два уведомления: первый во время создания и второй семь дней до истечения срока его действия.
После создания PAT вы получите уведомление, аналогичное следующему примеру. Это уведомление служит подтверждением успешного добавления PAT в вашу организацию.
На следующем рисунке показан пример семидневного уведомления до истечения срока действия PAT.
Дополнительные сведения см. в статье "Настройка SMTP-сервера" и настройка электронной почты для оповещений и запросов обратной связи.
Непредвиденное уведомление
Если вы получаете неожиданное уведомление PAT, это может означать, что администратор или средство создали для вас PAT. Ниже приведены некоторые примеры.
- Маркер с именем git:
https://dev.azure.com/{Your_Organization}
в YourMachine создается при подключении к репозиторию Git Azure DevOps через git.exe. - Токен с именем «Service Hooks: Azure App Service: Deploy web app» создается, когда вы или администратор настраиваете развертывание веб-приложения Azure App Service.
- Маркер с именем WebAppLoadTestCDIntToken создается вами или администратором при настройке веб-нагрузочного тестирования в рамках конвейера.
- При настройке расширения для обмена сообщениями "Интеграция Microsoft Teams" создается токен с таким названием.
Предупреждение
- отозвать PAT (и изменить пароль), если вы предполагаете, что он был создан по ошибке.
- Обратитесь к администратору, если вы являетесь пользователем Microsoft Entra, чтобы узнать, был ли доступ к неизвестному источнику или расположению вашей организации.
- Просмотрите часто задаваемые вопросы о случайном входе в репозитории GitHub.
Использование PAT
ВАШ PAT служит вашим цифровым удостоверением, так же как и пароль. Вы можете использовать PATs в качестве быстрого способа выполнения одноуровневых запросов или прототипа приложения локально.
Внимание
Когда ваш код работает, рекомендуется переключаться с базовой аутентификации на Microsoft Entra OAuth. Токены Microsoft Entra ID можно использовать везде, где используется PAT, если не указано иначе в этой статье.
Вы можете использовать PAT в коде для проверки подлинности REST API запросов и автоматизации рабочих процессов. Для этого включите PAT в заголовок авторизации HTTP-запросов.
Чтобы предоставить PAT через заголовок HTTP, сначала преобразуйте его в Base64
строку. В следующем примере показано, как преобразовать в Base64
C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
После этого результирующая строка может быть предоставлена в виде заголовка HTTP в следующем формате.
В следующем примере используется класс HttpClient в C#.
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());
}
}
Дополнительные примеры использования PATs можно найти в следующих статьях:
- Аутентификация с помощью репозитория Git
- Настройка диспетчеров учетных данных Git (GCM) для подключения к репозиториям Git
- Использование NuGet на Mac
- Проверка подлинности клиентов отчетов
- Начало работы с Azure DevOps CLI
Изменение ПАТ
Выполните следующие действия.
- Повторно создайте ПАТ, чтобы создать новый маркер, который делает его недействительным.
- Расширение PAT для увеличения срока действия.
- Измените область ПАТ, чтобы изменить свои разрешения.
На домашней странице откройте параметры пользователя и выберите " Профиль".
В разделе "Безопасность" выберите личные маркеры доступа. Выберите маркер, который нужно изменить, а затем измените.
Измените имя маркера, срок действия маркера или область доступа, связанную с маркером, а затем нажмите кнопку "Сохранить".
Отмена ПАТ
Вы можете отозвать PAT в любое время по следующим и другим причинам:
- Отмените персональный токен доступа (ПАТ), если вы подозреваете, что он скомпрометирован.
- Отмените ПАТ, если он больше не нужен.
- Отмените ПАТ для применения политик безопасности или требований соответствия требованиям.
На домашней странице откройте параметры пользователя и выберите " Профиль".
В разделе "Безопасность" выберите личные маркеры доступа. Выберите маркер, для которого требуется отозвать доступ, а затем нажмите кнопку "Отозвать".
Выберите " Отменить" в диалоговом окне подтверждения.
Дополнительные сведения см. в разделе "Отмена pats пользователей" для администраторов.
Изменения в формате
По состоянию на июль 2024 года мы значительно изменили формат PATs, выданных Azure DevOps. Эти изменения обеспечивают дополнительные преимущества безопасности и улучшают средства обнаружения секретов, доступные с помощью наших утечки средств обнаружения PAT или партнерских предложений. Этот новый формат PAT следует рекомендуемму формату во всех продуктах Майкрософт. Включение более идентифицируемых битов повышает скорость обнаружения ложных срабатываний этих средств обнаружения секретов и позволяет нам быстрее устранять обнаруженные утечки.
Ключевые изменения:
- Увеличенная длина маркера: новые маркеры теперь имеют длину 84 символов, при этом 52 символа являются случайными данными. Эта увеличенная длина повышает общую энтропию, что делает маркеры более устойчивыми к потенциальным атакам подбора.
-
Исправлена подпись: маркеры, выданные нашей службой, включают фиксированную
AZDO
подпись на позициях 76-80.
Требуется действие.
- Повторно создайте существующие PATS: настоятельно рекомендуется повторно создать все PAT, которые в настоящее время используются, чтобы воспользоваться этими улучшениями безопасности.
- Поддержка интегратора: интеграторы должны обновлять свои системы, чтобы соответствовать новым и существующим длинам маркеров.
Внимание
Оба формата остаются действительными в обозримом будущем, но мы активно рекомендуем клиентам перейти к новому формату 84 символов. При увеличении нового формата мы рассмотрим выход из более старого 52-символьного формата и всех маркеров, выданных в этом стиле.
Рекомендации по использованию PAT
Рассмотрим альтернативные варианты
- Получите токен Microsoft Entra с помощью Azure CLI для нерегламентированных запросов с часом действия вместо создания долгоживущей PAT.
- Используйте диспетчеры учетных данных, такие как диспетчер учетных данных Git или Диспетчер учетных данных Azure Artifacts для упрощения управления учетными данными. Эти средства могут предложить варианты использовать токены Microsoft Entra в качестве метода аутентификации по умолчанию вместо PAT.
Создание PAT
- Избегайте размещения персональных данных в имени PAT. Не переименуйте строку токена PAT как имя вашего токена.
- Выберите только организацию, к которому требуется доступ, если не требуется доступ к нескольким организациям. Для рабочих процессов, требующих доступа к нескольким организациям, создайте отдельный глобальный PAT для этого рабочего процесса.
- Выберите только необходимые области для каждого PAT. Если это возможно, создайте несколько PAT для каждого рабочего процесса с меньшим количеством областей вместо одного полностью ограниченного PAT. Если ваш PAT требует только разрешений на чтение, не предоставьте ему разрешения на запись до тех пор, пока не потребуется.
- Оставить срок жизни PAT короткими (еженедельно идеально, даже короче лучше) и регулярно поворачивать или повторно создавать их с помощью пользовательского интерфейса или API управления жизненным циклом PAT.
Управление PAT
- Всегда храните ваши персональные токены доступа (PAT) в безопасном решении управления ключами, например Azure KeyVault.
- Аннулируйте PATs, когда они больше не нужны. Администраторы арендатора могут отозвать ПАТ для пользователей организации, если ПАТ скомпрометирован.
- Поверните свои PAT, чтобы использовать новый формат PAT для улучшения обнаружения утечек секретов и аннуляции нашими внутренними инструментами.
Для администраторов
Администраторы-арендаторы могут устанавливать политики для ограничения создания глобальных PAT, полного охвата создания PAT и продолжительности действия PAT. Они также могут включить политики для автоматического отзыва утекших PAT, обнаруженных в общедоступных репозиториях. Используйте эти политики для улучшения безопасности вашей компании.
Вопросы и ответы
Вопрос. Почему не удается изменить или повторно создать область PAT, ограниченную одной организацией?
Ответ. Войдите в организацию, в которой находится область ДЕЙСТВИЯ PAT. Вы можете просмотреть все PAT, когда входите в любую организацию из идентификатора Microsoft Entra, но при входе в конкретную организацию можно изменять только токены, ограниченные областью действия этой организации.
Вопрос. Что происходит с PAT, если учетная запись пользователя отключена?
Ответ. Если пользователь удаляется из Azure DevOps, pat недействителен в течение 1 часа. Если ваша организация подключена к идентификатору Microsoft Entra, PAT также является недействительным в идентификаторе Microsoft Entra, так как он принадлежит пользователю. Рекомендуется сменить PAT на другого пользователя или учетную запись службы, чтобы обеспечить выполнение служб.
Вопрос. Существует ли способ обновить PAT через REST API?
Ответ. Да, вы можете обновить, управлять и создавать PAT с помощью API управления жизненным циклом PAT.
Вопрос: Можно ли использовать PAT со всеми REST API Azure DevOps?
Ответ. Нет. Вы можете использовать базовую проверку подлинности с большинством REST API Azure DevOps, но организации и профили и API жизненного цикла управления поддерживают только Microsoft Entra OAuth. Пример настройки приложения Microsoft Entra для вызова таких API см. в статье Управление PATs с помощью REST API.
Вопрос. Что произойдет, если я случайно проверьте свой PAT в общедоступный репозиторий на GitHub?
Ответ. Azure DevOps проверяет наличие PAT, зарегистрированных в общедоступных репозиториях на GitHub. Когда мы найдем утечку маркера, мы немедленно отправим подробное уведомление по электронной почте владельцу маркера и регистрируем событие в журнале аудита организации Azure DevOps. Если вы не отключили политику автоматически отозванных личных маркеров доступа, мы немедленно отменяем утечку PAT. Мы рекомендуем пострадавшим пользователям устранить проблему, отменив утечку маркера и заменив его новым маркером. Дополнительные сведения см. в статье "Отмена утечки PAT" автоматически.
Вопрос. Можно ли использовать личный маркер доступа в качестве apiKey для публикации пакетов NuGet в веб-канале Артефактов Azure с помощью командной строки dotnet/nuget.exe?
Ответ. Нет. Артефакты Azure не поддерживают передачу PAT в качестве ApiKey. При использовании локальной среды разработки рекомендуется установить поставщика учетных данных для Azure Artifacts для аутентификации в Azure Artifacts. Дополнительные сведения см. в следующих примерах: dotnet, NuGet.exe. Если вы хотите опубликовать свои пакеты с помощью Azure Pipelines, используйте задачу NuGet Authenticate для аутентификации в своём потоке. См. пример .
Вопрос. Почему мой PAT перестал работать?
Ответ. Проверка подлинности PAT требует регулярного входа в Azure DevOps с помощью полного потока проверки подлинности. Вход каждые 30 дней достаточно для многих пользователей, но в зависимости от конфигурации Microsoft Entra может потребоваться выполнить вход чаще. Если ваш PAT перестает работать, сначала попробуйте войти в свою организацию и завершить полный запрос проверки подлинности. Если ваш PAT по-прежнему не работает, проверьте, истек ли срок действия.
Включение базовой аутентификации IIS делает невозможным использование личных токенов доступа (PAT) для Azure DevOps Server. Для получения дополнительной информации см. Использование базовой проверки подлинности IIS в локальной среде Azure DevOps.
Вопрос. Разделы справки создавать ключи доступа, которые не привязаны к конкретному лицу в целях развертывания?
В Azure DevOps можно создать ключи доступа, которые не привязаны к конкретному лицу, с помощью сервисных принципалов или управляемых удостоверений. Дополнительные сведения см. в Управление подключениями служб и Использование секретов Azure Key Vault в конвейерах Azure.
Связанные статьи
- Использование политик для управления личными маркерами доступа для пользователей
- Отмена пользовательских PATS (для администраторов)
- Сведения о безопасности, проверке подлинности и авторизации
- Просмотр разрешений и доступа по умолчанию для Azure DevOps
- Управление личными маркерами доступа (PATs) с помощью REST API
- Управление субъектами-службами и управляемыми удостоверениями в Azure DevOps