İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Güvenlik & Kimlik
  • Azure DevOps Service Connection ile PAT’siz Kimlik Doğrulama
DevOps Güvenlik & Kimlik Microsoft Azure Azure DevOps, managed identity, Microsoft Entra ID, PAT'siz Kimlik Doğrulama, service connection Aşkın KILIÇ 06/08/2026 4 Yorumlar

Azure DevOps Service Connection ile PAT’siz Kimlik Doğrulama

Azure DevOps Service Connection ile PAT'siz Kimlik Doğrulama
📑 İçindekiler
  1. Neden Azure DevOps service connection?
  2. Bağlantıyı yapılandırmadan önce
  3. Manuel yapılandırma alternatifi
  4. Kullanım senaryoları
  5. Başka bir organizasyondan repository çekmek
  6. Başka bir organizasyondan YAML template kullanmak
  7. Artifacts feed'e erişim
  8. Invoke REST API görevi ile Azure DevOps REST API'lerine çağrı
  9. Script içinde kullanım
  10. Değerlendirme
  11. İlgili İçerikler
  12. Kaynaklar ve İleri Okuma

⏱️ 4 dk okuma📅 6 Ağustos 2026

Azure DevOps, pipeline’lardan organizasyona erişim için Personal Access Token (PAT) veya build session token yerine Microsoft Entra iş yükü kimliğini kullanmaya olanak tanıyan yeni bir bağlantı türü sundu: Azure DevOps service connection. Bu bağlantı, servis sorumlusu (service principal) veya yönetilen kimlik (managed identity) ile pipeline’ların Azure DevOps kaynaklarına federasyon tabanlı kimlik doğrulamayla ulaşmasını sağlıyor. Yazının devamında bağlantının ne işe yaradığına, nasıl yapılandırıldığına ve hangi görevlerde kullanılabileceğine bakıyoruz.

Neden Azure DevOps service connection?

Bu bağlantı türü pipeline güvenliğini birkaç yönden iyileştiriyor:

  • PAT’siz kimlik doğrulama: Personal Access Token üretme, saklama ve rotasyon ihtiyacını ortadan kaldırır.
  • En az ayrıcalık: Paylaşımlı build service account izinleri yerine pipeline veya görev bazında izin tanımlama imkanı sunar.
  • Kalıcı sır yok: Parola yerine Microsoft Entra federated credential kullanılır.
  • Denetim izi: Tüm kimlik doğrulama denemeleri Azure DevOps audit log’una yazılır.

Bağlantı Microsoft Entra kimliği üzerinden çalıştığı için aynı Entra ID kiracısına bağlı başka bir Azure DevOps organizasyonundaki kaynaklara erişmek için de kullanılabilir.

Bağlantıyı yapılandırmadan önce

Önemli bir ön koşul var: Service connection oluşturma deneyimi, Entra tarafında kimlik veya Azure DevOps tarafında kullanıcı oluşturmaz. Her ikisinin de önceden hazır olması gerekir. Bu nedenle bağlantıyı kurmadan önce bir servis sorumlusu veya yönetilen kimliği organizasyona kullanıcı olarak ekleyip gerekli izinleri atamak gerekir.

Kimlik hazır olduktan sonra yeni service connection oluştururken Azure DevOps (preview) seçeneği belirlenir ve önceden tanımlanmış servis sorumlusu veya yönetilen kimlik seçilir. Kimliğin organizasyon içinde ihtiyaç duyduğu izinleri (örneğin ilgili projenin Readers grubuna eklenmesi) atamak gerekiyor; yapılandırma arayüzündeki View access in the current organization bağlantısı bu adımda yönlendirici oluyor.

Manuel yapılandırma alternatifi

Bazı durumlarda oturum açan kullanıcı, federated identity credential (FIC) kaydını otomatik oluşturamaz. Örneğin kullanıcının Microsoft Graph izinleri yetersizse arayüz manuel yönlendirmeye düşer. Bu senaryoda ekranda gösterilen issuer ve subject değerleri, gerekli yetkiye sahip bir yöneticiye iletilir, federated credential elle eklenir ve ardından bağlantı tamamlanır.

Kullanım senaryoları

Başka bir organizasyondan repository çekmek

resources:
repositories:
- repository: external-repo
type: git
endpoint: my-azdo-connection
name: 'external-project/external-repo'
ref: 'refs/heads/main'
steps:
- checkout: self
- checkout: external-repo

Başka bir organizasyondan YAML template kullanmak

resources:
repositories:
- repository: templates
type: git
endpoint: my-azdo-connection
name: 'external-project/external-repo'
ref: "refs/heads/main"
steps:
- template: azdosc-template.yml@templates

Artık runtime parameter kullanarak repository resource için hangi service connection’ın kullanılacağı dışarıdan da verilebiliyor. Böylece aynı template farklı organizasyon ve ortamlarda yeniden kullanılabilir hale geliyor:

parameters:
- name: serviceConnectionName
type: string
default: my-azdo-connection
resources:
repositories:
- repository: templates
type: git
endpoint: ${{ parameters.serviceConnectionName }}
name: 'external-project/external-repo'
ref: "refs/heads/main"

Artifacts feed’e erişim

- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: 'my-azdo-connection'
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
projects: '**/*.csproj'

Invoke REST API görevi ile Azure DevOps REST API’lerine çağrı

Invoke REST API görevi (InvokeRESTAPI@1) artık Azure DevOps service connection’ı doğrudan kabul ediyor. Böylece özel bir “generic” bağlantı tanımlayıp token’ı elle yönetmek gerekmiyor. connectionType alanına connectedServiceNameAzureDevOps verilir:

- task: InvokeRESTAPI@1
inputs:
connectionType: 'connectedServiceNameAzureDevOps'
serviceConnection: 'my-azdo-connection'
method: 'GET'
urlSuffix: 'external-project/_apis/build/builds?api-version=7.1'

Script içinde kullanım

Yeni AzureCLI@3 görevi, Microsoft Entra kimlik doğrulaması ile Azure DevOps’a birkaç farklı şekilde erişebiliyor. Her senaryoda connectionType: 'azureDevOps' belirtilir ve azureDevOpsServiceConnection alanına tanımlı service connection adı yazılır:

- task: AzureCLI@3
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: 'my-azdo-connection'

Bu yapı, Azure DevOps CLI ile Entra kimliği üzerinden oturum açılmış bir bağlam oluşturuyor:

- task: AzureCLI@3
displayName: Secret-less
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: 'my-azdo-connection'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az devops configure -l
az devops project list --query "value[].{Name:name, Id:id}" `
-o table
az pipelines pool list --query "[].{Id:id, Name:name}" `
-o table
az rest --method get `
--url "https://status.dev.azure.com/_apis/status/health?api-version=7.1-preview.1" `
--resource 499b84ac-1321-427f-aa17-267ca6975798 `
--query "sort_by(services[?id=='Pipelines'].geographies | [], &name)" `
-o table

Halihazırda inline biçimde PAT veya System.AccessToken kullanan bir script varsa, onun yerine Azure DevOps’a erişmek için Entra access token alınabiliyor:

- task: AzureCLI@3
displayName: Use Entra access token
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: 'my-azdo-connection'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
# Get access token for Azure DevOps
$token = az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" `
--query "accessToken" `
--output tsv
# Use token in REST API call
$headers = @{
Authorization = "Bearer $token"
"Content-Type" = "application/json"
}
$body = @{
name = "Test Build"
} | ConvertTo-Json
Invoke-RestMethod -Uri "$(System.CollectionUri)$(System.TeamProject)/_apis/build/definitions?api-version=7.1" `
-Method POST `
-Headers $headers `
-Body $body

Değerlendirme

PAT ömrünü uzatmak, rotasyon süreçlerini kurgulamak ve paylaşımlı build servis hesabı izinlerini yönetmek uzun süredir Azure DevOps kullanıcılarının en çok konuştuğu güvenlik başlıklarındandı. Federated credential temelli bu bağlantı, sırların kalıcı olarak depolanmasını ortadan kaldırıyor, her pipeline veya görev için ayrı ayrı yetkilendirme yapmayı da kolaylaştırıyor. Çoklu organizasyon senaryolarında ortak Entra ID kiracısı üzerinden kimlik doğrulamak, template ve repository paylaşımını daha temiz bir güvenlik modeline taşıyor.

İlgili İçerikler

  • Azure DevOps Server Temmuz Yamaları: Kurulum ve Doğrulama
  • Azure App Service Build 2026: Easy AI, Iv4 ve Yenilikler
  • Azure DevOps Commit Search Genel Kullanıma Açıldı

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • Orijinal duyuru: You can now use the Azure DevOps Service Connection instead of a PAT or Build Session token
  • Azure DevOps service connection dokümantasyonu
  • Service principal ve managed identity kullanımı
  • Pipeline access token’ları
  • Invoke REST API görev referansı
  • Azure DevOps CLI
  • Azure DevOps Developer Community • Azure DevOps Support

İlgili yazılar:

  • Azure DevOps Issuer Emekliye Ayrılıyor: WIF Geçişi Şart
  • Azure DevOps’ta Güvenlik Krizi: Build Kimlikleri
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

Agent Framework, Copilot CLI ve Squad ile Ajan Ekipleri
Agent Framework, Copilot CLI ve Squad ile Ajan Ekipleri30 Tem 2026
Azure Developer CLI Kasım 2025: Uzantılar, Aspire 13 ve Yeni Oyun Alanı
Azure Developer CLI Kasım 2025: Uzantılar, Aspire 13 ve Yeni Oyun Alanı18 Mar 2026
GitHub Engellenen Kullanıcı Yönetimi: Yeni Araçlar
GitHub Engellenen Kullanıcı Yönetimi: Yeni Araçlar23 Ağu 2026
Headlamp Kubeflow Eklentisi: AI/ML İşlerine Küme Gözüyle
Headlamp Kubeflow Eklentisi: AI/ML İşlerine Küme Gözüyle16 Tem 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure DevOps managed identity Microsoft Entra ID PAT'siz Kimlik Doğrulama service connection
Önceki yazı

Gateway API’yi kind ile Yerelde Deneme Rehberi

Sonraki yazı

Azure Boards: Kartlarda Pull Request Rozetleri

İlginizi Çekebilir

Microsoft Foundry ile Ajan Maliyetini Sınırlama ve ROI
Aşkın KILIÇ 0

Microsoft Foundry ile Ajan Maliyetini Sınırlama ve ROI

20/09/2026
GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
Aşkın KILIÇ 0

GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor

20/09/2026
Copilot Code Review: İnceleme Özeti ve Akıllı Commit
Aşkın KILIÇ 0

Copilot Code Review: İnceleme Özeti ve Akıllı Commit

19/09/2026

4 comments

comments user
Yasemin İ. 06/08/2026 10:55

PAT’lerin sürekli expire olup pipeline’ları patlatması gerçekten baş ağrısıydı, bu geçiş çok yerinde olmuş. Peki mevcut PAT tabanlı service connection’ları migrate etmek için özel bir yol var mı, yoksa sıfırdan mı kurmak gerekiyor?

Yanıtla
comments user
Nilay K. 06/08/2026 12:32

PAT’lerin süresinin dolmasıyla uğraşmak gerçekten baş ağrısıydı, bu yöntem çok daha temiz görünüyor. Entra iş yükü kimliğiyle federasyonu pratikte nasıl kurduğunuzu adım adım anlatan bir örnek de ekleyebilir misiniz? Bu arada şu yazınız da güzeldi: Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü — https://www.askinkilic.com.tr/foundry-local-ve-c-ile-canli-konusma-metin-donusumu/

Yanıtla
comments user
Burak S. 06/08/2026 19:31

PAT’lerin süresi dolunca her seferinde yenilemek gerçekten can sıkıcıydı, bu yöntem işleri epey kolaylaştıracak gibi görünüyor. Yönetilen kimlikle federasyon kısmını biraz daha açar mısınız, tam olarak nasıl kurgulanıyor merak ettim.

Yanıtla
comments user
Aslı S. 07/08/2026 01:17

PAT’lerin süresi dolunca her seferinde yenilemek gerçekten can sıkıcıydı, bu yaklaşım işleri çok kolaylaştıracak. Yönetilen kimlikle federasyonu deneyen var mı, production ortamında sorunsuz çalışıyor mu?

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Microsoft Foundry ile Ajan Maliyetini Sınırlama ve ROI
    20/09/2026 Microsoft Foundry ile Ajan Maliyetini Sınırlama ve ROI
  • Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı
    20/09/2026 Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı
  • GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
    20/09/2026 GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
  • Copilot Code Review: İnceleme Özeti ve Akıllı Commit
    19/09/2026 Copilot Code Review: İnceleme Özeti ve Akıllı Commit
  • Azure Local ve Azure Arc ile Dağıtık Hibrit Altyapı
    19/09/2026 Azure Local ve Azure Arc ile Dağıtık Hibrit Altyapı
  • MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları
    21/03/2026 MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları
  • Microsoft 365 Copilot Agent Evaluations: Ajan Kalitesi Ölçümü
    09/05/2026 Microsoft 365 Copilot Agent Evaluations: Ajan Kalitesi Ölçümü
  • Node.js Addon'larını .NET Native AOT ile Yazmak
    21/04/2026 Node.js Addon’larını .NET Native AOT ile Yazmak
  • GitHub Copilot Build Performance: Proje Bazlı Analiz Geldi
    08/05/2026 GitHub Copilot Build Performance: Proje Bazlı Analiz Geldi
  • VS Code’da MSSQL Eklentisinde Neler Değişti? Yapay Zekâlı Şema Tasarımı ve Daha Fazlası
    25/03/2026 VS Code’da MSSQL Eklentisinde Neler Değişti? Yapay Zekâlı Şema Tasarımı ve Daha Fazlası
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL bulut bilişim CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 460 yazı 🏗️ Bulut Altyapı 372 yazı 🤖 Yapay Zeka 311 yazı 🔧 DevOps 256 yazı ☁️ Microsoft Azure 248 yazı 🔒 Güvenlik & Kimlik 213 yazı 🏢 Kurumsal Teknoloji 92 yazı 📊 Veri & Analitik 65 yazı 🐳 Konteyner & Kubernetes 61 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Gateway API’yi kind ile ...
    Azure Boards: Kartlarda Pull R... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS