Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services
Узнайте, как использовать OAuth 2.0 для проверки подлинности приложений для доступа к REST API Azure DevOps, не требуя, чтобы пользователи неоднократно предоставляли учетные данные.
Внимание
Используйте идентификатор Microsoft Entra ID OAuth для новых приложений. Azure DevOps OAuth 2.0 устарел и больше не принимает новые регистрации.
Как OAuth 2.0 работает с Azure DevOps
Примечание.
OAuth 2.0 доступен только для Azure DevOps Services, а не для Azure DevOps Server. Для локальных сценариев используйте клиентские библиотеки, проверку подлинности Windows или личные маркеры доступа.
Azure DevOps Services использует протокол OAuth 2.0 для авторизации приложений и создания маркеров доступа для вызовов REST API. Процесс включает в себя следующие действия.
- Регистрация приложения: регистрация приложения с помощью поставщика OAuth.
- Авторизация пользователей: предоставьте приложению разрешение на доступ к данным пользователей.
- Обмен токенами: получить токен доступа для выполнения вызовов API.
- Доступ к API: используйте маркер для запросов REST API, прошедших проверку подлинности.
- Обновление маркера: обновление маркеров с истекшим сроком действия для поддержания доступа.
Параметры реализации OAuth
Выберите соответствующую реализацию OAuth в зависимости от потребностей приложения.
Microsoft Entra ID OAuth (рекомендуется)
Microsoft Entra ID OAuth предоставляет наиболее безопасный и будущий метод проверки подлинности для приложений Azure DevOps. Она предлагает следующие преимущества:
- Интеграция предприятия: бесшовная интеграция с существующей инфраструктурой Microsoft Entra ID.
- Улучшенная безопасность: расширенные функции безопасности включают условный доступ Microsoft Entra и многофакторную проверку подлинности.
- Будущая поддержка: платформа, которая активно обслуживается и поддерживается.
- Единое удостоверение: единый вход в службах Майкрософт.
Начните: Следуйте нашему руководству OAuth по идентификатору Microsoft Entra ID для получения сведений о реализации и рекомендаций по миграции.
Azure DevOps OAuth (не рекомендуется)
Предупреждение
Azure DevOps OAuth устарел. Новые регистрации приложений больше не принимаются по состоянию на апрель 2025 года. Служба намечена на полное прекращение в 2026 году. Миграция существующих приложений на Microsoft Entra ID OAuth.
Для существующих OAuth-приложений Azure DevOps:
- Ознакомьтесь с руководством по OAuth Azure DevOps для получения сведений о текущей реализации.
- Спланируйте миграцию на Microsoft Entra ID OAuth до 2026 года.
- При необходимости управляйте существующими авторизациями приложений .
Планирование миграции: Начните планирование вашей миграции на Microsoft Entra ID OAuth. Руководство по миграции содержит советы и рекомендации по плавному переходу.
Области OAuth
Области определяют, к каким ресурсам Azure DevOps может получить доступ ваше приложение. Microsoft Entra ID OAuth и Azure DevOps OAuth используют одни и те же области действия.
Основные соображения по ключевым областям
- Принцип наименьшей привилегии: запрашивать только минимальные области, необходимые приложению.
-
Наследование областей: некоторые области включают другие (например,
vso.code_manageвключаютvso.code_write). - Охват API: области обеспечивают доступ к REST API и выбирают только конечные точки Git (API SOAP не поддерживаются).
- Согласие пользователя. Пользователи должны явно предоставить разрешение для каждой запрошенной области.
Поиск необходимых областей
Чтобы определить области, необходимые приложению, выполните приведенные ниже действия.
- Ознакомьтесь со справочной документацией по API для каждой конечной точки, которую вы планируете использовать.
- Найдите заголовок на каждой
scopesстранице API. - Чтобы избежать запроса избыточных разрешений, рассмотрите связи области действия.
Доступные области
| Категория | Область | Имя | Высокий уровень привилегий | Описание | Наследует от |
|---|---|---|---|---|---|
| Расширенная безопасность | vso.advsec |
Расширенная безопасность (чтение) | Да | Предоставляет возможность читать оповещения, экземпляры результатов и экземпляры результатов анализа. | |
vso.advsec_write |
Расширенная безопасность (чтение и запись) | Да | Предоставляет возможность загружать анализы в формате шрифта с засечками. | vso.advsec |
|
vso.advsec_manage |
Расширенная безопасность (чтение, запись и управление) | Да | Предоставляет возможность загружать анализы в рамках серии. | vso.advsec_write |
|
| Пулы агентов | vso.agentpools |
Пулы агентов (просмотр) | Предоставляет возможность просматривать задачи, пулы, очереди, агентов, а также текущие или недавно завершенные задания для агентов. | ||
vso.agentpools_manage |
Пулы агентов (доступ и управление) | Да | Предоставляет возможность управлять пулами, очередями и агентами. | vso.agentpools |
|
vso.environment_manage |
Среда (чтение и управление) | Да | Предоставляет возможность управлять пулами, очередями, агентами и окружениями. | vso.agentpools_manage |
|
| Аналитика | vso.analytics |
Аналитика (только для чтения) | Предоставляет возможность запрашивать данные аналитики. | ||
| Auditing | vso.auditlog |
Журнал аудита (чтение) | Предоставляет пользователям возможность читать журнал аудита. | ||
vso.auditstreams_manage |
Потоки аудита (чтение) | Да | Предоставляет пользователям возможность управлять потоками аудита. | vso.auditlog |
|
| Build | vso.build |
Сборка (читать) | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность получать уведомления о событиях сборки через сервисные хуки. | vso.hooks_write |
|
vso.build_execute |
Сборка (чтение и исполнение) | Да | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы. Кроме того, предоставляет возможность очереди сборки, обновления свойств сборки и получения уведомлений о событиях сборки с помощью перехватчиков служб. | vso.build |
|
| Code | vso.code |
Код (чтение) | Предоставляет возможность читать исходный код и метаданные о коммитах, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность искать код и получать уведомления о событиях управления версиями с помощью хуков сервисов. | vso.hooks_write |
|
vso.code_write |
Код (чтение и запись) | Да | Предоставляет возможность читать, обновлять и удалять исходный код и получать метаданные о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать и управлять запросами на вытягивание, проводить обзоры кода и получать уведомления о событиях системы управления версиями через сервисные хуки. | vso.code |
|
vso.code_manage |
Код (чтение, запись и управление) | Да | Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать и управлять репозиториями кода, создавать pull-реквесты и проверки кода, а также получать уведомления о событиях в системе управления версиями с помощью вебхуков. | vso.code_write |
|
vso.code_full |
Код (полный) | Да | Предоставляет полный доступ к исходному коду, метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать pull-реквесты и ревью кода и получать уведомления о событиях управления версиями с помощью служебных хуков. Также включает ограниченную поддержку клиентских OM API. | vso.code_manage |
|
vso.code_status |
Код (состояние) | Предоставляет возможность читать и записывать фиксацию и статус Pull Request. | |||
| Подключенный сервер | vso.connected_server |
Подключенный сервер | Предоставляет возможность доступа к конечным точкам, необходимым с локального подключенного сервера. | ||
| Права доступа | vso.entitlements |
Права (чтение) | Предоставляет доступ только для чтения к конечным точкам лицензирования для получения прав доступа к учетной записи. | ||
vso.memberentitlementmanagement |
Управление правами доступа участников (чтение) | Предоставляет возможность читать пользователей, их лицензии и проекты и расширения, к которые они могут получить доступ. | |||
vso.memberentitlementmanagement_write |
Управление правами участников (запись) | Да | Предоставляет возможность управлять пользователями и их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. | vso.memberentitlementmanagement |
|
| Extensions | 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 |
| Торговая площадка | vso.gallery |
Торговая площадка | Предоставляет доступ на чтение к общедоступным и личным объектам и публикациям. | vso.profile |
|
vso.gallery_acquire |
Marketplace (приобретение) | Предоставляет доступ на чтение и возможность приобретения элементов. | vso.gallery |
||
vso.gallery_publish |
Marketplace (публикация) | Да | Предоставляет доступ на чтение и возможность загрузки, обновления и совместного использования элементов. | vso.gallery |
|
vso.gallery_manage |
Маркетплейс (управление) | Да | Предоставляет доступ для чтения и возможность публиковать и управлять элементами и издателями. | vso.gallery_publish |
|
| Notifications | 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_use |
|
| Проект и команда | 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_execute |
|
| Безопасные файлы | 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 |
||
| Settings | vso.settings |
Параметры (чтение) | Предоставляет возможность чтения параметров. | ||
vso.settings_write |
Параметры (чтение и запись) | Предоставляет возможность чтения и записи параметров. | vso.settings |
||
| Символы | 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 |
||
| Threads | vso.threads_full |
Треды PR | Предоставляет возможность читать и писать в потоки комментариев pull request. | ||
| Tokens | 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. Запрашивайте или соглашайтесь с этой областью с осторожностью, поскольку она обладает значительной мощностью. |
Часто задаваемые вопросы
Q. Можно ли использовать OAuth с мобильными приложениями?
А. Нет. Azure DevOps Services поддерживает только поток веб-сервера (поток кода авторизации), который требует безопасного хранения секрета приложения. Мобильные приложения не могут безопасно хранить секреты, что делает OAuth непригодным для мобильных сценариев.
Альтернатива мобильным приложениям: используйте личные маркеры доступа для проверки подлинности мобильных приложений.
Q. Работает ли OAuth со всеми API Azure DevOps?
А. OAuth поддерживает REST API и выбирает только конечные точки Git. API SOAP не поддерживают проверку подлинности OAuth.
Q. Как выполнить миграцию из Azure DevOps OAuth в Microsoft Entra ID OAuth?
А. Следуйте руководству по миграции OAuth с идентификатором Microsoft Entra ID, который включает в себя следующее:
- Пошаговые инструкции по миграции.
- Примеры кода и рекомендации.
- Соображения по временной шкале для устаревания.
Q. Что происходит с существующим приложением OAuth Azure DevOps после 2026 г.?
А. Существующие приложения OAuth Azure DevOps перестанут работать, когда служба будет полностью устаревшей к 2026 году. Запланируйте миграцию на Microsoft Entra ID OAuth задолго до этого срока.
Выбор пути реализации
- Для новых приложений:Создайте с помощью Microsoft Entra ID OAuth
- Для приложений OAuth для Azure DevOps:Планируйте свою миграцию на Microsoft Entra ID
- Для существующих приложений, которым нужна немедленная поддержка:документация по Azure DevOps OAuth