> For the complete documentation index, see [llms.txt](https://docs.expel.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.expel.io/connect-your-technology/l-p-integrations/microsoft/microsoft-sentinel-setup-for-workbench.md).

# Microsoft Sentinel Setup for Workbench

This topic helps you set up your Microsoft Sentinel integration in Workbench.

## Prerequisites

1. You must be able to log in to the Microsoft Entra Admin Console as a user assigned the Global Administrator or User Administrator role.
2. Make sure your Sentinel instance is connected to your Microsoft Defender portal [per Microsoft's instructions](https://learn.microsoft.com/en-us/unified-secops/microsoft-sentinel-onboard). This ensures Expel will be able to poll alerts from Sentinel.

### About Connecting Your Device

Expel uses API integrations to connect directly to the Microsoft Azure platform. We support authentication through an Microsoft Entra ID app. To collect data, Workbench communicates directly with APIs, including the Microsoft Security Graph API to poll alerts from Microsoft Sentinel. Workbench also queries Azure Log Analytics to enrich Sentinel alerts with the Azure Log Analytics context that originally generated that alert.

### Microsoft Sentinel Permissions and Roles

Workbench requires a combination of Microsoft Entra ID Application permissions as well as a role assigned to the Microsoft Entra ID application.

To make requests to the Microsoft Graph Security API, the Microsoft Entra ID Application must have the following Microsoft Graph API permissions:

<table><thead><tr><th width="268.26953125">Permission</th><th>Function</th></tr></thead><tbody><tr><td><code>SecurityEvents.Read.All</code></td><td>Allows the app to read your organization’s security events on behalf of the signed-in user.</td></tr><tr><td><code>SecurityAlert.Read.All</code></td><td>Allows the app to read all security alerts on behalf of the signed-in user.</td></tr><tr><td><code>SecurityIncident.Read.All</code></td><td>Allows the app to read security incidents on behalf of the signed-in user.</td></tr></tbody></table>

To query Log Analytics workspace data, the Microsoft Entra ID Application must have this Log Analytics API permission:

<table><thead><tr><th width="268.0078125">Permission</th><th>Function</th></tr></thead><tbody><tr><td><code>Data.Read</code></td><td>Reads Log Analytics data.</td></tr></tbody></table>

The Microsoft Entra ID Application must also be assigned this role either for the subscription that contains the Microsoft Sentinel Workspace or directly w/ the Microsoft Sentinel Workspace:

<table><thead><tr><th width="268.4140625">Role</th><th>Function</th></tr></thead><tbody><tr><td><code>Log Analytics Reader</code></td><td>Views and searches all monitoring data as well as views monitoring settings, including viewing the configuration of Azure diagnostics on all Azure resources.</td></tr></tbody></table>

### Remediation Capabilities

<table><thead><tr><th width="268.14453125">Permission</th><th>Function</th></tr></thead><tbody><tr><td><code>Disable user account</code></td><td>Allows the app to enable and disable users' accounts, on behalf of the signed-in user.</td></tr></tbody></table>

## Step 1: Enable Console and Cross-Tenant Access for Expel

{% hint style="warning" %}
**If your organization has already created a new Expel account for console access and enabled cross-tenant access for another Microsoft integration, you may skip to** [**Step 2: Enable API Access for Workbench**](#step-2-enable-api-access-for-workbench)**.** The same "\<Your Organization GUID>@soc.expel.io" account provides access across all Microsoft services.
{% endhint %}

### Step 1: Enable Console Access for a New Account

Expel requires console access to allow analysts to perform investigation and triage. Without this additional level of information, details cannot be verified by our analysts and an investigation cannot be initiated. For more information, see [Why Expel Asks for Console Access](/connect-your-technology/about-integrations/why-expel-asks-for-console-access.md).

1. [Log in to the Microsoft Entra Admin Center](https://entra.microsoft.com/) as a user assigned the Global Administrator or User Administrator role.
2. Navigate to **Entra ID > Users > All Users**.
3. Select **User > Invite external user**.
4. On the **Basics** tab, include the following:
   * **Email** - use your [Organization GUID](#user-content-fn-1)[^1] to create the email address in the format "\<Your Organization GUID>@soc.expel.io". For example, `a123bc45-aa12-123b@soc.expel.io` .
   * **Display Name** - enter "Expel SOC".
5. On the Assignments tab, configure the following:
   * Select **Add role**.
   * Search for and select **Global Reader**.

{% hint style="info" %}
This role provides read-only access across most Microsoft 365 and Azure management consoles.
{% endhint %}

6. Select **Review + invite** and then **Invite**.

The user account will be added to your directory as a guest, and an invitation will be sent to the email provided.

### Step 2: Enable Cross-Tenant Access

In this step you will add Expel as an external organization and configure inbound trust.

1. Still in the Microsoft Entra Admin Center, navigate to **Entra ID > External Identities > Cross-tenant access settings**.
2. Select the **Organizational settings** tab.
3. Select **Add organization**.
4. On the Add organization pane, enter Expel’s tenant ID: `1cde81fd-b430-4035-b24d-709921922876`
5. Select **Expel** from the search results, and then select **Add**.
6. In the Organizational settings list, locate the **Expel** row and select **Inbound access**.
7. On the "Inbound access settings - Expel" page, select the **Trust settings** tab, and configure the following:
   * Select **Customize settings**.
   * Enable **Trust multifactor authentication from Microsoft Entra tenants**.
   * Enable **Trust compliant devices**.
   * Enable **Trust Microsoft Entra hybrid joined devices**.
   * Under Automatic redemption, enable **Automatically redeem invitations with the tenant Expel**.
8. Select **Save**.

## Step 2: Enable API Access for Workbench

Choose one of the following methods to enable secure API access. You will need to save the following value(s) as they are generated, for use later in this guide:

* Directory (tenant) ID
* Application (client) ID\*[^2]
* Application (client) secret value\*[^2]

{% hint style="info" %}
Enabling the Expel Azure Integration app is the recommended approach. However, because the app supports access for multiple Microsoft integrations (Microsoft Sentinel, Azure Log Analytics, and so on), it may be that the permissions granted to the app are more than the minimum required for the integration specifically. The second option is available if and when the absolute minimum permissions are required.
{% endhint %}

<details>

<summary>Option 1: Enable the Expel Azure Integration (RECOMMENDED)</summary>

1. As an Administrator, go to the[ Expel Admin Consent Page](https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent\&client_id=5b465fa7-ab2e-4840-9e40-d471cdfcc903\&response_type=code\&sso_reload=true).
2. Review and accept the requested permissions.
3. The Expel Azure Integration app now appears under Enterprise Applications.&#x20;
   * Review the properties and make sure that all permissions were properly granted.&#x20;
   * Copy and save the **Directory (Tenant) ID**, as you will need it in the next step.

<table><thead><tr><th width="268.171875">Permission</th><th>Function</th></tr></thead><tbody><tr><td><code>User.Read</code></td><td>Allows users to sign in to the app and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.</td></tr><tr><td><code>SecurityEvents.Read.All</code></td><td>Allows the app to read your organization’s security events without a signed-in user.</td></tr><tr><td><code>User.ReadWrite.All</code></td><td><p>Allows the app to read and update user profiles without a signed-in user.</p><p></p><p><em>Note: Write permissions are optional, and only required if you plan to enable</em> <a href="/pages/EyWah2jprFVmJXj442PU"><em>Expel's auto remediation capabilities</em></a> <em>for disabling and resetting user credentials.</em></p></td></tr><tr><td><code>User.Read.All</code></td><td>Allows the app to read user profiles without a signed-in user.</td></tr><tr><td><code>Data.Read</code></td><td>Allows this application to access Log Analytics data.</td></tr><tr><td><code>SecurityAlert.Read.All</code></td><td>Allows this application to read all security alerts.</td></tr><tr><td><code>SecurityIncident.Read.All</code></td><td>Allows this application to read all security incidents.</td></tr></tbody></table>

</details>

<details>

<summary>Option 2: Create a Custom Entra ID App</summary>

1. [Log in to Azure.](https://portal.azure.com/)
2. Navigate to the **Microsoft Entra ID** service.
3. Go to **Manage > App registrations**.
4. Select **New registration**.
5. Fill in the application details as follows:
   * **Name** - enter "Expel Sentinel", or another name of your choosing.
   * **Supported account types** - leave the "accounts in this organizational directory only" option selected (the first option).
6. Select **Register**.
7. You will navigate automatically to the Settings page for the app you just created.
8. Copy and save the **Application (client) ID** and **Directory (tenant) ID** to a safe place, as you will need it in the next step.
9. In the left menu, go to **Manage > API permissions**.
10. Select **Add a permission**.
11. Add the following permissions as **application permissions** (not as delegated permissions):

<table><thead><tr><th width="247.83203125">API</th><th>Permissions</th></tr></thead><tbody><tr><td>Log Analytics</td><td><code>Data.Read</code></td></tr><tr><td>Microsoft Graph</td><td><p><code>SecurityEvents.Read.All</code></p><p><code>SecurityAlert.Read.All</code></p><p><code>SecurityIncident.Read.All</code></p><p><code>User.Read.All</code></p></td></tr></tbody></table>

12. After the permission is assigned, select **Grant admin consent** and **Yes** at the prompt.
13. Still in the new app, use the left menu to go to **Manage > Certificates & secrets**.
14. Select **New client secret**.
15. For the new secret:
    * **Description** - enter a description, such as "Expel API".
    * **Expires** - select **Never**.
16. Select **Add**.
17. Copy and save the **client secret's** [**value**](#user-content-fn-3)[^3] to a safe place, as you will need it in the next step.

</details>

## Step 3: Enable Azure Log Analytics and Microsoft Sentinel access

Microsoft Sentinel can be run on top of multiple Azure Log Analytics workspaces. These workspaces are used as data stores for the Microsoft Sentinel service. Querying these Azure Log Analytics workspaces allows Expel to enrich Microsoft Sentinel alerts with the Azure Log Analytics context that originally generated that alert.

{% hint style="info" %}
This integration only monitors Microsoft Sentinel running on top of the Log Analytic workspace(s) that it is allowed to read from. The appropriate level of permissions must be granted through the following steps.&#x20;

To view all Azure Log Analytics workspaces associated with Microsoft Sentinel, navigate to the Microsoft Sentinel blade within the Azure Portal.
{% endhint %}

<details>

<summary>Option 1: Enable Access for Each Individual Log Analytics Workspace</summary>

The Azure Log Analytics Reader role must be given to the Microsoft Entra ID application created in [Step 2](#step-2-enable-api-access-for-workbench) for each of the Microsoft Sentinel-enabled Azure Log Analytics workspaces to be monitored.

1. [Log in to Azure](https://portal.azure.com/) as an Administrator.
2. In the navigation pane, select **Azure Log Analytics workspaces**.
3. Select the **name** of the workspace.
4. Select **Access Control (IAM) > + Add > Add role assignment**.
5. In the **Add role assignment** pane, set the following fields:
   * **Roles** - choose `Azure Log Analytics Reader` and `Microsoft Sentinel Reader`.
   * **Assign access to** - choose the Microsoft Entra ID user, group or application.
   * **Select** - search and select the Microsoft Entra ID app you created in Step 2.
6. Select **Save**.

Repeat these steps for all workspaces to be monitored.

</details>

<details>

<summary>Option 2: Enable Access for All Workspaces in the Azure Subscription</summary>

1. [Log in to Azure](https://portal.azure.com/) as an Administrator.
2. In the navigation pane, select **Subscriptions**.
3. Select the subscription.
4. Select Access **Control (IAM) > + Add > Add role assignment.**
5. In the **Add role assignment** pane, set the following fields:
   * **Roles** - choose `Azure Log Analytics Reader` and `Microsoft Sentinel Reader`.
   * **Assign access to** - choose the Microsoft Entra ID user, group or application.
   * **Select** - search and select the Microsoft Entra ID app you created in Step 2.
6. Select **Save**.

Repeat these steps for all subscriptions to be monitored.

</details>

## Step 4: Add Microsoft Sentinel as a Security Device in Workbench

Now that we have the correct access configured and noted the credentials, we can integrate your tech with Workbench.

{% hint style="info" %}
Expel secures all login information our SOC analysts need about your devices in an MFA password product. Access to this login information is protected using our internal MFA processes. To learn more about the IP addresses all Expel traffic [comes from, go here.](https://support.expel.io/hc/en-us/articles/13612714001171)
{% endhint %}

1. [Log in to Workbench](https://workbench.expel.io/auth/login?orig=%2F).
2. In the side menu, navigate to **Organization Settings > Security Devices**. If you have multiple organizations, you must select the appropriate organization name from the list.
3. Select **Add Security Device**.
4. In the search box, enter “Sentinel” and then select the Microsoft Sentinel integration.
5. Complete the fields as follows:
   * **Name** - enter a name that might help you more easily identify this integration, such as “CompanyName Sentinel”; this name will display in Workbench under the Name column, and is a text string that you can filter on.
   * **Location** - enter the location of your integration, for example “cloud;” this is also a text string that you can filter on, so we recommend being consistent with location naming across your Expel integrations.
   * **Directory (tenant) ID** - enter the Directory (tenant) ID value from Step 2.
   * **Application (client) ID** - for custom apps only, enter the Application (client) ID value from Step 2.
   * **Application (client) secret** - for custom apps only, enter the Application (client) secret value from Step 2.
   * **Workspace IDs** - this optional field accepts a comma-separated list of Azure Log Analytics workspace IDs. By default, the integration monitors any workspaces which have permissions assigned in Step 3. However this field can be used to define a subset of those workspaces that should be monitored, and can be especially helpful when assigning permissions at the Azure subscription level (if you want to only monitor some workspaces within that subscription).

{% hint style="info" %}
To get the Azure Log Analytics workspace ID associated with a Microsoft Sentinel workspace:

1. Navigate to the Microsoft Sentinel blade within the Azure Portal.

2. Select the Microsoft Sentinel workspace.

3. Select Settings > Workspace Settings. The Workspace ID is listed at the top of the Overview.
   {% endhint %}

4. Select **Save**.

5. For console access, select **Set up later** from the dropdown (Expel will complete the console access setup process). [Why do we need console access?](/connect-your-technology/about-integrations/why-expel-asks-for-console-access.md)

6. Select **Save**.

Your device should be created successfully within a few seconds. A few reminders:

* After your connection is healthy, it will take some time for your device to begin polling and receiving data.
* To check on the status, select the downward arrow for your device in the first column and choose **View details**.
* Polling will happen first; data will be received after that. **You must refresh the page to see updates.**
* If your device does not begin polling within 15 minutes, and does not begin receiving data within 30 minutes, [contact our support team for help](/support/how-to-reach-us.md).
* To check if alerts are coming through, navigate to **Dashboards > Alert Analysis**. Scroll to the device you want to check, and select the **Expel Alerts** tab to reveal more alert information. It can take 36 to 72 hours for alerts to appear after setup, as we [tune your device](/workbench-reference/alerts/how-expel-alerts-work.md#device-tuning).

[^1]: - [Log in to Workbench](https://workbench.expel.io/auth/login?orig=%2F).
    - Go to **Organization Settings > My Organization**.
    - On the organization's page, look for the Organization GUID and select the **Copy** button to copy the GUID.

[^2]: *Custom Entra ID apps only.*

[^3]: Make sure you copy the value, not the secret ID.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.expel.io/connect-your-technology/l-p-integrations/microsoft/microsoft-sentinel-setup-for-workbench.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
