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


Авторизация доступа к 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 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

Создание новой платформы может быть подавляющим. В этом руководстве по созданию приложения Microsoft 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_managevso.code_write. Например, многие области наследуются от vso.profile. Учтите минимальное количество областей доступа, необходимых при запросе согласия на доступ от пользователей.

Примечание.

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

Категория Область Имя Высокий риск Описание Наследует от
Расширенная безопасность vso.advsec AdvancedSecurity (чтение) Да Предоставляет возможность просмотра оповещений, чтения экземпляров результатов и экземпляров результатов анализа.
vso.advsec_write РасширеннаяБезопасность (чтение и запись) Да Предоставляет возможность загружать файлы анализа в формате SARIF vso.advsec
vso.advsec_manage AdvancedSecurity (чтение, запись и управление) Да Предоставляет возможность загружать файлы анализа в формате SARIF 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 Код (чтение и запись) Да Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать pull-запросы, управлять проверками кода, а также получать уведомления о событиях управления версиями через service hooks. vso.code
vso.code_manage Код (чтение, запись и управление) Да Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать и управлять репозиториями кода, создавать pull-реквесты и проверки кода, а также получать уведомления о событиях в системе управления версиями с помощью вебхуков. vso.code_write
vso.code_full Код (полный) Да Предоставляет полный доступ к исходному коду, метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать и управлять репозиториями кода, создавать pull-реквесты и проверки кода, а также получать уведомления о событиях в системе управления версиями с помощью вебхуков. Также включает ограниченную поддержку клиентских OM API. vso.code_manage
vso.code_status Код (состояние) Предоставляет возможность чтения и записи состояния фиксации и запроса на вытягивание.
Подключенный сервер vso.connected_server Подключенный сервер Предоставляет возможность доступа к конечным точкам, необходимым с локального подключенного сервера.
Права vso.entitlements Права (чтение) Предоставляет доступ только для чтения к конечной точке прав лицензирования для получения прав учетной записи.
vso.memberentitlementmanagement Управление правами участника (чтение) Предоставляет возможность читать пользователей, их лицензии, а также проекты и расширения, к которые они могут получить доступ.
vso.memberentitlementmanagement_write Управление правами участников (запись) Да Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. 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.
vso.githubconnections_manage Подключения GitHub (чтение и управление ими) Да Предоставляет возможность чтения и управления подключениями GitHub и репозиториями GitHub vso.githubconnections
Граф и идентичность vso.graph Граф (чтение) Предоставляет возможность читать сведения о пользователях, группах, областях применения и членстве в группах.
vso.graph_manage График (управление) Да Предоставляет возможность считывать сведения о пользователе, группе, области и членстве в группах, а также добавлять пользователей, группы и управлять членством в группах. vso.graph
vso.identity Идентичность (чтение) Предоставляет возможность чтения идентификаторов и групп.
vso.identity_manage Идентификация (управление) Да Предоставляет права на чтение, запись и управление идентификацией и группами. vso.identity
Группа компьютеров vso.machinegroup_manage Группа внедрения (читать, управлять) Да Предоставляет возможность управления пулами групп развертывания и агентов. vso.agentpools_manage
Marketplace vso.gallery Торговая площадка Предоставляет доступ на чтение к общедоступным и личным объектам и публикациям. vso.profile
vso.gallery_acquire Marketplace (приобретение) Предоставляет доступ на чтение и возможность получения элементов. vso.gallery
vso.gallery_publish Marketplace (публикация) Да Предоставляет доступ на чтение и возможность загрузки, обновления и совместного использования элементов. vso.gallery
vso.gallery_manage Маркетплейс (управление) Да Предоставляет доступ для чтения и возможность публиковать и управлять элементами и издателями. 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 Предоставляет возможность читать и писать в потоки комментариев pull request.
Токены 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.