Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью этого обновления мы улучшаем безопасность и проверку подлинности в Azure DevOps. Совместные секреты для OAuth Azure DevOps обеспечивают беспрепятственную смену секретов, а GitHub Advanced Security обеспечивает более эффективную фильтрацию на странице обзора безопасности, гарантируя правильную маршрутизацию публикации зависимостей и уведомлений о сканировании кода в несколько репозиториев.
Обновления размещенных образов в Azure Pipelines, включая Ubuntu-24.04, Windows 2025 и mac-OS 15 Sequoia, обеспечивают всё более безопасную и надёжную работу.
Дополнительные сведения см. в заметках о выпуске.
Общие сведения
- Перекрытие токенов доступа для Azure DevOps OAuth
- вывод из использования тегов статистики по языкам из сводной страницы проекта
- Добавлено разрешение "Планы доставки"
Расширенная безопасность GitHub для Azure DevOps
- страница обзора рисков безопасности улучшена новыми столбцами и параметрами фильтрации
- сценарии публикации в нескольких репозиториях, поддерживаемые расширенной безопасностью GitHub для Azure DevOps
- Веб-хуки для оповещений GitHub Advanced Security в Azure DevOps (предварительная версия)
- поддержка pnpm версии 9 появляется в GitHub Advanced Security для сканирования зависимостей в Azure DevOps
Пайплайны Azure
- обновления изображений в хостинге
- Федерация идентичности рабочих нагрузок использует Выдающий центр Entra
- Gradle@4 задача
- Идентичность пользователя, запросившего запуск этапа
Планы тестирования
- улучшения задач публикации результатов покрытия кода версии 2
- Экспорт тестовых случаев с настраиваемыми столбцами в XLSX
Общие сведения
Перекрывающиеся секреты для Azure DevOps OAuth
Мы рады представить новую функцию перекрывающихся секретов в Azure DevOps OAuth, предназначенную для повышения безопасности и оптимизации смены секретов. Эта функция позволяет добавить новый секрет в клиент OAuth, пока предыдущая остается активной, обеспечивая непрерывную работу приложений. Эти секреты можно управлять программными средствами с помощью API или с помощью пользовательского интерфейса страницы приложений Visual Studio.
В рамках текущих улучшений безопасности azure DevOps OAuth планируется отменять в 2026 году. Мы рекомендуем вам перейти на Идентификатор Microsoft Entra ID OAuth для улучшения функций безопасности и долгосрочных инвестиций. На данный момент мы рекомендуем регулярно менять секреты с помощью новой функции перекрытия секретов.
Устаревание тегов статистики языков на странице сводки проекта
В ближайшие недели мы будем убирать теги статистики языков со страницы «Сводка проекта». Удаление этих тегов поможет оптимизировать производительность, что приведет к более быстрой загрузке и более быстрому интерфейсу.
Обновление будет происходить автоматически, не требуются никакие действия с вашей стороны.
Добавлено разрешение на "Планы доставки"
В рамках наших текущих улучшений безопасности мы представили новое разрешение на управление планами доставки на уровне проекта. Это изменение было реализовано, чтобы предотвратить непреднамеренный доступ для чтения и записи для пользователей в группе Readers.
Расширенная безопасность GitHub для Azure DevOps
Страница риска безопасности, улучшенная с помощью новых столбцов и параметров фильтрации
На вкладке Риск вы найдете недавно добавленные столбцы, отображающие новые, исправленные и отклоненные оповещения системы безопасности в вашей организации. Мы добавили параметры фильтрации для уточнения результатов по проекту, инструменту (секретам, зависимостям или результатам сканирования кода) и фильтру на основе времени для определения границ поиска.
Кроме того, при применении фильтра добавляется параметр запроса URL-адреса, что позволяет совместно использовать предварительно отфильтрованное представление с другими пользователями в организации.
Сценарии публикации с несколькими репозиториями, поддерживаемые для расширенной безопасности GitHub для Azure DevOps
Ранее, когда определение конвейера было размещено в одном репозитории и исходном коде для сканирования с помощью GitHub Advanced Security было в другом, результаты были обработаны и отправлены в неправильный репозиторий. Вместо публикации оповещений в репозитории с исходным кодом они появились в репозитории, где был определен конвейер.
Теперь проверка зависимостей и проверка кода правильно направляет оповещения в репозиторий, содержащий сканированный исходный код в сценариях с несколькими репозиториями.
Чтобы включить эту функцию, задайте переменную среды конвейера advancedsecurity.publish.repository.infer: true, чтобы вывести репозиторий для публикации из репозитория в рабочем каталоге.
Кроме того, если вы явно не извлекаете репозиторий или не используете псевдоним для извлечения репозитория, используйте переменную advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ].
Фрагмент кода YAML:
trigger:
- main
resources:
repositories:
- repository: BicepGoat
type: git
name: BicepGoat
ref: refs/heads/main
trigger:
- main
jobs:
# Explicit - `advancedsecurity.publish.repository` explicitly defines the repository to submit SARIF to.
- job: "AdvancedSecurityCodeScanningExplicit"
displayName: "🛡 Infrastructure-as-Code Scanning (Explicit)"
variables:
advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['BicepGoat']) ]
steps:
- checkout: BicepGoat
- task: TemplateAnalyzerSarif@1
displayName: Scan with Template Analyzer
- task: AdvancedSecurity-Publish@1
displayName: Publish to IaC Scanning Results to Advanced Security
# Infer - `advancedsecurity.publish.repository.infer` specifies that the `AdvancedSecurity-Publish` must
# infer repository to submit SARIF to from the working directory on the build agent.
- job: "AdvancedSecurityCodeScanningInfer"
displayName: "🛡 Infrastructure-as-Code Scanning (Infer)"
variables:
advancedsecurity.publish.repository.infer: true
steps:
- checkout: BicepGoat
- task: TemplateAnalyzerSarif@1
displayName: Scan with Template Analyzer
- task: AdvancedSecurity-Publish@1
displayName: Publish to IaC Scanning Results to Advanced Security
Перехватчики служб для оповещений GitHub Advanced Security для Azure DevOps (предварительная версия)
Теперь вы можете настроить вебхуки для событий оповещения в GitHub Advanced Security, в том числе:
- Создано новое оповещение
- Измененные данные оповещений
- Изменено состояние оповещения
Как и другие события репозитория, можно фильтровать по репозиторию и ветви. В частности, для оповещений можно фильтровать по типу генерации оповещений (зависимости, сканирование кода или секреты) и серьезности оповещений.
Чтобы принять участие в предзаписи, заполните форму интереса или отправьте нам электронное письмо!
Поддержка pnpm версии 9 внедряется в GitHub Advanced Security для сканирования зависимостей Azure DevOps.
При достижении конца срока действия pnpm версии 8 в конце апреля следующее обновление проверки зависимостей будет включать поддержку pnpm версии 9. Это обновление отвечает на запрос сообщества разработчиков для поддержки pnpm версии 9.
Пайплайны Azure
Обновления размещённых образов
Мы развертываем обновления, чтобы обеспечить безопасность и актуальность хостинговых агентов Azure Pipelines. Эти обновления включают в себя добавление поддержки для Ubuntu-24.04, образов Windows 2025 и macOS-15 Sequoia, одновременно прекращая поддержку старых образов, таких как Ubuntu-20.04 и Windows Server 2019.
Дополнительные сведения см. в нашей записи блога .
macOS-15 Sequoia общедоступен
Образ macOS-15 будет доступен в размещенных агентах Azure Pipelines с 1 апреля. Чтобы использовать этот образ, обновите файл YAML, чтобы включить vmImage:'macos-15':
- job: macOS15
pool:
vmImage: 'macOS-15'
steps:
- bash: |
echo Hello from macOS Sequoia
sw_vers
Для программного обеспечения, установленного на macOS-15, см. конфигурацию образа .
Изображение macOS-14 по-прежнему будет использоваться при указании macOS-latest. Мы обновим macOS-latest, чтобы использовать macOS-15 в апреле.
Образ Windows-2025 доступен в предварительной версии
Теперь образ windows-2025 доступен в предварительном просмотре для агентов, размещённых в Azure Pipelines. Чтобы использовать этот образ, обновите файл YAML, чтобы включить vmImage:'windows-2025':
- job: win2025
pool:
vmImage: 'windows-2025'
steps:
- pwsh: |
Write-Host "(Get-ComputerInfo).WindowsProductName"
Get-ComputerInfo | Select-Object WindowsProductName
Write-Host "`$PSVersionTable.OS"
$PSVersionTable.OS
Установленное программное обеспечение Windows Server 2025 можно найти в разделе конфигурации образа , как показано на изображении.
Образ конвейера ubuntu-latest начнется с ubuntu-24.04
В ближайшие недели задания конвейера, указывающие ubuntu-latest, начнут использовать вместо ubuntu-24.04ubuntu-22.04.
Для получения рекомендаций по задачам, использующим средства, которые больше не представлены на изображении ubuntu-24.04, см. запись нашего блога . Чтобы продолжать использовать Ubuntu 22.04, используйте метку образа ubuntu-22.04:
- job: ubuntu2404
pool:
vmImage: 'ubuntu-24.04'
steps:
- bash: |
echo Hello from Ubuntu 24.04
lsb_release -d
- pwsh: |
Write-Host "`$PSVersionTable.OS"
$PSVersionTable.OS
Образ конвейера ubuntu-20.04 устарел и будет прекращен 1 апреля
Мы не рекомендуем использовать поддержку образа Ubuntu 20.04 в Azure Pipelines, так как она скоро завершится. Найдите план нерекомендуемого использования с расписанием браун-аута в нашем блоге.
Федерация идентичности рабочих нагрузок использует издателя Entra
Чуть более года назад мы предоставили федерацию удостоверений для рабочих нагрузок в общедоступное пользование. Настройка подключения службы через федерацию удостоверений нагрузки позволяет избежать использования секретов. Идентификатор (регистрация приложения, управляемый идентификатор), который поддерживает подключение службы, может использоваться только для деловой цели: подключение службы, настроенное в федеративных учетных данных идентификатора.
Теперь мы изменим формат федеративных учетных данных для новых подключений к службе Azure и Docker. Существующие подключения к службе будут работать как раньше.
| Эмитент Azure DevOps | Издатель Entra (новые подключения к службе) | |
|---|---|---|
| Эмитент | https://vstoken.dev.azure.com/<organization id> |
https://login.microsoftonline.com/<Entra tenant id>/v2.0 |
| Тема | sc://<organization name>/<project name>/<service connection name> |
<entra prefix>/sc/<organization id>/<service connection id> |
В конфигурации нет изменений, и способ получения маркеров остается неизменным. Задачи конвейера не нужно обновлять, и они продолжают работать как раньше.
Шаги по созданию подключения к службе не изменяются, и в большинстве случаев новый эмитент не виден. При самостоятельной настройке подключения к службе Azureвы увидите отображение новых федеративных учетных данных.
Скопируйте эти значения, как и раньше, когда создаете федеративные учетные данные для регистрации приложения или управляемой идентичности.
Автоматизация
При создании подключения службы в автоматизации с помощью REST APIиспользуйте федеративные учетные данные, возвращаемые API:
authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject
Аналогично, при создании подключения к службе с использованием поставщика Terraform azuredevops, ресурс azuredevops_serviceendpoint_azurerm возвращает атрибуты workload_identity_federation_issuer и workload_identity_federation_subject.
Дополнительные сведения
- Подключение к Azure с помощью подключения службы Azure Resource Manager
- Устранение неполадок подключения службы проверки удостоверений рабочей нагрузки Azure Resource Manager
задача Gradle@4
Была создана новая задача Gradle@4 с поддержкой Gradle 8.0. Встроенный параметр покрытия кода удаляется из задачи Gradle начиная с Gradle@4. Чтобы использовать покрытие кода с помощью Gradle в конвейере:
- Укажите плагины покрытия кода в файле build.gradle. Дополнительные сведения см. в вариантах анализа кода Gradle .
- Используйте задачу PublishCodeCoverageResults@2 в вашем конвейере после задачи
Gradle@4.
Настройка анализа SonarQube была перенесена в расширения SonarQube или SonarCloud в задаче Prepare Analysis Configuration.
Личность пользователя, запросившего выполнение этапа
Чтобы повысить безопасность ваших конвейеров YAML, вам может потребоваться узнать, кто инициировал запуск этапа. Для решения этой проблемы были добавлены две новые предопределенные переменные, Build.StageRequestedBy и Build.StageRequestedById. Эти переменные похожи на переменные Build.RequestedFor и Build.RequestedForId, но относятся к этапу, а не к запуску.
Когда пользователь явно активирует процесс, например, в случае ручного запуска этапа или повторного запуска, его идентификация используется для заполнения двух переменных.
Планы тестирования
Улучшения задачи публикации результатов покрытия кода, версия 2
В этом обновлении мы добавляем несколько улучшений в задачу версии 2.
- Расширенная поддержка различных форматов покрытия кода, включая: .coverage, .covx, .covb, .cjson,.xml, .lcov и pycov1.
- Создание комплексного файла cjson (и отчета о охвате кода), содержащего подробные сведения о охвате кода, такие как имена файлов, строки, покрытые или не охваченные и т. д.
- Поддержка покрытия изменений (покрытие PR): вторая версия может генерировать комментарии PR для разных языков в одном проекте.
- Теперь задача версии 2 поддерживает задачу проверки качества сборки, которая не поддерживается в задаче версии 1.
Экспорт тестовых случаев с настраиваемыми столбцами в XLSX
Теперь можно экспортировать тестовые случаи с настраиваемыми столбцами в XLSX. На основе отзывов планы тестирования поддерживают экспорт тестовых случаев с настраиваемыми столбцами, что обеспечивает большую гибкость и контроль над общими и анализируемыми данными. Это улучшение помогает адаптировать экспорт в соответствии с вашими потребностями, обеспечивая релевантную и действимую информацию, которую вы экспортируете.
Дальнейшие действия
Примечание.
Эти функции будут развернуты в течение следующих двух-трех недель.
Перейдите к Azure DevOps и посмотрите.
Как предоставить отзыв
Мы хотели бы услышать то, что вы думаете об этих функциях. Используйте меню справки, чтобы сообщить о проблеме или указать предложение.
Вы также можете получить советы и ответы на ваши вопросы от сообщества на Stack Overflow.
Спасибо
Сильвиу Андреика