Skip to content

Commit 6882d9a

Browse files
Merge pull request #5675 from MicrosoftDocs/main
[AutoPublish] main to live - 11/19 07:32 PST | 11/19 21:02 IST
2 parents 3d83ea1 + 389bc48 commit 6882d9a

File tree

4 files changed

+79
-14
lines changed

4 files changed

+79
-14
lines changed

defender-for-identity/whats-new.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ For more information, see: [Link or Unlink an Account to an Identity (Preview)](
4949
**Identity-level remediation actions**
5050

5151
You can now perform remediation actions such as disabling accounts or resetting passwords on one or more accounts linked to an identity. For more information, see: [Remediation actions](remediation-actions.md#roles-and-permissions).
52-
Defender for Identity now offers an opt-in automatic event-auditing configuration for unified sensors (V3.x). This feature streamlines deployment by automatically applying required Windows auditing settings to new sensors and fixing misconfigurations on existing ones. Admins can enable the option in the Defender for Identity Settings -> Advanced Features or via Graph API. The capability and its related health alerts will roll out globally beginning mid-November 2025.
5352

5453
### New security posture assessment: Change password for on-prem account with potentially leaked credentials (Preview)
5554

exposure-management/ServiceNow-data-connector.md

Lines changed: 71 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,96 @@ title: Integrate ServiceNow data connector in Microsoft Security Exposure Manage
33
description: Learn how to the ServiceNow data connector in Microsoft Security Exposure Management.
44
ms.author: dlanger
55
author: dlanger
6-
manager: rayne-wiselman
6+
manager: ornat-spodek
77
ms.topic: overview
88
ms.service: exposure-management
9-
ms.date: 09/24/2024
9+
ms.date: 10/23/2025
1010
---
1111

1212
# ServiceNow data connector
1313

14-
To set up the ServiceNow CMDB integration, you need to provide the hostname of your ServiceNow instance and valid credentials. The connector authenticates with Basic Authentication using username and password for read only access.
14+
To set up the ServiceNow CMDB integration, you need to provide the hostname of your ServiceNow instance and valid credentials. The connector supports both Basic Authentication and OAuth 2.0 as authentication options for read only access. Basic Authentication requires username and password to connect, and OAuth 2.0 is based on granting client credentials.
1515

1616
> [!Note]
17-
> We recommend creating a dedicated user for use with data connectors in Exposure Management.
17+
> The ServiceNow connector supports Basic Authentication and OAuth 2.0 (client credentials grant). We recommend creating a dedicated user for use with data connectors in Exposure Management with least-privilege (cmdb_read) role assignment.
1818
19-
## ServiceNow configuration
19+
## Configure ServiceNow with Basic Authentication
2020

2121
1. Find the hostname of your ServiceNow instance. For example, "contoso.service-now.com".  
2222
1. Create a New ServiceNow user:
2323
1. Follow the steps [here](https://docs.servicenow.com/en-US/bundle/vancouver-platform-administration/page/administer/users-and-groups/task/t_CreateAUser.html) to create a new user.
24-
2. Keep the **username (User Id) and password** you provided for future use.
25-
3. If there’s no password field, submit the form to create the user. Afterwards, when you select on the new user, you receive the **Set Password** option.
26-
4. As you create the user, check the **Web service access only** box such that the user will be of dedicated use only for this integration.
24+
1. Keep the **username (User Id) and password** you provided for future use.
25+
1. If there’s no password field, submit the form to create the user. Afterwards, when you select on the new user, you receive the **Set Password** option.
26+
1. As you create the user, check the **Web service access only** box such that the user will be of dedicated use only for this integration.
2727
1. Assign a **cmdb_read** role to the user you have created. Detailed instructions can be found [here](https://docs.servicenow.com/bundle/vancouver-platform-administration/page/administer/users-and-groups/task/t_AssignARoleToAUser.html).
2828

29-
> [!Note]
30-
> The ServiceNow connector only supports Basic Authentication. OAuth authentication will be made available at a later time.
29+
## Configure OAuth 2.0 authentication (client credentials flow)
30+
31+
Use OAuth 2.0 client credentials to avoid storing a long‑lived password and to align with modern authentication standards.
32+
33+
### Prerequisites
34+
35+
1. Create (or identify) a ServiceNow user with at minimum the cmdb_read role. For detailed instructions on creating a ServiceNow user and assigning roles, see the [Configure ServiceNow with Basic Authentication](#configure-servicenow-with-basic-authentication) section. We recommend a dedicated integration user; admin is only required temporarily if needed to install plugins.
36+
1. Verify these plugins are installed (navigate to `sys_plugins.list`):
37+
- OAuth 2.0 (`com.snc.platform.security.oauth`)
38+
- REST API Provider (`com.glide.rest`)
39+
- Authentication scope (`com.glide.auth.scope`)
40+
- REST API Auth Scope Plugin (`com.glide.rest.auth.scope`)
41+
1. Enable the client credentials grant:
42+
- Navigate to `sys_properties.list`
43+
- Property name: `glide.oauth.inbound.client.credential.grant_type.enabled`
44+
- Value: `true`
45+
- This property toggles support for the client credentials flow.
46+
47+
### Create the OAuth client (Application Registry)
48+
49+
1. Go to: System OAuth -> Application Registry.
50+
1. Select: Create an OAuth API endpoint for external clients.
51+
1. Fill mandatory fields (Name, etc.). Leave Redirect URL and Login URL blank (not used for client credentials).
52+
1. Ensure Public Client remains unchecked (must be a confidential client).
53+
1. Save the record.
54+
1. In the Application Registries list view, customize the view (gear icon) to add the "OAuth Application User" column.
55+
1. Set the OAuth Application User to the dedicated integration user (the token will assume this user's roles).
56+
1. Open the record to copy the Client ID and generate/view the Client Secret.
57+
58+
### Token endpoint and grant details
59+
60+
- Token URL format: `https://<your-instance>.service-now.com/oauth_token.do`
61+
- Grant type: `client_credentials`
62+
- No redirect or authorization code is involved.
63+
- Scopes: Not typically required; access is determined by the roles of the OAuth Application User.
64+
- Required role on the integration user: `cmdb_read` (plus any additional roles needed for specific CI access, if applicable).
65+
66+
### Differences vs Basic Authentication
67+
68+
- Credentials rotate easily (regenerate client secret without changing the integration user password).
69+
- Authentication is scoped to the roles of the OAuth Application User.
70+
- Rate limits and data scope are unchanged; ensure a dedicated user to avoid API contention.
71+
- No interactive login or redirect URLs are required.
72+
73+
### Troubleshooting OAuth
74+
75+
| Issue | Action |
76+
|-------|--------|
77+
| 401 Unauthorized | Confirm client ID/secret are correct; verify OAuth Application User is set; ensure `cmdb_read` role assigned; confirm property `glide.oauth.inbound.client.credential.grant_type.enabled = true`. |
78+
| 403 Forbidden | User lacks required CMDB read role; add `cmdb_read`. |
79+
| Invalid client | Regenerate client secret; verify you used "OAuth API endpoint for external clients". |
80+
| Token endpoint failure | Verify plugins installed; confirm instance hostname correctness. |
81+
| Empty or missing CMDB data | Validate the integration user can view CIs in the CMDB directly; check roles. |
82+
83+
For more background on ServiceNow OAuth, see ServiceNow documentation.
3184

3285
## Establish ServiceNow connection in Exposure Management
3386

3487
To establish a connection with ServiceNow in Exposure Management, follow these steps:
3588

3689
1. Open the [Data Connectors](https://security.microsoft.com/exposure-data-connectors) from the Exposure Management navigation and select **Connect** in the ServiceNow CMDB tile.
37-
1. Enter your ServiceNow **instance details** and **credentials** (created in the ServiceNow configuration) and select **Connect**.
90+
1. Choose your authentication method and enter the required information:
91+
- **For Basic Authentication**: Enter your ServiceNow instance hostname and the username and password created in the Basic Authentication configuration.
92+
- **For OAuth 2.0**: Choose the OAuth 2.0 authentication option and enter your instance hostname, Client ID, and Client Secret created in the OAuth configuration.
93+
1. Select **Connect**. The system will authenticate using your chosen method and retrieve CMDB data.
94+
95+
:::image type="content" source="media/service-now/oauth.png" alt-text="Screenshot of connecting ServiceNow connector" lightbox="media/service-now/oauth.png":::
3896

3997
## Retrieved data
4098

@@ -55,8 +113,8 @@ Here are some common issues that might arise when configuring the ServiceNow Con
55113
| **Error Type** | **Troubleshooting Action** |
56114
| ------------------------------------------------------------ | ------------------------------------------------------------ |
57115
| 'The remote server name couldn't be resolved' error message | Verify ServiceNow Instance hostname. Learn more about authentication to ServiceNow here: [Authentication (servicenow.com)](https://docs.servicenow.com/bundle/vancouver-platform-security/page/integrate/single-sign-on/concept/c_Authentication.html) |
58-
| **Error code 401**: Authorization failure | An authorization failure indicates that credentials might not be correct, or there might not be sufficient permissions to access the ServiceNow data. Check your credentials and make sure they are correct and valid. Also check that your credentials have the required permissions. See the ServiceNow [configuration section](#servicenow-configuration) for details on how to ensure the cmdb_read role is assigned. Another possible reason for this failure is the that your ServiceNow instance is configured to accept connections only from a limited range of IP addresses. In this case, see the guidance for adding the right set of IPs to your allowlist here: [Allowlist IP addresses](configure-data-connectors.md#allowlist-ip-addresses) |
59-
| **Error code 403:** Access forbidden error | This error indicates that the provided credentials lack the necessary permissions to run the requested APIs. Update your credentials with the proper permissions as described in the [configuration section](#servicenow-configuration), and make sure they have at minimum cmdb_read role assigned. |
116+
| **Error code 401**: Authorization failure | An authorization failure indicates that credentials might not be correct, or there might not be sufficient permissions to access the ServiceNow data. Check your credentials and make sure they are correct and valid. Also check that your credentials have the required permissions. See the [Configure ServiceNow with Basic Authentication](#configure-servicenow-with-basic-authentication) section for details on how to ensure the cmdb_read role is assigned. Another possible reason for this failure is the that your ServiceNow instance is configured to accept connections only from a limited range of IP addresses. In this case, see the guidance for adding the right set of IPs to your allowlist here: [Allowlist IP addresses](configure-data-connectors.md#allowlist-ip-addresses) |
117+
| **Error code 403:** Access forbidden error | This error indicates that the provided credentials lack the necessary permissions to run the requested APIs. Update your credentials with the proper permissions as described in the [Configure ServiceNow with Basic Authentication](#configure-servicenow-with-basic-authentication) section, and make sure they have at minimum cmdb_read role assigned. |
60118
| **Error code 404:** Not found error | This error indicates that the requested endpoint wasn't found to be reachable. Verify that your ServiceNow Instance hostname is correct. |
61119
| **Error code 429** 'Too many requests" | The system periodically pulls data from the configured external providers, which might have a limit on the number of concurrent requests. We recommend creating a dedicated user or account for the connector to avoid reaching this limit. |
62120
| Bad URL error message | This error indicates that the requested endpoint wasn't found to be reachable. Verify that your ServiceNow Instance hostname is correct. |
46.7 KB
Loading

exposure-management/whats-new.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ Learn more about MSEM by reading the blogs, [here](https://techcommunity.microso
2424
>
2525
> `https://aka.ms/msem/rss`
2626
27+
## November 2025
28+
29+
### ServiceNow connector OAuth 2.0 authentication support
30+
31+
The ServiceNow data connector now supports OAuth 2.0 authentication in addition to Basic Authentication. This enhancement allows organizations to use modern authentication standards with client credentials flow, providing improved security through easier credential rotation and scoped authentication based on OAuth Application User roles.
32+
33+
For more information, see [ServiceNow data connector](ServiceNow-data-connector.md).
34+
2735
## September 2025
2836

2937
### Critical assets classified based on interaction with sensitive documents (Purview eDLP)

0 commit comments

Comments
 (0)