Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dzięki tej aktualizacji ulepszamy zabezpieczenia i uwierzytelnianie w usłudze Azure DevOps. Sekrety pokrywające się dla Azure DevOps OAuth umożliwiają bezproblemową rotację, podczas gdy GitHub Advanced Security oferuje lepsze filtrowanie na stronie przeglądu zabezpieczeń, poprawnie kierując alerty dotyczące zależności i skanowania kodu do publikowania w wielu repozytoriach.
Aktualizacje hostowanego obrazu w usłudze Azure Pipelines obejmują ubuntu-24.04, Windows 2025 i mac-OS 15 Sequoia, zapewniając bezpieczniejsze i niezawodne środowisko.
Sprawdź notatki o wydaniu, aby uzyskać szczegóły.
Ogólne
- Nakładające się sekrety dla OAuth w Azure DevOps
- Wycofanie tagów statystyk języków ze strony podsumowania projektu
- Dodano uprawnienie Plany Dostaw
GitHub Advanced Security dla usługi Azure DevOps
- strona ryzyka przeglądu zabezpieczeń rozszerzona o nowe kolumny i opcje filtrowania
- scenariusze publikowania w wielu repozytoriach obsługiwane w usłudze GitHub Advanced Security dla usługi Azure DevOps
- Haki serwisowe dla alertów bezpieczeństwa GitHub Advanced Security dla Azure DevOps (wersja zapoznawcza)
- Obsługa pnpm v9 pojawiła się w GitHub Advanced Security do skanowania zależności Azure DevOps
Azure Pipelines
- Aktualizacje hostowanego obrazu
- Federacja tożsamości dla obciążeń wykorzystuje wystawcę Entra
- Gradle@4 zadanie
- Tożsamość użytkownika, który zażądał uruchomienia etapu
Test Plans
- Ulepszenia zadania publikowania wyników pokrycia kodu w wersji 2.0
- Eksportuj przypadki testowe z kolumnami niestandardowymi w XLSX
Ogólne
Nakładające się tajemnice OAuth platformy Azure DevOps
Z przyjemnością przedstawiamy nową funkcję nakładających się wpisów tajnych w usłudze Azure DevOps OAuth, zaprojektowaną w celu zwiększenia bezpieczeństwa i usprawnienia rotacji wpisów tajnych. Ta funkcja umożliwia dodanie nowego tajnego klucza do klienta OAuth, podczas gdy poprzedni klucz pozostaje aktywny, zapewniając ciągłe działanie aplikacji. Tymi tajnymi wpisami można zarządzać w sposób programowy za pośrednictwem interfejsu API lub interfejsu użytkownika strony aplikacji Visual Studio.
W ramach bieżących ulepszeń zabezpieczeń usługa Azure DevOps OAuth ma zostać wycofana w 2026 roku. Zachęcamy do migracji do OAuth dla Microsoft Entra ID, aby ulepszyć funkcje zabezpieczeń i inwestować w długoterminowe rozwiązania. W międzyczasie zalecamy regularne zmienianie tajemnic przy użyciu naszej nowej funkcji nakładających się tajemnic.
Wycofanie tagów dotyczących statystyk językowych ze strony podsumowania projektu
W najbliższych tygodniach wycofamy tagi statystyk Języków ze strony Podsumowanie projektu. Usunięcie tych tagów pomoże zoptymalizować wydajność, co spowoduje szybsze ładowanie i bardziej dynamiczny interfejs.
Aktualizacja zostanie wykonana automatycznie, bez akcji wymaganej ze strony użytkownika.
Dodano uprawnienie Plany dostarczania
W ramach bieżących ulepszeń zabezpieczeń wprowadziliśmy nowe uprawnienia na poziomie projektu Zarządzanie planami dostarczania . Ta zmiana została wdrożona, aby zapobiec przypadkowemu dostępowi do odczytu/zapisu dla użytkowników w grupie Czytelnicy.
GitHub Advanced Security dla usługi Azure DevOps
Strona ryzyka przeglądu zabezpieczeń rozszerzona o nowe kolumny i opcje filtrowania
Na karcie Ryzyko znajdziesz nowo dodane kolumny zawierające nowe, naprawione i odrzucone alerty zabezpieczeń w całej organizacji. Dodaliśmy opcje filtrowania w celu uściślenia wyników według projektu, narzędzia (wpisów tajnych, zależności lub wyników skanowania kodu) oraz filtru opartego na czasie w celu zdefiniowania granic wyszukiwania.
Ponadto zastosowanie filtru powoduje dodanie parametru zapytania adresu URL, co umożliwia udostępnianie wstępnie filtrowanego widoku innym osobom w organizacji.
Scenariusze publikowania z wieloma repozytoriami obsługiwane w usłudze GitHub Advanced Security dla usługi Azure DevOps
Wcześniej, gdy definicja potoku została utworzona w jednym repozytorium, a kod źródłowy do skanowania przez usługę GitHub Advanced Security znajdował się w innym, wyniki zostały przetworzone i przesłane do nieprawidłowego repozytorium. Zamiast publikować alerty w repozytorium z kodem źródłowym, pojawiały się one w repozytorium, w którym zdefiniowano potok.
Teraz zarówno skanowanie zależności, jak i skanowanie kodu prawidłowo kierują alerty do repozytorium zawierającego zeskanowany kod źródłowy w scenariuszach z wieloma repozytoriami.
Aby włączyć tę funkcję, ustaw zmienną środowiskową potoku advancedsecurity.publish.repository.infer: true, aby ustalić repozytorium, z którego publikowane będą dane, na podstawie repozytorium w katalogu roboczym.
Alternatywnie, jeśli nie wyewidencjonujesz jawnie repozytorium lub nie użyjesz aliasu do wyewidencjonowania repozytorium, użyj zmiennej advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ] zamiast tego.
Fragment kodu 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
Zaczepy serwisowe dla alertów GitHub Advanced Security w Azure DevOps (wersja zapoznawcza)
Teraz można skonfigurować haki serwisowe dla zdarzeń alertów zaawansowanego zabezpieczenia w GitHub, w tym:
- Utworzony nowy alert
- Zmieniono dane alertu
- Stan alertu został zmieniony
Podobnie jak w przypadku innych zdarzeń repozytorium, można filtrować według repozytorium i gałęzi. W przypadku alertów, konkretnie, można filtrować według typu alertu (zależności, skanowania kodu lub wpisów tajnych) i istotności alertu.
Aby wziąć udział w wersji próbnej, wypełnij formularz zainteresowania lub wyślij nam maila!
Obsługa pnpm v9 jest dostarczana do usługi GitHub Advanced Security na potrzeby skanowania zależności usługi Azure DevOps
Po osiągnięciu końca okresu eksploatacji pnpm v8 pod koniec kwietnia następna aktualizacja skanowania zależności będzie obejmować obsługę pnpm v9. Ta aktualizacja jest odpowiedzią na prośbę społeczności deweloperów o wsparcie dla pnpm v9.
Azure Pipelines
Aktualizacje hostowanego obrazu
Wprowadzamy aktualizacje, aby zapewnić bezpieczeństwo i aktualność hostowanych agentów usługi Azure Pipelines. Te aktualizacje obejmują dodanie obsługi dla Ubuntu-24.04, obrazów Windows 2025 i macOS-15 Sequoia, oraz wycofanie starszych obrazów, takich jak Ubuntu-20.04 i Windows Server 2019.
Aby uzyskać więcej informacji, odwiedź nasz wpis na blogu.
System macOS-15 Sequoia jest ogólnie dostępny
Obraz macOS-15 będzie dostępny dla hostowanych agentów usługi Azure Pipelines od 1 kwietnia. Aby użyć tego obrazu, zaktualizuj plik YAML w celu uwzględnienia elementu vmImage:'macos-15':
- job: macOS15
pool:
vmImage: 'macOS-15'
steps:
- bash: |
echo Hello from macOS Sequoia
sw_vers
Dla oprogramowania zainstalowanego na macOS-15 zobacz konfigurację obrazu.
Obraz macOS-14 będzie nadal używany podczas określania elementu macOS-latest. Zaktualizujemy macOS-latest do użycia macOS-15 w kwietniu.
Obraz systemu Windows-2025 jest dostępny w wersji zapoznawczej
Obraz windows-2025 jest teraz dostępny w wersji zapoznawczej dla agentów hostowanych w usłudze Azure Pipelines. Aby użyć tego obrazu, zaktualizuj plik YAML w celu uwzględnienia elementu 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
W przypadku zainstalowanego oprogramowania Window Server 2025 sprawdź konfigurację obrazu.
Obraz pipeline ubuntu-latest zacznie używać systemu ubuntu-24.04
W nadchodzących tygodniach zadania dla pipeline'ów określające ubuntu-latest zaczną używać ubuntu-24.04 zamiast ubuntu-22.04.
Aby uzyskać wskazówki dotyczące zadań korzystających z narzędzi, które nie znajdują się już na ubuntu-24.04 obrazie, zobacz nasz wpis na blogu. Aby nadal używać systemu Ubuntu 22.04, użyj etykiety obrazu 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
Obraz ubuntu-20.04 jest przestarzały i zostanie wycofany 1 kwietnia 2023 roku.
Wycofujemy obsługę obrazu Ubuntu 20.04 w usłudze Azure Pipelines, ponieważ wkrótce osiągnie koniec wsparcia. Znajdź harmonogram wycofania z planem brownout na naszym blogu.
Federacja tożsamości obciążenia roboczego korzysta z wystawcy Entra
Nieco ponad rok temu udostępniliśmy Federację Tożsamości Obciążenia w ogólnej dostępności. Federacja tożsamości obciążeń roboczych umożliwia skonfigurowanie połączenia usługi bez sekretu. Tożsamość (rejestracja aplikacji, tożsamość zarządzana) będąca podstawą połączenia z usługą może być używana tylko w zamierzonym celu: połączenie usługi skonfigurowane w poświadczeniach federacyjnych tożsamości.
Teraz zmieniamy format poświadczeń federacyjnych dla nowych połączeń platformy Azure i usługi Docker. Istniejące połączenia usług będą działać tak jak wcześniej.
| Wystawca usługi Azure DevOps | Entra Issuer (podłączenia do nowej usługi) | |
|---|---|---|
| Wystawca | https://vstoken.dev.azure.com/<organization id> |
https://login.microsoftonline.com/<Entra tenant id>/v2.0 |
| Temat | sc://<organization name>/<project name>/<service connection name> |
<entra prefix>/sc/<organization id>/<service connection id> |
Nie ma żadnych zmian w konfiguracji i sposób uzyskiwania tokenów pozostaje taki sam. Zadania rurociągu nie muszą być aktualizowane i działają jak wcześniej.
Kroki tworzenia połączenia z usługą nie zmieniają się i w większości przypadków nowy wystawca nie jest widoczny. Podczas ręcznego konfigurowania połączenia z usługą Azure zostaną wyświetlone nowe poświadczenia federacyjne:
Skopiuj te wartości, tak jak wcześniej, podczas tworzenia poświadczenia federacyjnego dla rejestracji aplikacji lub tożsamości zarządzanej.
Automation
Podczas tworzenia połączenia usługi w automatyzacji przy użyciu interfejsu API REST, użyj poświadczeń federacyjnych zwróconych przez interfejs API:
authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject
Podobnie, podczas tworzenia połączenia usługi za pomocą dostawcy Terraform azuredevops, zasób azuredevops_serviceendpoint_azurerm zwraca atrybuty workload_identity_federation_issuer i workload_identity_federation_subject.
Więcej informacji
- Nawiązywanie połączenia z platformą Azure przy użyciu połączenia usługi Azure Resource Manager
- Rozwiązywanie problemów z połączeniem usługi tożsamości obciążenia w Azure Resource Manager
zadanie Gradle@4
Utworzono nowe zadanie Gradle@4 z obsługą Gradle 8.0. Wbudowana opcja pokrycia kodu została usunięta z zadania Gradle, począwszy od Gradle@4. Aby użyć pokrycia kodu za pomocą narzędzia Gradle w ramach pipeline’u:
- Określ wtyczki do pokrycia kodu źródłowego w pliku build.gradle. Aby uzyskać więcej informacji, zobacz Opcje analizy kodu narzędzia Gradle.
- Użyj zadania PublishCodeCoverageResults@2 w potoku po zadaniu
Gradle@4.
Konfiguracja analizy SonarQube została przeniesiona do rozszerzeń SonarQube lub SonarCloud w zadaniu Prepare Analysis Configuration.
Tożsamość użytkownika, który zażądał uruchomienia etapu
Aby zwiększyć bezpieczeństwo potoków YAML, warto wiedzieć, kto zażądał uruchomienia etapu. Aby rozwiązać ten problem, dodajemy dwie nowe wstępnie zdefiniowane zmienne, Build.StageRequestedBy i Build.StageRequestedById. Te zmienne są podobne do zmiennych Build.RequestedFor i Build.RequestedForId, ale dla etapu, a nie przebiegu.
Gdy użytkownik jawnie wyzwala proces, na przykład w przypadku ręcznego wyzwolenia etapu lub ponownego uruchomienia etapu, jego tożsamość jest używana do wypełnienia dwóch zmiennych.
Test Plans
Ulepszenia zadania wersji 2 dotyczącego publikowania wyników pokrycia kodu
W tej wersji wprowadziliśmy kilka ulepszeń zadania w wersji 2:
- Rozszerzona obsługa różnych formatów pokrycia kodu, w tym: .coverage,.covx,.covb,.cjson,.xml,.lcov i pycov1.
- Generowanie kompleksowego pliku cjson (i raportu pokrycia kodu), który zawiera szczegółowe informacje o pokryciu kodu, takie jak nazwy plików, wiersze objęte/nieobjęte itp.
- Obsługa pokrycia różnic (pokrycie w żądaniach ściągnięcia): wersja 2 może generować komentarze dotyczące pokrycia różnic w żądaniach ściągnięcia dla wielu języków w tym samym potoku.
- Zadanie w wersji 2 obsługuje teraz zadanie Sprawdzania jakości kompilacji, które nie było obsługiwane w wersji 1.
Eksportowanie przypadków testowych z kolumnami niestandardowymi w formacie XLSX
Teraz można eksportować przypadki testowe z kolumnami niestandardowymi w formacie XLSX. Na podstawie Twojej opinii Test Plans obsługują eksportowanie przypadków testowych z kolumnami niestandardowymi, co zapewnia większą elastyczność i kontrolę nad danymi, które udostępniasz i analizujesz. To ulepszenie pomaga dostosować eksporty do Twoich potrzeb, zapewniając, że eksportowane informacje są istotne i możliwe do podjęcia działań.
Następne kroki
Uwaga
Te funkcje będą wdrażane w ciągu najbliższych dwóch do trzech tygodni.
Przejdź do usługi Azure DevOps i przyjrzyj się.
Jak przekazać opinię
Chcielibyśmy usłyszeć, co myślisz o tych funkcjach. Użyj menu Pomocy, aby zgłosić problem lub podać sugestię.
Możesz również uzyskać porady i odpowiedzi na pytania społeczności w witrynie Stack Overflow.
Dzięki
Silviu Andrica