Skip to content

Commit 67f5a5b

Browse files
authored
Merge pull request #8029 from MicrosoftDocs/users/chcomley/about-security
PATs/Entra - update 4 articles, promoting Entra over PATs updates
2 parents 67b934b + bdd5d96 commit 67f5a5b

File tree

4 files changed

+82
-68
lines changed

4 files changed

+82
-68
lines changed

docs/organizations/security/about-security-identity.md

Lines changed: 51 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ ms.author: chcomley
77
author: chcomley
88
ms.topic: overview
99
monikerRange: '<= azure-devops'
10-
ms.date: 07/11/2024
10+
ms.date: 06/16/2025
1111
---
1212

1313
# About authentication, authorization, and security policies
1414

1515
[!INCLUDE [version-lt-eq-azure-devops](../../includes/version-lt-eq-azure-devops.md)]
1616

17-
Azure DevOps employs various security concepts to ensure that only authorized users can access features, functions, and data. Users gain access to Azure DevOps through the authentication of their security credentials and the authorization of their account entitlements. The combination of both determines the user's access to specific features or functions.
17+
Azure DevOps uses a combination of security concepts to ensure that only authorized users can access its features, functions, and data. Access gets determined by two key processes: authentication, which verifies a user's credentials, and authorization, which grants permissions based on account entitlements. Together, these processes control what each user can do within Azure DevOps.
1818

19-
This article builds on the information provided in [Get started with permissions, access, and security groups](../security/about-permissions.md). Administrators can benefit from understanding the account types, authentication methods, authorization methods, and policies used to secure Azure DevOps.
19+
This article expands on [Get started with permissions, access, and security groups](../security/about-permissions.md) and helps administrators understand the different account types, authentication and authorization methods, and security policies available to protect Azure DevOps environments.
2020

2121
::: moniker range="azure-devops"
2222

@@ -35,7 +35,8 @@ This article builds on the information provided in [Get started with permissions
3535
- Windows authentication
3636
- Two-factor authentication (2FA)
3737
- SSH key authentication
38-
- Personal access tokens
38+
- Microfost Entra token
39+
- Personal access token
3940
- Oauth configuration
4041
- Active Directory authentication library
4142
:::column-end:::
@@ -98,10 +99,10 @@ This article builds on the information provided in [Get started with permissions
9899

99100
[!INCLUDE [alt-creds-deprecation-notice](../../includes/alt-creds-deprecation-notice.md)]
100101

101-
Both Azure DevOps Services (cloud) and Azure DevOps Server (on-premises) support software development from planning to deployment. Each platform leverages Microsoft Azure's Platform as a Service infrastructure and services, including Azure SQL databases, to provide a reliable, globally available service for your projects.
102+
Both Azure DevOps supports software development from planning to deployment. Each platform uses Microsoft Azure's Platform as a Service infrastructure and services, including Azure SQL databases, to provide a reliable, globally available service for your projects.
102103

103104
::: moniker range="azure-devops"
104-
For more information about how Microsoft ensures your Azure DevOps Services projects are safe, available, secure, and private, see the [Azure DevOps Services data protection overview](../../organizations/security/data-protection.md).
105+
For more information about how Microsoft ensures your projects are safe, available, secure, and private, see the [Azure DevOps data protection overview](../../organizations/security/data-protection.md).
105106
::: moniker-end
106107

107108
<a id="accounts"></a>
@@ -113,19 +114,19 @@ While human user accounts are the primary focus, Azure DevOps also supports vari
113114
::: moniker range="azure-devops"
114115
- **Organization owner**: The creator of an Azure DevOps Services organization or assigned owner. To find the owner for your organization, see [Look up the organization owner](look-up-organization-owner.md).
115116
- **Service accounts**: Internal Azure DevOps organization used to support a specific service, such as Agent Pool Service, PipelinesSDK. For descriptions of service accounts, see [Security groups, service accounts, and permissions](permissions.md#collection-level-groups).
116-
- **Service principals or managed identities**: [Microsoft Entra applications or managed identities](../../integrate/get-started/authentication/service-principal-managed-identity.md) added to your organization to perform actions on behalf of a third-party application. Some service principals refer to internal Azure DevOps organization to support internal operations.
117+
- **Service principals or managed identities**: [Microsoft Entra applications or managed identities](../../integrate/get-started/authentication/service-principal-managed-identity.md) added to your organization to perform actions on behalf of a non-Microsoft application. Some service principals refer to internal Azure DevOps organization to support internal operations.
117118
- **Job agents**: Internal accounts used to run specific jobs on a regular schedule.
118-
- **Third party accounts**: Accounts that require access to support Web hooks, service connections, or other third-party applications.
119+
- **Third party accounts**: Accounts that require access to support Web hooks, service connections, or other non-Microsoft applications.
119120

120121
Throughout our security-related articles, "users" refers to all identities added to the Users Hub, which can include human users and service principals.
121122

122123
::: moniker-end
123124

124125
::: moniker range="< azure-devops"
125126
- **Service accounts**: Internal Azure DevOps organization used to support a specific service, such as Agent Pool Service, PipelinesSDK. For descriptions of service accounts, see [Security groups, service accounts, and permissions](permissions.md#collection-level-groups).
126-
- **Service principals or managed identities**: Microsoft Entra applications or managed identities added to your organization to perform actions on behalf of a third-party application. Some service principals refer to internal Azure DevOps organization to support internal operations.
127+
- **Service principals or managed identities**: Microsoft Entra applications or managed identities added to your organization to perform actions on behalf of a non-Microsoft application. Some service principals refer to internal Azure DevOps organization to support internal operations.
127128
- **Job agents**: Internal accounts used to run specific jobs on a regular schedule.
128-
- **Third party accounts**: Accounts that require access to support Web hooks, service connections, or other third-party applications.
129+
- **Third party accounts**: Accounts that require access to support Web hooks, service connections, or other non-Microsoft applications.
129130

130131
::: moniker-end
131132

@@ -138,76 +139,83 @@ The most effective way to manage accounts is by [adding them to security groups]
138139

139140
## Authentication
140141

141-
Authentication verifies an account's identity based on the credentials provided during sign-in to Azure DevOps. These systems integrate with and rely on the security features of the following other systems:
142-
- Microsoft Entra ID
143-
- Microsoft account (MSA)
144-
- Active Directory (AD)
142+
Authentication verifies a user's identity based on the credentials provided during sign-in to Azure DevOps. Azure DevOps integrates with several identity systems to manage authentication:
143+
144+
- **Microsoft Entra ID**: Recommended for organizations managing a large group of users. Provides robust, cloud-based authentication and user management.
145+
- **Microsoft account (MSA)**: Suitable for smaller user bases accessing Azure DevOps organizations. Supports cloud authentication.
146+
- **Active Directory (AD)**: Recommended for on-premises deployments with many users, using your existing AD infrastructure.
145147

146-
Microsoft Entra ID and MSA support cloud authentication. We recommend using Microsoft Entra ID for managing a large group of users. For a small user base accessing your Azure DevOps organization, Microsoft accounts are sufficient. For more information, see [About accessing Azure DevOps with Microsoft Entra ID](../accounts/access-with-azure-ad.md).
148+
Microsoft Entra ID and Microsoft accounts both support cloud authentication. For more information, see [About accessing Azure DevOps with Microsoft Entra ID](../accounts/access-with-azure-ad.md).
147149

148-
For on-premises deployments, AD is recommended for managing a large group of users. For more information, see [Set up groups for use in on-premises deployments](/azure/devops/server/admin/setup-ad-groups).
150+
For on-premises environments, use Active Directory to efficiently manage user access. Learn more in [Set up groups for use in on-premises deployments](/azure/devops/server/admin/setup-ad-groups).
149151

150-
### Authentication
152+
### Authenticate programmatically
151153

152-
To access your account without repeatedly asking for your username and password, you may use any of the available [authentication methods](../../integrate/get-started/authentication/authentication-guidance.md). This is helpful to access your account programmatically instead of through the website, or if you are an [app developer building](../../integrate/index.md) on top of Azure DevOps REST APIs. Some of the most popular authentication mechanisms include:
154+
Access your Azure DevOps organization programmatically without repeatedly entering your username and password by choosing one of the available [authentication methods](../../integrate/get-started/authentication/authentication-guidance.md). Use the following methods to automate workflows, integrate with REST APIs, or build custom applications:
153155

154-
- [OAuth](../../integrate/get-started/authentication/oauth.md) to build applications that perform actions on-behalf-of the app users. Users must provide consent to the app. [Microsoft Entra OAuth](../../integrate/get-started/authentication/entra-oauth.md) is recommended for new apps.
155-
- [Service principals](../../integrate/get-started/authentication/service-principal-managed-identity.md) can be used to build apps or tools that automate workflows that regularly access organization resources. Use this app identity to issue Microsoft Entra tokens on-behalf-of the application itself.
156-
- [Personal access tokens](../accounts/use-personal-access-tokens-to-authenticate.md) (PATs) can be used for ad-hoc requests or early prototyping. It is not recommended for long-term app development as they can be easily leaked and used maliciously when leaked. Some clients are still reliant on PATs and have now
156+
- Use [OAuth](../../integrate/get-started/authentication/oauth.md) to build applications that perform actions on behalf of users. Users must consent to the app. For new apps, use [Microsoft Entra OAuth](../../integrate/get-started/authentication/entra-oauth.md).
157+
- Use [service principals or managed identities](../../integrate/get-started/authentication/service-principal-managed-identity.md) to automate workflows or build tools that regularly access organization resources. Issue Microsoft Entra tokens on behalf of the application itself.
158+
- Use [Microsoft Entra ID](../../integrate/get-started/authentication/entra.md) for secure, cloud-based authentication and user management.
159+
- Use [personal access tokens (PATs)](../accounts/use-personal-access-tokens-to-authenticate.md) for ad-hoc requests or early prototyping. Avoid PATs for long-term app development, as they're more susceptible to leaks and misuse.
157160

158-
> [!TIP]
159-
> Remember to always [safely store credentials](credential-storage.md)!
161+
> [!TIP]
162+
> Always [store credentials securely](credential-storage.md) and follow best practices for managing authentication methods.
160163
161164
By default, your organization allows access for all authentication methods. Organization admins can [restrict access to these authentication methods by disabling security policies](../accounts/change-application-access-policies.md). Tenant admins can further [reduce PAT risk by restricting the ways in which they can be created](../accounts/manage-pats-with-policies-for-administrators.md).
162165
<a id="authorization"></a>
163166

164167
## Authorization
165168

166-
Authorization verifies that the identity attempting to connect has the necessary permissions to access a service, feature, function, object, or method. Authorization always occurs after successful authentication. If a connection isn't authenticated, it fails before any authorization checks are performed. Even if authentication succeeds, a specific action might still be disallowed if the user or group lacks authorization.
169+
Authorization determines whether an authenticated identity has the required permissions to access a specific service, feature, function, object, or method in Azure DevOps. Authorization checks always occur after successful authentication—if authentication fails, authorization is never evaluated. Even after authentication, users or groups might be denied access to certain actions if they lack the necessary permissions.
167170

168-
Authorization depends on the permissions assigned to the user, either directly or through membership in a security group or security role. Access levels and feature flags can also manage access to specific features. For more information about these authorization methods, see [Get started with permissions, access, and security groups](../security/about-permissions.md).
171+
Azure DevOps manages authorization through permissions assigned directly to users or inherited through security groups or roles. Access levels and feature flags can further control access to specific features. To learn more about these authorization methods, see [Get started with permissions, access, and security groups](../security/about-permissions.md).
169172

170173
<a id="namespaces"></a>
171174

172175
## Security namespaces and permissions
173176

174-
Security namespaces determine user access levels for specific actions on resources.
175-
- Each resource family, such as work items or Git repositories, has a unique namespace.
176-
- Each namespace contains zero or more access control lists (ACLs).
177-
- Each ACL includes a token, an inherit flag, and access control entries (ACEs).
178-
- Each ACE has an identity descriptor, an allowed permissions bitmask, and a denied permissions bitmask.
177+
Security namespaces define user access levels for specific actions on Azure DevOps resources.
178+
179+
- Each resource family, for example, work items or Git repositories, has its own unique namespace.
180+
- Within each namespace, there can be multiple access control lists (ACLs).
181+
- Each ACL contains a token, an inherit flag, and one or more access control entries (ACEs).
182+
- Each ACE specifies an identity descriptor, a bitmask for allowed permissions, and a bitmask for denied permissions.
179183

180-
For more information, see [Security namespaces and permission reference](namespace-reference.md).
184+
For more information, see [Security namespaces and permission reference](namespace-reference.md).
181185

182186
<a id="security-policies"></a>
183187

184188
## Security policies
185189

186190
::: moniker range="azure-devops"
187191

188-
To secure your organization and code, you can enable or disable various policies if you are an organization-level ([Project Collection Administrator](look-up-project-collection-administrators.md) or tenant-level ([Azure DevOps Administrator](/entra/identity/role-based-access-control/permissions-reference#azure-devops-administrator)) admin, depending on the policy. Some notable ones to consider include:
189-
- [Specify a privacy policy URL](../accounts/add-privacy-policy-url.md) that describes how you handle both internal and external guest data privacy.
190-
- Determine if organization users should be [allowed to create public projects](../projects/make-project-public.md).
192+
To secure your organization and code, organization-level ([Project Collection Administrator](look-up-project-collection-administrators.md)) or tenant-level ([Azure DevOps Administrator](/entra/identity/role-based-access-control/permissions-reference#azure-devops-administrator)) admins can enable or disable various security policies, depending on the policy scope. Key policies to consider include:
193+
194+
- [Specify a privacy policy URL](../accounts/add-privacy-policy-url.md) to describe how you handle internal and external guest data privacy.
195+
- Decide whether users in your organization are [allowed to create public projects](../projects/make-project-public.md).
196+
197+
If your organization is connected to Microsoft Entra ID, you have access to the following other security features:
191198

192-
If the organization is connected to Microsoft Entra ID, even more security features are available to your organization.
193199
- [Restrict organization creation to specific users](../accounts/azure-ad-tenant-policy-restrict-org-creation.md).
194-
- [Invite external guests to the organization](../accounts/add-external-user.md)
195-
- [Allow team and project administrators to invite new users](restrict-invitations.md)
200+
- [Invite external guests to the organization](../accounts/add-external-user.md).
201+
- [Allow team and project administrators to invite new users](restrict-invitations.md).
196202
- [Enable Conditional Access policy (CAP) validation](../accounts/change-application-access-policies.md#cap-support-on-azure-devops).
197203
- Track [auditing events and streams](../audit/azure-devops-auditing.md) in your organization.
198204

205+
Review and configure these policies to strengthen your organization's security posture and ensure compliance with your data privacy and access requirements.
206+
199207
<a id="project-scoped-user-group"></a>
200208

201209
### Project-Scoped Users group
202210

203-
By default, users added to an organization can view all organization and project information and settings, including user lists, project lists, billing details, usage data, and more.
211+
By default, users added to an organization can view all organization and project information and settings, including user lists, project lists, billing details, usage data, and more.
204212

205-
To restrict certain users, such as Stakeholders, Microsoft Entra guest users, or members of a specific security group, you can enable the **Limit user visibility and collaboration to specific projects** preview feature for the organization. Once enabled, any user or group added to the **Project-Scoped Users** group, are restricted in the following ways:
206-
- Can only access the **Overview** and **Projects** pages of **Organization settings**.
207-
- Can only connect and view those projects that they are [added to explicitly](add-users-team-project.md).
208-
- Can only select user and group identities added explicitly to the project they're connected to.
213+
To limit access for specific users—such as Stakeholders, Microsoft Entra guest users, or members of a particular security groupenable the **Limit user visibility and collaboration to specific projects** preview feature for your organization. When this feature is enabled, any user or group added to the **Project-Scoped Users** group is restricted in the following ways:
214+
- Access is limited to the **Overview** and **Projects** pages within **Organization settings**.
215+
- Users can only connect to and view projects they're [explicitly added to](add-users-team-project.md).
216+
- Users can only select user and group identities that are explicitly added to the same project.
209217

210-
For more information, see [Manage your organization, Limit user visibility for projects and more](../../user-guide/manage-organization-collection.md#project-scoped-user-group) and [Manage preview features](../../project/navigation/preview-features.md).
218+
For more information, see [Manage your organization: Limit user visibility for projects and more](../../user-guide/manage-organization-collection.md#project-scoped-user-group) and [Manage preview features](../../project/navigation/preview-features.md).
211219

212220
[!INCLUDE [project-scoped-users-warning](../../includes/project-scoped-users-warning.md)]
213221

docs/organizations/security/index.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
ms.topic: landing-page
1212
author: chcomley
1313
ms.author: chcomley
14-
ms.date: 07/03/2024
14+
ms.date: 06/16/2025
1515

1616
# linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | video | whats-new
1717

@@ -49,6 +49,8 @@ landingContent:
4949
url: access-levels.md
5050
- text: Stakeholder access quick reference
5151
url: stakeholder-access.md
52+
- text: Replace PATs with Microsoft Entra tokens
53+
url: ../../integrate/get-started/authentication/entra.md
5254
- linkListType: quickstart
5355
links:
5456
- text: Change access levels (on-premises)

0 commit comments

Comments
 (0)