Giriş
Microsoft, Azure DevOps ortamında iş yükü kimlik federasyonu (Workload Identity Federation) hizmet bağlantılarında kullanılan Azure DevOps yayıncısının kullanımdan kaldırılacağını resmi olarak duyurdu. Bu yayıncının son kullanım tarihi 1 Temmuz 2027 olarak belirlenmiştir. Bu değişiklik, Azure hizmetlerinde güvenlik, standartlaşma ve tutarlılık sağlamak amacıyla Microsoft Entra yayıncısına geçişin bir parçasıdır.
İş yükü kimlik federasyonu, Azure hizmetlerine sır olmadan (secretless) erişim sağlamak için kullanılan modern bir kimlik doğrulama yöntemidir. Mevcut yapılandırmanızda Azure DevOps yayıncısını kullanan hizmet bağlantılarınız varsa, bu değişiklikten doğrudan etkilenebilirsiniz. Bu makalede, geçiş sürecini adım adım nasıl gerçekleştireceğinizi ve karşılaşabileceğiniz olası sorunları nasıl çözebileceğinizi detaylı olarak ele alacağız.
Sorun Tanımı
Etkilenen Senaryolar
Bu değişiklik aşağıdaki senaryolarda kullanılan hizmet bağlantılarını doğrudan etkilemektedir:
- Tek kiracılı uygulamalar (Single-tenant applications): Azure DevOps yayıncısını kullanan ve yalnızca bir Azure AD kiracısında tanımlı olan uygulamalar.
- Yönetilen kimlikler (Managed Identities): Azure hizmetlerinde kullanılan ve Azure DevOps yayıncısına dayalı olan yönetilen kimlikler.
- Hizmet bağlantılarında gizli anahtar kullanımı: Azure DevOps içinde oluşturulan hizmet bağlantılarında,
azure-devopsyayıncısına bağlı olan yapılandırmalar.
Potansiyel Riskler
Bu yayıncının kullanımdan kaldırılması aşağıdaki riskleri beraberinde getirebilir:
- Hizmet kesintileri: 1 Temmuz 2027 tarihinden sonra Azure DevOps yayıncısına bağlı hizmet bağlantılarının çalışmaması.
- Güvenlik açıkları: Eski yayıncının kullanılması durumunda, kimlik doğrulama güvenliğinin zayıflaması.
- Uyum sorunları: Kurumsal güvenlik politikalarına uygunlukta aksaklıklar yaşanması.
Çözüm Adımları
1. Mevcut Yapılandırmayı Kontrol Edin
Geçiş sürecine başlamadan önce, aşağıdaki adımları izleyerek mevcut hizmet bağlantılarınızı ve yayıncı bağımlılıklarınızı belirleyin:
-
Azure DevOps Projesine Giriş Yapın: Azure DevOps portalına (https://dev.azure.com) giriş yapın ve ilgili projeye gidin.
-
Hizmet Bağlantılarını Listeleyin: Proje ayarlarından "Service connections" bölümüne gidin ve tüm hizmet bağlantılarını listeleyin.
Azure Portal → Azure DevOps → Project Settings → Service connections -
Yayıncı Türünü Kontrol Edin: Her hizmet bağlantısının detaylarına girerek "Issuer" alanında
azure-devopsyayıncısının kullanılıp kullanılmadığını kontrol edin. Eğer kullanılıyorsa, bu bağlantıyı güncellemeniz gerekmektedir.
2. Microsoft Entra Yayıncısına Geçiş Yapın
Microsoft Entra yayıncısına geçiş yapmak için aşağıdaki adımları izleyin. Bu adımlar, hem tek kiracılı uygulamalar hem de yönetilen kimlikler için geçerlidir:
-
Azure AD Uygulamasını Güncelleyin: Azure Portal'da ilgili Azure AD uygulamasının ayarlarına gidin ve "Certificates & secrets" bölümünden "Federated credentials" sekmesine geçin.
-
Yeni Federasyon Kimliği Oluşturun: Aşağıdaki adımları izleyerek yeni bir federasyon kimliği oluşturun:
# Azure CLI kullanarak yeni bir federasyon kimliği oluşturun az identity create --name <identity-name> --resource-group <resource-group> # Federasyon kimliğine erişim izni verin az identity federated-credential create \ --name <federated-credential-name> \ --identity-name <identity-name> \ --resource-group <resource-group> \ --issuer https://vstoken.dev.azure.com/<organization-id> \ --subject "sc://<project-name>/<service-connection-name>" \ --audience api://AzureDevOpsNot:
<organization-id>ve<project-name>değerlerini Azure DevOps organizasyonunuzdan ve projenizden alın. -
Hizmet Bağlantısını Güncelleyin: Azure DevOps'ta ilgili hizmet bağlantısını düzenleyin ve yayıncıyı
azure-devops'danmicrosoft-entra'ya değiştirin.# Hizmet bağlantısını Azure CLI ile güncelleyin (örnek) az devops service-endpoint update \ --id <service-connection-id> \ --name <new-endpoint-name> \ --type azure-rm \ --azure-rm-service-principal-id <spn-client-id> \ --azure-rm-scope <subscription-id>
3. Test ve Doğrulama
Yapılan değişikliklerin ardından, hizmet bağlantılarının düzgün çalıştığından emin olmak için aşağıdaki adımları izleyin:
-
Bağlantıyı Test Edin: Azure DevOps'ta hizmet bağlantısını seçin ve "Test connection" düğmesini kullanarak bağlantının başarılı olup olmadığını kontrol edin.
-
CI/CD Pipeline'larını Kontrol Edin: Azure DevOps pipeline'larınızda kullanılan hizmet bağlantılarının güncellenmiş yayıncıyı kullandığından emin olun. Pipeline'larda hata oluşup oluşmadığını test edin.
# Pipeline'ı çalıştırarak test edin az pipelines run --id <pipeline-id> --org <organization> --project <project-name> -
Günlükleri İnceleyin: Azure Portal'da ilgili hizmet bağlantısının "Diagnostic settings" bölümünden log'ları inceleyin ve herhangi bir hata olup olmadığını kontrol edin.
Sık Karşılaşılan Sorunlar ve Çözümleri
1. Federasyon Kimliğinin Oluşturulmasında Hata
Sorun: Federasyon kimliği oluşturulurken
issuerya dasubjectalanlarında hata alınıyor.Çözüm:
issuerURL'sini doğru şekilde yapılandırdığınızdan emin olun. Azure DevOps organizasyonunuzun ID'sini ve proje adını doğru girdiğinizden emin olun. Örnek:https://vstoken.dev.azure.com/01234567-89ab-cdef-0123-456789abcdef
2. Hizmet Bağlantısında Yetkilendirme Hatası
Sorun: Hizmet bağlantısı güncellendikten sonra yetkilendirme hatası alınıyor.
Çözüm: Azure AD uygulamasının ilgili hizmet bağlantısına gerekli izinleri verdiğinden emin olun. Uygulama izinlerini aşağıdaki adımlarla kontrol edin:
# Azure AD uygulamasının izinlerini kontrol edin az ad app permission list --id <app-client-id> # Gerekli izinleri ekleyin (örnek) az ad app permission add --id <app-client-id> --api 797f4846-ba00-4fd7-ba43-dac1f8f630ff --api-permissions 499b84ac-1321-427f-aa17-267ca6975798=Role
3. Pipeline'larda Tanımlama Hatası
Sorun: Pipeline'larda hizmet bağlantısı kullanılırken tanımsız değişken hatası alınıyor.
Çözüm: Pipeline YAML dosyanızda hizmet bağlantısının adını doğru şekilde tanımladığınızdan emin olun. Örnek:
steps: - task: AzureCLI@2 inputs: azureSubscription: 'Updated-Service-Connection' scriptType: 'ps' scriptLocation: 'inlineScript' inlineScript: 'az account show'
İpuçları ve En İyi Uygulamalar
-
Erken Geçiş Yapın: 1 Temmuz 2027 tarihinden önce geçiş yaparak olası hizmet kesintilerini önleyin.
-
Test Ortamında Deneme Yapın: Değişiklikleri üretim ortamına uygulamadan önce bir test ortamında deneyin.
-
Belgeleri Güncelleyin: Geçiş sürecini ve yapılan değişiklikleri dokümante edin. Ekibinizle paylaşın.
-
Güvenlik Denetimlerini Yapın: Geçiş sonrasında Azure AD ve Azure DevOps güvenlik ayarlarını yeniden gözden geçirin.
Sonuç
Microsoft'un Azure DevOps yayıncısının kullanımdan kaldırılması, Azure hizmetlerinde güvenlik ve standartlaşmayı artırmak amacıyla yapılan önemli bir adımdır. Bu değişiklikten etkilenmemek ve hizmetlerinizin sorunsuz çalışmasını sağlamak için yukarıdaki adımları izleyerek geçiş sürecini başlatmanız önemlidir. Geçiş sürecinde karşılaşabileceğiniz sorunları çözmek için Microsoft'un resmi belgelerini ve topluluk forumlarını takip edin.
Unutmayın, bu geçiş süreci 1 Temmuz 2027 tarihine kadar tamamlanmalıdır. Erken hareket ederek olası riskleri minimize edebilirsiniz.



