Focus keyphrase: Azure DevOps service connection
SEO title: Azure DevOps Service Connection: PAT-Free Pipelines Finally Get Practical
Meta description: Microsoft’s Azure DevOps service connection brings PAT-free pipeline access with Entra workload identity. Here is what admins should migrate first.
Azure DevOps service connection support is one of those Azure DevOps updates that sounds small until you count how many Personal Access Tokens are hiding in pipelines, variable groups, feed restores, template repositories, and “temporary” scripts that somehow survived three reorganizations. Microsoft announced on August 6, 2026 that pipelines can now use an Azure DevOps service connection backed by Microsoft Entra workload identity instead of a PAT or build session token.
That is timely because it lines up with the broader push toward secretless automation: shorter-lived tokens, workload identities, better audit trails, and fewer mystery credentials named do-not-delete-prod-final2. For admins, platform engineers, and DevOps teams, the practical question is not “is PAT-free good?” It is “where should we use this first without breaking half the delivery system before lunch?”
- Stored secret
- Manual rotation
- Often over-scoped
- Entra workload identity
- No persistent pipeline secret
- Auditable sign-ins
Quick answer: what changed with Azure DevOps service connection support?
The new Azure DevOps service connection lets Azure Pipelines authenticate to Azure DevOps resources with a Microsoft Entra service principal or managed identity. Microsoft’s announcement highlights PAT-free authentication, least-privilege permissions, no persistent secrets, audit logging, and access to Azure DevOps resources in another organization connected to the same Entra tenant.
Microsoft Learn describes the feature as using Entra workload identity federation, which means pipelines can authenticate without storing a long-lived secret in a variable, library, task input, or hand-rolled script. The service connection can be used for repository resources, cross-organization templates, Azure Artifacts feeds, Azure DevOps REST API calls, extension publishing, and the newer AzureCLI@3 task patterns shown in the announcement.
Why this matters: PATs are convenient, which is exactly the problem
Personal Access Tokens are easy to create and easy to abuse. They are bearer tokens, they are often tied to a human account, and they tend to sprawl because the fastest fix for “pipeline cannot access that repo/feed/API” is usually “make a new token and paste it somewhere.” Future-you then inherits an archaeology project with YAML, secrets, and tribal knowledge. Congratulations, the monkey now has a flashlight and a headache.
Microsoft’s Azure DevOps authentication guidance now explicitly recommends Microsoft Entra ID-based authentication for new integrations and says to use PATs sparingly, only when Entra ID is not available. That does not mean every PAT disappears overnight. It does mean new Azure DevOps Services automation should be designed around managed identities, service principals, and service connections first.
Best for Azure Pipelines accessing repos, feeds, templates, and REST APIs.
Best for Azure-hosted automation where Azure owns the identity lifecycle.
Best for portable automation, especially with certificate or federated auth.
Keep for short-lived tests or legacy/on-prem scenarios where Entra auth is unavailable.
Where to use Azure DevOps service connections first
Do not start with the weirdest pipeline in the company. Start where the blast radius is visible, the benefit is obvious, and the rollback path is boring.
- Cross-organization repository checkouts. If pipelines pull code from another Azure DevOps organization in the same Entra tenant, replace PAT-backed access with a named Azure DevOps service connection.
- Shared YAML template repositories. Template repos often sit at the center of your delivery platform. Moving them away from personal tokens reduces both outage risk and “who owns this token?” drama.
- Azure Artifacts restores. Feeds used by many builds are a great candidate because NuGet/npm/Maven/Python/Cargo access tends to spread across teams.
- REST API automation inside pipelines. Microsoft’s announcement notes that
InvokeRESTAPI@1can use the Azure DevOps service connection, reducing custom token plumbing. - Scripts that currently call
az devopswith a PAT. The newAzureCLI@3patterns can establish an Entra-authenticated Azure DevOps CLI session.
A safe migration plan for Azure DevOps service connection adoption
Find PATs in variable groups, service connections, scripts, feed auth, and template references.
Use a service principal or managed identity, add it to Azure DevOps, and grant the least access required.
Convert one low-risk repo, feed, or REST task; keep rollback simple and compare audit logs.
Roll through shared templates and high-value feeds, then revoke old PATs after validation.
1. Inventory the token mess before touching YAML
Start by listing where PATs are used today. Look at variable groups, pipeline variables, classic release definitions, service connections, repository resources, feed authentication tasks, deployment scripts, and documentation snippets. Pay special attention to tokens owned by individual users, tokens with broad scopes, and tokens near expiration.
2. Create a purpose-specific Entra identity
Microsoft’s setup guidance says the service connection experience does not create the identity for you. You need an Entra service principal or managed identity, and you must add that identity as a user in Azure DevOps before creating the connection. For cross-organization access, the identity also needs to exist as a user in the target organization.
3. Grant the boring minimum permissions
This is where the win happens. Instead of one shared build service account or a human-owned PAT that can do everything, grant the identity only the project, repo, feed, or API permissions it needs. Also review service connection security: avoid “grant access permission to all pipelines” unless you truly mean it. A secretless connection with permissions sprayed everywhere is still a mess, just wearing a nicer jacket.
4. Pilot one pipeline pattern at a time
Pick one of the supported scenarios and convert it cleanly. For example, move a cross-organization template repo to a repository resource with an endpoint value pointing to the Azure DevOps service connection. Or convert a feed restore using NuGetAuthenticate@1. Keep the old path available long enough to rollback, but put a sunset date on the PAT so it does not become permanent “just in case” clutter.
Governance checklist for admins
Watch-outs before rollout
- Azure DevOps Services versus Server matters. Microsoft Learn says OAuth 2.0 and Microsoft Entra ID authentication are available for Azure DevOps Services only, not Azure DevOps Server. For on-premises Azure DevOps Server scenarios, expect Windows authentication, .NET client libraries, or PATs to remain part of the toolbox.
- The identity must be added to Azure DevOps. Creating a service principal in Entra is not enough. Add it as a user and grant the actual Azure DevOps permissions it needs.
- Federated credential permissions may require an Entra admin. Microsoft’s announcement notes that some users may not have Microsoft Graph permissions to create the federated identity credential automatically. In those cases, the UI provides issuer and subject values for manual configuration.
- Service connections have standing access. Microsoft’s service connections documentation warns that service connections can retain access even when the referencing pipeline is no longer used. Build periodic review into your governance process.
- AI-assisted DevOps increases the pressure to clean this up. Microsoft also announced general availability of the Azure DevOps Remote MCP Server in August 2026, giving supported AI clients contextual access to Azure DevOps. As agents and copilots touch more delivery workflows, identity hygiene becomes less optional.
Example: what a PAT-free template checkout looks like
Microsoft’s examples show a repository resource that points to the service connection by name. The important bit is the endpoint. That endpoint is the Azure DevOps service connection, not a secret variable containing a token.
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
That may look underwhelming, and that is the point. The YAML should become less interesting because the identity work moved into a governed service connection with Entra-backed authentication and auditable access.
Recommended admin action this week
If you run Azure DevOps Services, treat the new Azure DevOps service connection as a practical PAT-reduction project, not a shiny checkbox. Pick three candidate pipelines: one cross-org repository checkout, one shared template repo, and one feed restore or REST API task. Build the identity, create the service connection, test the pilot, confirm audit logs, then revoke the old token.
Small, controlled migrations beat heroic token bonfires. Nobody gets a trophy for breaking the build system in the name of security. Well, maybe a tiny plastic banana, but not a trophy.
Sources
- Microsoft DevBlogs: You can now use the Azure DevOps Service Connection instead of a PAT or Build Session token
- Microsoft Learn: Access Azure DevOps with Microsoft Entra workload identity
- Microsoft Learn: Service connections in Azure Pipelines
- Microsoft Learn: Authentication methods for Azure DevOps integrations
- Microsoft DevBlogs: Azure DevOps Remote MCP Server is generally available
Discover more from SharePoint Monkey
Subscribe to get the latest posts sent to your email.