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


Авторизация доступа к REST API с помощью OAuth 2.0

Azure DevOps Services

Узнайте, как пройти проверку подлинности пользователей веб-приложения для доступа к REST API, чтобы приложение не продолжало запрашивать имена пользователей и пароли.

Примечание.

  • Следующее руководство предназначено для пользователей Azure DevOps Services, так как OAuth 2.0 не поддерживается на сервере Azure DevOps Server. Клиентские библиотеки — это ряд пакетов, созданных специально для расширения функциональных возможностей Azure DevOps Server. Для локальных пользователей рекомендуется использовать клиентские библиотеки, проверку подлинности Windows или личные маркеры доступа (PATS) для проверки подлинности от имени пользователя.
  • Дополнительные сведения см. в примере OAuth GitHub.

О OAuth 2.0

Azure DevOps Services использует протокол OAuth 2.0 для авторизации приложения для пользователя и создания маркера доступа. Используйте этот маркер при вызове REST API из приложения. При вызове Azure DevOps Services API для этого пользователя используйте маркер доступа этого пользователя. Срок действия маркеров доступа истекает, поэтому при истечении срока действия маркера доступа обновите маркер доступа.

Процесс получения авторизации.

Доступные модели OAuth

Внимание

При создании нового приложения OAuth 2.0 используйте идентификатор Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 будет прекращено в 2026 году. Начиная с февраля 2025 г. мы прекратим прием новых приложений OAuth Azure DevOps. Дополнительные сведения см. в записи блога.

Microsoft Entra ID OAuth

Создание новой платформы может быть подавляющим. В этом руководстве по созданию приложения Entra для Azure DevOps мы собираем полезные ссылки, которые могут быть полезны для запуска процесса разработки приложений OAuth в Microsoft Entra. Для людей, которые переходят из Azure DevOps OAuth в Microsoft Entra OAuth, мы предоставляем полезные советы, которые следует учитывать во время миграции.

Azure DevOps OAuth

Сведения о существующих приложениях см. в руководстве по приложению Azure DevOps OAuth. Вы также можете управлять разрешениями приложений Azure DevOps для доступа к ресурсам.

Области

Разработчики должны указать, какие области они требуют от своих пользователей. Одни и те же области доступны в обеих моделях OAuth. Следующие области доступны только через делегированные потоки (от имени пользователя). Чтобы узнать, какие области необходимы для приложения, просмотрите заголовок scopes на странице справочника по API для каждого используемого API.

Некоторые области могут включать другие области, например vso.code_manage vso.code_write. Например, многие области наследуются от vso.profile. Рассмотрим минимальное количество областей, необходимых при запросе согласия области от пользователей.

Примечание.

Области позволяют получать доступ только к REST API и выбирать конечные точки Git. Доступ к API SOAP не поддерживается.

Категория Область Имя Описание Наследует от
Расширенная безопасность vso.advsec AdvancedSecurity (чтение) Предоставляет возможность чтения оповещений, экземпляров результатов, экземпляров результатов анализа.
vso.advsec_write AdvancedSecurity (чтение и запись) Предоставляет возможность отправлять анализы в сариф vso.advsec
vso.advsec_manage AdvancedSecurity (чтение, запись и управление ими) Предоставляет возможность отправлять анализы в сариф vso.advsec_write
Пулы агентов vso.agentpools Пулы агентов (чтение) Предоставляет возможность просматривать задачи, пулы, очереди, агенты и в настоящее время выполняющихся или недавно завершенных заданий для агентов.
vso.agentpools_manage Пулы агентов (чтение, управление) Предоставляет возможность управлять пулами, очередями и агентами. vso.agentpools
vso.environment_manage Среда (чтение, управление) Предоставляет возможность управлять пулами, очередями, агентами и средами. vso.agentpools_manage
Аналитика vso.analytics Аналитика (чтение) Предоставляет возможность запрашивать данные аналитики.
Аудит vso.auditlog Журнал аудита (чтение) Предоставляет пользователям возможность читать журнал аудита.
vso.auditstreams_manage Аудит потоков (чтение) Предоставляет пользователям возможность управлять потоками аудита. vso.auditlog
Сборка vso.build Сборка (чтение) Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность получать уведомления о событиях сборки с помощью перехватчиков служб. vso.hooks_write
vso.build_execute Сборка (чтение и выполнение) Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность очереди сборки, обновления свойств сборки и возможность получать уведомления о событиях сборки с помощью перехватчиков служб. vso.build
Код vso.code Код (чтение) Предоставляет возможность читать исходный код и метаданные о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность искать код и получать уведомления о событиях управления версиями с помощью перехватчиков служб. vso.hooks_write
vso.code_write Код (чтение и запись) Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать запросы на вытягивание и проверки кода и получать уведомления о событиях управления версиями с помощью перехватчиков служб. vso.code
vso.code_manage Код (чтение, запись и управление) Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать запросы на вытягивание и проверки кода, а также получать уведомления о событиях управления версиями с помощью перехватчиков служб. vso.code_write
vso.code_full Код (полный) Предоставляет полный доступ к исходному коду, метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать запросы на вытягивание и проверки кода, а также получать уведомления о событиях управления версиями с помощью перехватчиков служб. Также включает ограниченную поддержку API клиентских OM. vso.code_manage
vso.code_status Код (состояние) Предоставляет возможность считывания и записи состояния запроса на вытягивание и фиксацию.
Подключенный сервер vso.connected_server Подключенный сервер Предоставляет возможность доступа к конечным точкам, необходимым с локального подключенного сервера.
Объемы обслуживания vso.entitlements Права (чтение) Предоставляет доступ только для чтения к конечной точке прав лицензирования для получения прав учетной записи.
vso.memberentitlementmanagement Управление MemberEntitlement (чтение) Предоставляет возможность читать пользователей, их лицензии, а также проекты и расширения, к которые они могут получить доступ.
vso.memberentitlementmanagement_write Управление MemberEntitlement (запись) Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. vso.memberentitlementmanagement
Расширения vso.extension Расширения (чтение) Предоставляет возможность чтения установленных расширений. vso.profile
vso.extension_manage Расширения (чтение и управление) Предоставляет возможность устанавливать, удалять и выполнять другие административные действия в установленных расширениях. vso.extension
vso.extension.data Данные расширения (чтение) Предоставляет возможность считывать данные (параметры и документы), хранящиеся установленными расширениями. vso.profile
vso.extension.data_write Данные расширения (чтение и запись) Предоставляет возможность чтения и записи данных (параметров и документов), хранящихся установленными расширениями. vso.extension.data
Подключения Github vso.githubconnections Подключения GitHub (чтение) Предоставляет возможность чтения подключений GitHub и репозиториев GitHub.
vso.githubconnections_manage Подключения GitHub (чтение и управление ими) Предоставляет возможность чтения и управления подключениями GitHub и репозиториями GitHub vso.githubconnections
Graph и identity vso.graph Graph (чтение) Предоставляет возможность читать сведения о членстве пользователей, групп, областей и групп.
vso.graph_manage Graph (управление) Предоставляет возможность считывать сведения о пользователе, группе, области и членстве в группах, а также добавлять пользователей, группы и управлять членством в группах. vso.graph
vso.identity Удостоверение (чтение) Предоставляет возможность чтения удостоверений и групп.
vso.identity_manage Удостоверение (управление) Предоставляет возможность чтения, записи и управления удостоверениями и группами. vso.identity
Группа компьютеров vso.machinegroup_manage Группа развертывания (чтение, управление) Предоставляет возможность управления пулами групп развертывания и агентов. vso.agentpools_manage
Marketplace vso.gallery Marketplace Предоставляет доступ на чтение к общедоступным и частным элементам и издателям. vso.profile
vso.gallery_acquire Marketplace (приобретение) Предоставляет доступ на чтение и возможность получения элементов. vso.gallery
vso.gallery_publish Marketplace (публикация) Предоставляет доступ на чтение и возможность отправки, обновления и предоставления общего доступа к элементам. vso.gallery
vso.gallery_manage Marketplace (управление) Предоставляет доступ на чтение и возможность публиковать и управлять элементами и издателями. vso.gallery_publish
Уведомления vso.notification Уведомления (чтение) Предоставляет доступ на чтение к подпискам и метаданным событий, включая значения поля, допускающие фильтрацию. vso.profile
vso.notification_write Уведомления (запись) Предоставляет доступ на чтение и запись к подпискам и доступ на чтение к метаданным событий, включая отфильтрованные значения полей. vso.notification
vso.notification_manage Уведомления (управление) Предоставляет доступ на чтение, запись и управление подписками и доступ на чтение к метаданным событий, включая значения поля, допускающие фильтрацию. vso.notification_write
vso.notification_diagnostics Уведомления (диагностика) Предоставляет доступ к журналам диагностики, связанным с уведомлениями, и предоставляет возможность включить диагностика для отдельных подписок. vso.notification
Упаковка vso.packaging Упаковка (чтение) Предоставляет возможность чтения веб-каналов и пакетов. vso.profile
vso.packaging_write Упаковка (чтение и запись) Предоставляет возможность создавать и читать веб-каналы и пакеты. vso.packaging
vso.packaging_manage Упаковка (чтение, запись и управление) Предоставляет возможность создавать, читать, обновлять и удалять веб-каналы и пакеты. vso.packaging_write
Ресурсы конвейера vso.pipelineresources_use Ресурсы конвейера (использование) Предоставляет возможность утвердить запрос конвейера на использование защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных.
vso.pipelineresources_manage Ресурсы конвейера (использование и управление ими) Предоставляет возможность управлять защищенным ресурсом или запросом конвейера для использования защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных. vso.pipelineresources_manage
Проект и команда vso.project Проект и команда (чтение) Предоставляет возможность читать проекты и команды.
vso.project_write Проект и команда (чтение и запись) Предоставляет возможность читать и обновлять проекты и команды. vso.project
vso.project_manage Проект и команда (чтение, запись и управление ими) Предоставляет возможность создавать, читать, обновлять и удалять проекты и команды. vso.project_write
Выпуск vso.release Выпуск (чтение) Предоставляет возможность считывать артефакты выпуска, включая выпуски, определения выпусков и среду выпуска. vso.profile
vso.release_execute Выпуск (чтение, запись и выполнение) Предоставляет возможность считывания и обновления артефактов выпуска, включая выпуски, определения выпусков и среду выпуска, а также возможность очереди нового выпуска. vso.release
vso.release_manage Выпуск (чтение, запись, выполнение и управление ими) Предоставляет возможность читать, обновлять и удалять артефакты выпуска, включая выпуски, определения выпусков и среду выпуска, а также возможность очереди и утверждения нового выпуска. vso.release_manage
Безопасные файлы vso.securefiles_read Безопасные файлы (чтение) Предоставляет возможность чтения защищенных файлов.
vso.securefiles_write Безопасные файлы (чтение, создание) Предоставляет возможность чтения и создания защищенных файлов. vso.securefiles_read
vso.securefiles_manage Безопасные файлы (чтение, создание и управление ими) Предоставляет возможность читать, создавать и управлять защищенными файлами. vso.securefiles_write
Безопасность vso.security_manage Безопасность (управление) Предоставляет возможность чтения, записи и управления разрешениями безопасности.
Подключения службы vso.serviceendpoint Конечные точки службы (чтение) Предоставляет возможность чтения конечных точек службы. vso.profile
vso.serviceendpoint_query Конечные точки службы (чтение и запрос) Предоставляет возможность чтения и запроса конечных точек службы. vso.serviceendpoint
vso.serviceendpoint_manage Конечные точки службы (чтение, запрос и управление) Предоставляет возможность чтения, запроса и управления конечными точками службы. vso.serviceendpoint_query
Перехватчики служб vso.hooks Перехватчики служб (чтение) Предоставляет возможность считывания подписок и метаданных службы, включая поддерживаемые события, потребители и действия. (Больше не общедоступна.) vso.profile
vso.hooks_write Перехватчики служб (чтение и запись) Предоставляет возможность создавать и обновлять подписки на службу перехватчиков и читать метаданные, включая поддерживаемые события, потребители и действия. (Больше не общедоступна.) vso.hooks
vso.hooks_interact Перехватчики служб (взаимодействуют) Предоставляет возможность взаимодействовать и выполнять действия по событиям, полученным через перехватчики служб. (Больше не общедоступна.) vso.profile
Параметры vso.settings Параметры (чтение) Предоставляет возможность чтения параметров.
vso.settings_write Параметры (чтение и запись) Предоставляет возможность создавать и читать параметры.
Символы vso.symbols Символы (чтение) Предоставляет возможность считывать символы. vso.profile
vso.symbols_write Символы (чтение и запись) Предоставляет возможность чтения и записи символов. vso.symbols
vso.symbols_manage Символы (чтение, запись и управление) Предоставляет возможность чтения, записи и управления символами. vso.symbols_write
Группы задач vso.taskgroups_read Группы задач (чтение) Предоставляет возможность чтения групп задач.
vso.taskgroups_write Группы задач (чтение, создание) Предоставляет возможность читать и создавать группы задач. vso.taskgroups_read
vso.taskgroups_manage Группы задач (чтение, создание и управление ими) Предоставляет возможность читать, создавать и управлять группами задач. vso.taskgroups_write
Панель мониторинга группы vso.dashboards Панели мониторинга группы (чтение) Предоставляет возможность считывать сведения о панели мониторинга группы.
vso.dashboards_manage Панели мониторинга группы (управление) Предоставляет возможность управлять сведениями панели мониторинга группы. vso.dashboards
Управление тестами vso.test Управление тестами (чтение) Предоставляет возможность считывать планы тестирования, варианты, результаты и другие связанные артефакты управления тестами. vso.profile
vso.test_write Управление тестами (чтение и запись) Предоставляет возможность читать, создавать и обновлять тестовые планы, варианты, результаты и другие связанные артефакты управления тестами. vso.test
Потоки vso.threads_full Потоки PR Предоставляет возможность чтения и записи для потоков комментариев запроса на вытягивание.
Токены vso.tokens Делегированные маркеры авторизации Предоставляет пользователям возможность управлять делегированными маркерами авторизации.
vso.tokenadministration Администрирование токенов Предоставляет возможность управления (просмотром и отменой) существующих маркеров администраторам организации.
Профиль пользователя vso.profile Профиль пользователя (чтение) Предоставляет возможность читать профиль, учетные записи, коллекции, проекты, команды и другие артефакты организации верхнего уровня.
vso.profile_write Профиль пользователя (запись) Предоставляет возможность записи в профиль. vso.profile
Группы переменных vso.variablegroups_read Группы переменных (чтение) Предоставляет возможность чтения групп переменных.
vso.variablegroups_write Группы переменных (чтение, создание) Предоставляет возможность считывания и создания групп переменных. vso.variablegroups_read
vso.variablegroups_manage Группы переменных (чтение, создание и управление) Предоставляет возможность чтения, создания групп переменных и управления ими. vso.variablegroups_write
Вики vso.wiki Вики-сайт (чтение) Предоставляет возможность читать вики-страницы, вики-страницы и вики-вики-вложения. Кроме того, предоставляет возможность поиска на вики-страниц.
vso.wiki_write Вики-сайт (чтение и запись) Предоставляет возможность читать, создавать и обновлять вики-страницы, вики-страницы и вики-вложения. vso.wiki
Рабочие элементы vso.work Рабочие элементы (чтение) Предоставляет возможность считывать рабочие элементы, запросы, доски, области и пути итерации и другие связанные метаданные рабочих элементов. Кроме того, предоставляет возможность выполнять запросы, выполнять поиск рабочих элементов и получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. vso.hooks_write
vso.work_write Рабочие элементы (чтение и запись) Предоставляет возможность читать, создавать и обновлять рабочие элементы и запросы, метаданные доски обновления, области чтения и итерации пути других связанных метаданных рабочих элементов, выполнять запросы и получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. vso.work
vso.work_full Рабочие элементы (полные) Предоставляет полный доступ к рабочим элементам, запросам, невыполненной работе, планам и метаданным отслеживания рабочих элементов. Кроме того, предоставляет возможность получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. vso.work_write
Олицетворение пользователя user_impersonation Олицетворение пользователя Полный доступ к REST API Visual Studio Team Services. Запрос и /или согласие этой области с осторожностью, так как это очень мощно!

Вопросы и ответы

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

Вопрос. Можно ли использовать OAuth с мобильным телефонным приложением?

Ответ. Нет. Azure DevOps Services поддерживает только поток веб-сервера, поэтому невозможно реализовать OAuth, так как вы не можете безопасно хранить секрет приложения.

Вопрос. Можно ли использовать OAuth с конечными точками SOAP и REST API?

Ответ. Нет. OAuth поддерживается только в REST API.