You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/integrate/concepts/dotnet-client-libraries.md
+5-2
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ms.topic: conceptual
8
8
monikerRange: '<= azure-devops'
9
9
ms.author: chcomley
10
10
author: chcomley
11
-
ms.date: 11/09/2023
11
+
ms.date: 11/10/2023
12
12
---
13
13
14
14
# .NET client libraries
@@ -199,4 +199,7 @@ For version 16.143.1 of our NuGet packages, we support NetStandard 2.0. These pa
199
199
200
200
### Microsoft.TeamFoundationServer.ExtendedClient package doesn't have NetStandard support
201
201
202
-
The [Microsoft.TeamFoundationServer.ExtendedClient](https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient) currently doesn't support a NetStandard compliant version. This package includes our older SOAP object model, which we replaced by our newer REST object model. At this point, we're no longer investing in the older SOAP object model, and have no plans to create a NetStandard version of it.
202
+
The [Microsoft.TeamFoundationServer.ExtendedClient](https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient) doesn't support a NetStandard compliant version.
203
+
204
+
> [!IMPORTANT]
205
+
> This package includes our older SOAP object model, which we replaced by our newer REST object model. We're no longer investing in the older SOAP object model, and have no plans to create a NetStandard version of it.
@@ -29,7 +29,7 @@ Don't add work items into Azure DevOps for the sake of having them all in one pl
29
29
30
30
## Batch your changes
31
31
32
-
Doing single operations is slow and expensive, which is the leading cause for performance issues and rate limiting. Batch your changes into a single call. For more informaiton, see our [batch documentation](/previous-versions/azure/devops/integrate/previous-apis/wit/batch) and [sample code](/previous-versions/azure/devops/integrate/previous-apis/wit/samples).
32
+
Doing single operations is slow and expensive, which is the leading cause for performance issues and rate limiting. Batch your changes into a single call. For more information, see our [batch documentation](/previous-versions/azure/devops/integrate/previous-apis/wit/batch) and [sample code](/previous-versions/azure/devops/integrate/previous-apis/wit/samples).
When you use the [Subscriptions](../../service-hooks/overview.md#create-a-subscription) REST APIs, you can programmatically create a subscription that performs an action on an external (consumer) service when a specific event occurs in a project. For example, you can create a subscription to notify your service when a build fails.
17
+
When you use the [Subscription](../../service-hooks/overview.md#create-a-subscription) REST APIs, you can programmatically create a subscription that performs an action on an external (consumer) service when a specific event occurs in a project. For example, you can create a subscription to notify your service when a build fails.
18
18
19
19
Supported events:
20
+
20
21
- Build completed
21
22
- Code pushed (for Git projects)
22
23
- Pull request create or updated (for Git projects)
> Basic authentication is not recommended. Turning on IIS basic authentication causes various issues, and you should
49
-
> use [personal access tokens (PATs)](../../../organizations/accounts/use-personal-access-tokens-to-authenticate.md) instead. For example, if you turn on IIS basic authentication, GIT command line stops working.
54
+
> [!WARNING]
55
+
> We don't recommend basic authentication. Turning on IIS basic authentication causes various issues, and you should use [personal access tokens (PATs)](../../../organizations/accounts/use-personal-access-tokens-to-authenticate.md) instead. For example, if you turn on IIS basic authentication, GIT command line stops working.
50
56
51
57
Follow these steps to enable basic auth for your Azure DevOps instance:
52
58
53
59
> [!WARNING]
54
-
> Basic authentication sends usernames and passwords in plaintext. You should consider [configuring Azure DevOps Server to use SSL](/azure/devops/server/admin/setup-secure-sockets-layer) in order to enable secure communication when using basic auth.
60
+
> Basic authentication sends usernames and passwords in plaintext. Consider [configuring Azure DevOps Server to use SSL](/azure/devops/server/admin/setup-secure-sockets-layer) to enable secure communication when using basic auth.
55
61
56
-
1. Install the `Basic Authentication` feature for IIS in Server Manager
62
+
1. Install the `Basic Authentication` feature for IIS in Server Manager.
57
63
58
64
> [!div class="mx-imgBorder"]
59
65
> 
@@ -67,7 +73,7 @@ Follow these steps to enable basic auth for your Azure DevOps instance:
67
73
68
74
## tfx sign in with Basic authentication
69
75
70
-
Now you can start to use `tfx` against your server. You'll want to sign in before issuing commands.
76
+
Now you can start to use `tfx` against your server. Sign in before you issue commands.
71
77
72
78
1. Enter the following command:
73
79
@@ -76,7 +82,7 @@ Now you can start to use `tfx` against your server. You'll want to sign in befor
76
82
```
77
83
78
84
2. Add your service url.
79
-
3. Add your username. Use `domain\user` (e.g. fabrikam\peter). If you are working on a workgroup machine, use `machinename\user`.
85
+
3. Add your username. Use `domain\user` (for example, fabrikam\peter). If you're working on a workgroup machine, use `machinename\user`.
80
86
4. Add your password. Enter the password for the username that you previously entered.
For applications that interface with Azure DevOps Services, you must authenticate to gain access to resources like REST APIs. We understand that Azure DevOps Services offers many different ways to authenticate your application. This article provides guidance to help you choose the right authentication for your application. The following table outlines the recommended authentication mechanism for different application types. See the following basic descriptions, examples, and code samples to get you started.
18
+
For applications that interface with Azure DevOps Services, you must authenticate to gain access to resources like REST APIs. This article provides guidance to help you choose the right authentication mechanism for your application.
19
+
20
+
The following table outlines the recommended authentication mechanism for various application types. See the following basic descriptions, examples, and code samples to get you started.
19
21
20
22
| Type of application | Description | Example |Authentication mechanism | Code samples |
Interactive client-side (REST) | Client application, that allows user interaction, calling [Azure DevOps Services REST APIs](/rest/api/azure/devops) | Console application enumerating projects in an organization | [Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-overview) | [sample](https://github.com/microsoft/azure-devops-auth-samples/tree/master/ManagedClientConsoleAppSample) |
23
-
| Interactive client-side (Client library) | Client application, that allows user interaction, calling Azure DevOps Services Client libraries | Console application enumerating bugs assigned to the current user |[Client libraries](../../concepts/dotnet-client-libraries.md)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/ClientLibraryConsoleAppSample)|
24
+
Interactive client-side (REST) | Client application that allows user interaction calling [Azure DevOps Services REST APIs](/rest/api/azure/devops) | Console application enumerating projects in an organization | [Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-overview) | [sample](https://github.com/microsoft/azure-devops-auth-samples/tree/master/ManagedClientConsoleAppSample) |
25
+
| Interactive client-side (Client library) | Client application that allows user interaction calling Azure DevOps Services Client libraries | Console application enumerating bugs assigned to the current user |[Client libraries](../../concepts/dotnet-client-libraries.md)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/ClientLibraryConsoleAppSample)|
24
26
| Interactive JavaScript | GUI-based JavaScript application | AngularJS single page app displaying project information for a user |[Microsoft Authentication Library for JavaScript (MSAL JS)](https://github.com/AzureAD/microsoft-authentication-library-for-js#microsoft-authentication-library-for-javascript-msaljs)|[sample](https://github.com/microsoft/azure-devops-auth-samples/tree/master/JavascriptWebAppSample)|
25
27
| Personal access token (PAT) | Bearer token to access your own resources | Use your PAT in place of your password. | [PATs](../../../organizations/accounts/use-personal-access-tokens-to-authenticate.md)
26
28
| Non-interactive client-side | Headless text only client-side application | Console app displaying all bugs assigned to a user |[Device Profile](/azure/active-directory/develop/v2-oauth2-device-code)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/DeviceProfileSample)|
27
-
| Interactive client-side app targeting Azure DevOps | Client application, that allows user interaction, authenticates Azure DevOps users | Console application allowing Azure DevOps users to see assigned bugs |[Client Library (Interactive and Windows authentication)](../client-libraries/samples.md#authenticating)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/DualSupportClientSample)|
29
+
| Interactive client-side app targeting Azure DevOps | Client application that allows user interaction authenticates Azure DevOps users | Console application allowing Azure DevOps users to see assigned bugs |[Client Library (Interactive and Windows authentication)](../client-libraries/samples.md#authenticating)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/DualSupportClientSample)|
28
30
| Interactive web | GUI-based web application that requires user consent | Custom Web dashboard displaying build summaries |[Azure DevOps OAuth](./oauth.md)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/OAuthWebSample)|
29
31
| Service Principals or Managed Identities | Application with access to organization's Azure DevOps resources | Azure function to create work items |[Service principals and managed identities](./service-principal-managed-identity.md)|[sample](https://github.com/microsoft/azure-devops-auth-samples/tree/master/ServicePrincipalsSamples)|
30
32
| Azure DevOps Server application | Azure DevOps Server app using the Client OM library | Azure DevOps Server extension displaying team bug dashboards |[Client Libraries](../../concepts/dotnet-client-libraries.md)|[sample](https://github.com/Microsoft/vsts-auth-samples/tree/master/ClientLibraryConsoleAppSample)|
@@ -35,12 +37,12 @@ To learn more about how we store your credentials, see [Credential storage for A
35
37
36
38
#### Enabling IIS Basic Authentication invalidates using PATs for Azure DevOps Server
37
39
38
-
Learn more about [using IIS Basic Authentication with Azure DevOps on-premises](iis-basic-auth.md).
40
+
For more information, see [Using IIS Basic Authentication with Azure DevOps on-premises](iis-basic-auth.md).
39
41
40
42
## Frequently asked questions (FAQs)
41
43
42
44
#### Q: Why can't one of my service accounts access the Azure DevOps REST API?
43
-
A: Your service account may not have "materialized." Since signing in isn't possible with a service account that doesn't have interactive signing in permissions, check out [this work-around](https://github.com/microsoft/azure-devops-dotnet-samples/blob/main/ClientLibrary/Quickstarts/dotnet/MaterializeUserQuickStarts/Program.cs).
45
+
A: Your service account might not have "materialized." Since signing in isn't possible with a service account that doesn't have interactive signing in permissions, check out [this work-around](https://github.com/microsoft/azure-devops-dotnet-samples/blob/main/ClientLibrary/Quickstarts/dotnet/MaterializeUserQuickStarts/Program.cs).
44
46
45
47
#### Q: I'm making an interactive client-side application. Should I use [Azure DevOps Services Client Libraries](../../concepts/dotnet-client-libraries.md) or [Azure DevOps Services REST APIs](/rest/api/azure/devops)?
46
48
A: We recommend using Azure DevOps Services Client Libraries over REST APIs when accessing Azure DevOps Services resources. They're simpler and more easily maintained when version changes to our REST endpoints occur. If functionality is missing from the client libraries, [MSAL](/azure/active-directory/develop/msal-overview) is the best authentication mechanism to use with our REST APIs.
Copy file name to clipboardexpand all lines: docs/integrate/get-started/authentication/azure-devops-oauth.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: How to use the Azure DevOps OAuth 2.0 implementation for existing w
5
5
monikerRange: 'azure-devops'
6
6
ms.author: chcomley
7
7
author: chcomley
8
-
ms.date: 10/17/2023
8
+
ms.date: 11/10/2023
9
9
---
10
10
11
11
# Use Azure DevOps OAuth 2.0 to create a web app
@@ -45,7 +45,7 @@ The settings for each app that you register are available from your profile `htt
45
45
46
46
### 2. Authorize your app
47
47
48
-
1. If your user hasn't yet authorized your app to access their organization, call the authorization URL. It calls you back with an authorization code, if the user approves the authorization.
48
+
1. If your user didn't authorize your app to access their organization, call the authorization URL. It calls you back with an authorization code, if the user approves the authorization.
@@ -238,7 +238,7 @@ A: Check that you set the content type to application/x-www-form-urlencoded in y
238
238
239
239
### Q: I get an HTTP 401 error when I use an OAuth-based access token, but a PAT with the same scope works fine. Why?
240
240
241
-
A: Verify that **Third-party application access via OAuth**hasn't been disabled by your organization's admin at `https://dev.azure.com/{your-org-name}/_settings/organizationPolicy`.
241
+
A: Verify that **Third-party application access via OAuth**wasn't disabled by your organization's admin at `https://dev.azure.com/{your-org-name}/_settings/organizationPolicy`.
242
242
In this scenario, the flow to authorize an app and generate an access token works, but all REST APIs return only an error, such as `TF400813: The user "<GUID>" is not authorized to access this resource.`
243
243
244
244
### Q: Can I use OAuth with the SOAP endpoints and REST APIs?
0 commit comments