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