Register a Microsoft Entra ID application
Create an app registration in Microsoft Entra ID to enable OAuth 2.0 authentication with Azure DevOps.
Sign in to the Microsoft Entra admin center
Open the Microsoft Entra admin center and sign in with your Microsoft work account.

Open App registrations
In the left sidebar under Entra ID, click App registrations, then click + New registration in the toolbar.

Choose the supported account types
On the Register an application screen, enter a Name (e.g., StackOne Azure DevOps Integration). Under Supported account types, open the dropdown and select Multiple Entra ID tenants (shown as Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)).
- After selecting it, two options appear — select Allow all tenants (the default, Allow only certain tenants (Preview), requires listing every tenant explicitly).

Set the Redirect URI and register
Under Redirect URI (optional), select the Web platform and paste StackOne’s callback URL, then click Register.
- Redirect URI:
https://api.stackone.com/connect/oauth2/azuredevops/callback

Configure API permissions
Grant the application delegated access to the Azure DevOps REST API.
Open API permissions
In the app’s left menu under Manage, click API permissions, then click + Add a permission in the Configured permissions section.

Select the Azure DevOps API
In the Request API permissions panel, on the Microsoft APIs tab, select the Azure DevOps tile (“Integrate with Azure DevOps and Azure DevOps server”).

Add the user_impersonation permission
Under Delegated permissions, check user_impersonation (“Have full access to Visual Studio Team Services REST APIs”), then click Add permissions. This single permission covers every Azure DevOps scope the connector uses:
- The vso group in the same panel lists granular scopes, but the Service Hooks scopes (vso.hooks, vso.hooks_write) needed for webhook events are not individually selectable there — user_impersonation is the permission that covers them.

Grant admin consent
Back on Configured permissions, click Grant admin consent for [your tenant] and confirm with Yes, so users don’t hit the unverified-publisher consent block.

Create and copy your credentials
Copy the client ID and generate a client secret for the StackOne connection.
Copy the Application (client) ID
On the app’s Overview page, in the Essentials panel, copy the Application (client) ID — this is the public identifier of your app. Paste it into the Client ID field in the StackOne Connector profile.

Create a client secret
In the left menu under Manage, click Certificates & secrets. On the Client secrets tab, click + New client secret.

Add the client secret
In the Add a client secret panel, enter a Description, choose an expiry under Expires (default Recommended: 180 days (6 months)), and click Add.
- Track the expiry date — the connection stops working when the secret expires and you will need to create a new one.

Copy the secret Value
Copy the new secret’s Value column (not the Secret ID) and paste it into the Client Secret field in the StackOne Connector profile.
- The secret Value is only displayed once and cannot be retrieved later — copy it before leaving the page.
- Per the on-screen notice: “Client secret values cannot be viewed, except for immediately after creation. Be sure to save the secret when created before leaving the page.”

Set the Scopes field (optional)
The Scopes field in the StackOne Connector profile is a space-separated list of Azure DevOps scopes to request. Leave it blank to use the default, which works with the user_impersonation permission configured above.
- Default:
https://app.vssps.visualstudio.com/.default
Creating the StackOne Connector Profile
To create the Connector Profile in StackOne for Azure DevOps:Navigate to Connector Profiles
Create New Connector Profile
- Click + Connector Profile
- Search for and select Azure DevOps
- Select Type as OAuth 2.0 (Microsoft Entra ID)
- Fill out the fields using details retrieved from your provider:
- Client ID
- Client Secret
- Scopes (Optional)
- (Optional) Select Actions to be enabled for this Connector Profile
- Click Create profile