Skip to content

Commit 49b6ab0

Browse files
committed
refresh, remove/redirect
1 parent 5024732 commit 49b6ab0

15 files changed

+138
-139
lines changed

.openpublishing.redirection.json

+5
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,11 @@
439439
"source_path": "docs/user-guide/service-limits.md",
440440
"redirect_url": "/azure/devops/integrate/concepts/rate-limits",
441441
"redirect_document_id": false
442+
},
443+
{
444+
"source_path": "docs/integrate/concepts/cross-origin-resource-sharing.md",
445+
"redirect_url": "/azure/devops/integrate/how-to/call-rest-api?view=azure-devops#cross-origin-resource-sharing-cors",
446+
"redirect_document_id": false
442447
}
443448
]
444449
}

docs/integrate/concepts/cross-origin-resource-sharing.md

-33
This file was deleted.

docs/integrate/concepts/dotnet-client-libraries.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.topic: conceptual
88
monikerRange: '<= azure-devops'
99
ms.author: chcomley
1010
author: chcomley
11-
ms.date: 11/09/2023
11+
ms.date: 11/10/2023
1212
---
1313

1414
# .NET client libraries
@@ -199,4 +199,7 @@ For version 16.143.1 of our NuGet packages, we support NetStandard 2.0. These pa
199199

200200
### Microsoft.TeamFoundationServer.ExtendedClient package doesn't have NetStandard support
201201

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.

docs/integrate/concepts/integration-bestpractices.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: Integration best practices with REST APIs
2+
title: Integration best practices
33
titleSuffix: Azure DevOps Services
4-
description: Best practices for integrating Azure DevOps Services with REST APIs.
4+
description: Best practices for integrating Azure DevOps Services.
55
ms.subservice: azure-devops-ecosystem
66
ms.assetid: 9E1F3FD7-E1C1-44D9-B265-5368B3BD621E
77
ms.custom: content-health, FY22Q3, freshness
@@ -13,7 +13,7 @@ ms.date: 11/09/2023
1313

1414
<!--- Supports FWLINK: https://go.microsoft.com/fwlink/?LinkId=692096 -->
1515

16-
# Best integration practices with REST APIs
16+
# Best integration practices
1717

1818
[!INCLUDE [version-eq-azure-devops](../../includes/version-eq-azure-devops.md)]
1919

@@ -29,7 +29,7 @@ Don't add work items into Azure DevOps for the sake of having them all in one pl
2929

3030
## Batch your changes
3131

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).
3333

3434
## Limit your revisions
3535

docs/integrate/concepts/service-hooks.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@ ms.topic: conceptual
77
monikerRange: 'azure-devops'
88
ms.author: chcomley
99
author: chcomley
10-
ms.date: 03/25/2022
10+
ms.date: 11/10/2023
1111
---
1212

13-
# Service hooks in Azure DevOps
13+
# Service hooks in Azure DevOps Services REST APIs
1414

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

17-
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.
1818

1919
Supported events:
20+
2021
- Build completed
2122
- Code pushed (for Git projects)
2223
- Pull request create or updated (for Git projects)

docs/integrate/get-started/auth/tfs-basic-auth.md

+19-13
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,33 @@ ms.assetid: 6dc7f977-4b62-4bd6-b77a-1c6cade1ffa8
77
monikerRange: '<= azure-devops'
88
ms.author: chcomley
99
author: chcomley
10-
ms.date: 10/20/2020
10+
ms.date: 11/10/2023
1111
---
1212

13-
# Use the Cross-platform CLI for Azure DevOps using personal access tokens (PATs)
13+
# Use the Cross-platform CLI for Azure DevOps using personal access tokens
1414

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

17-
- You can download the latest version of **Node.js source code**, from the [Node.js source code downloads page](https://nodejs.org/en/download/)
17+
Use personal access tokens (PATs) with the cross-platform CLI for Azure DevOps.
18+
19+
> [!IMPORTANT]
20+
> We don't recommend using basic authentication. For Azure DevOps Services, see [Sign in with a PAT](../../../cli/log-in-via-pat.md).
21+
22+
## Prerequisites
23+
24+
- Download the latest version of **Node.js source code**, from the [Node.js source code downloads page](https://nodejs.org/en/download/)
1825
- Install the **Cross-platform CLI for Azure DevOps**
1926
- Install **tfx-cli** using `npm`, a component of Node.js by running:
2027

2128
```no-highlight
2229
npm i -g tfx-cli
2330
```
2431

25-
For more information about **tfx-cli**, see the [Node CLI for Azure DevOps on GitHub](https://github.com/Microsoft/tfs-cli).
32+
For more information about **tfx-cli**, see the [Node CLI for Azure DevOps on GitHub](https://github.com/Microsoft/tfs-cli).
2633

2734
## Personal access token
2835

29-
Start by creating a personal access token and paste it into the sign in command.
36+
Create a personal access token and paste it into the sign-in command.
3037

3138
```
3239
~$ tfx login
@@ -37,23 +44,22 @@ Copyright Microsoft Corporation
3744
Logged in successfully
3845
```
3946

40-
Examples of valid URLs are:
47+
See the following examples of valid URLs:
4148

4249
- `https://marketplace.visualstudio.com`
4350
- `https://youraccount.visualstudio.com/DefaultCollection`
4451

4552
## Configure for Basic authentication
4653

47-
> [!IMPORTANT]
48-
> 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.
5056
5157
Follow these steps to enable basic auth for your Azure DevOps instance:
5258

5359
> [!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.
5561
56-
1. Install the `Basic Authentication` feature for IIS in Server Manager
62+
1. Install the `Basic Authentication` feature for IIS in Server Manager.
5763

5864
> [!div class="mx-imgBorder"]
5965
> ![Screenshot of configure basic authentication feature.](./media/configureBasicAuthFeature.png)
@@ -67,7 +73,7 @@ Follow these steps to enable basic auth for your Azure DevOps instance:
6773
6874
## tfx sign in with Basic authentication
6975

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.
7177

7278
1. Enter the following command:
7379

@@ -76,7 +82,7 @@ Now you can start to use `tfx` against your server. You'll want to sign in befor
7682
```
7783

7884
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`.
8086
4. Add your password. Enter the password for the username that you previously entered.
8187

8288
**You can now use any other tfx command.**

docs/integrate/get-started/authentication/authentication-guidance.md

+9-7
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,25 @@ ms.topic: conceptual
88
monikerRange: '<= azure-devops'
99
ms.author: chcomley
1010
author: chcomley
11-
ms.date: 03/05/2021
11+
ms.date: 11/10/2023
1212
---
1313

1414
# Choose the right authentication mechanism
1515

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

18-
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.
1921

2022
| Type of application | Description | Example |Authentication mechanism | Code samples |
2123
|---------------------|-------------|---------|-------------------------|--------|
22-
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) |
2426
| 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) |
2527
| 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)
2628
| 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) |
2830
| 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) |
2931
| 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) |
3032
| 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
3537

3638
#### Enabling IIS Basic Authentication invalidates using PATs for Azure DevOps Server
3739

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).
3941

4042
## Frequently asked questions (FAQs)
4143

4244
#### 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).
4446

4547
#### 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)?
4648
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.

docs/integrate/get-started/authentication/azure-devops-oauth.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: How to use the Azure DevOps OAuth 2.0 implementation for existing w
55
monikerRange: 'azure-devops'
66
ms.author: chcomley
77
author: chcomley
8-
ms.date: 10/17/2023
8+
ms.date: 11/10/2023
99
---
1010

1111
# 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
4545

4646
### 2. Authorize your app
4747

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.
4949

5050
```no-highlight
5151
https://app.vssps.visualstudio.com/oauth2/authorize
@@ -238,7 +238,7 @@ A: Check that you set the content type to application/x-www-form-urlencoded in y
238238

239239
### 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?
240240

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`.
242242
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.`
243243

244244
### Q: Can I use OAuth with the SOAP endpoints and REST APIs?

0 commit comments

Comments
 (0)