--- title: "Microsoft Defender for Endpoint Software Inventory" slug: "mde-software-inventory" updated: 2025-03-12T16:08:03Z published: 2025-03-12T16:08:03Z canonical: "docs.databee.buzz/mde-software-inventory" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.databee.buzz/llms.txt > Use this file to discover all available pages before exploring further. # Microsoft Defender for Endpoint Software Inventory Microsoft Defender for Endpoint protects your Windows and Linux machines whether they are hosted in Azure, hybrid clouds (on-premises), or multi cloud environments. Its API facilitates a comprehensive integration process, primarily focusing on importing detailed machine data. For detailed information, please refer to [Microsoft’s official documentation](https://learn.microsoft.com/en-us/defender-vulnerability-management/tvm-software-inventory). **Integration Method:** API **Tables**: Vulnerability Finding (2002), Software Inventory Info (5020) This integration supports the following type of events. | **Event** | **Description** | | --- | --- | | Software | Retrieves the organization software inventory. | > [!NOTE] > Note: > > Microsoft Defender for Endpoint is a continuously updated cloud service. As for this document preparation, the latest release was in January 2025. ## Prerequisites - The user should have access to the [Azure portal](https://portal.azure.com/) with an account that has the Global Administrator privileges. - The user should have access to the DataBee console. ## Configuration Overview 1. Create an application with required permissions to fetch the data. 2. Create [MDE Software Inventory](/user-manual/docs/microsoft-defender-for-endpoint-software-inventory#databee-configuration) in the DataBee console with the required Client credentials. | **DataBee Parameter** | **Azure Parameter** | | --- | --- | | Client Key | Application (client) ID | | Client Secret | Client Secret Value | | Token URL() | Directory (Tenant) ID | ## Azure Configuration ### Create an application 1. Log on to[](https://portal.azure.com/)[Azure portal](https://portal.azure.com/) with an account that has the Global Administrator privilege. 2. In the search bar, search for **App registrations** and select it. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-7zflhiym.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 3. On the “App registrations” page, select **New registration**, **“**Register an application” window will appear. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-985qokx2.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 4. On the “Register an application” window: 1. Under ‘Name’, enter your Application Name then click on **Register** to create the application. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-apx4d4ye.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 5. On the app **Overview** page, copy the **Application (client) ID** and **Directory (tenant) ID** for later use. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-fgvp833y.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) ### Add Endpoint Access Once the application is created, these permissions should be provided in order to fetch data. The appropriate permissions for the application are needed to access these endpoints. The following section details how to configure and add permissions to the required endpoints. #### Add Permissions From the Azure Active Directory portal: 1. Select the application registered in the previous step. 2. Under **Manage,** click **API permissions** and then click **Add a permission**, the “Request API permissions” window will appear. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-8oflel12.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 3. On “Request API permissions” window, Click on **APIs my organization** **uses** then on **WindowsDefenderATP**. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-bc2ru918.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 4. Select **WindowsDefenderATP** and then click on **Application permissions**. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-nzhltiab.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 5. The following permissions need to be granted for the endpoint to function properly: | Event | Type | Permission | | --- | --- | --- | | Software | Application | Vulnerability.Read.All | | Software | Application | Software.Read.All | 6. In the **Select permissions** search bar, enter the permissions shown above, and check the box to include them. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-zn3bjtvc.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-k9nazks3.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 7. Click the **Add permissions** button after selecting all required permissions. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-10k25pd9.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 8. On the **API permissions** page, click **Grant Admin Consent** **for ** and click the **Yes** button on the consent confirmation. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-8fws97jh.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 9. The necessary permissions have now been added for the endpoints. After this step, the permissions should include at least the minimum required permissions shown in the screenshot below. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-6pff6ivw.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) ### Create the Client Secret The final step to access the APIs is creating a Client Secret. To create it from the Azure Portal: 1. Select the application created above. 2. Under **Manage**, Click **Certificates & secrets**, and then **Client secrets**. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-xjglj4ku.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 3. Click **New client secret**. Then “Add a client secret” window appears. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-w98khvmc.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 4. On “Add a client secret” window: 1. Enter a ‘Description’ for this client secret and select the desired expiry period from the ‘Expires’ drop-list. 2. Then click on **Add** to create the client secret. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-hknodoen.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) > [!NOTE] > Note: > > The user needs to re-create the client secret when it expires. 5. Copy the **Value** fields for later use. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-br1g6lfh.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) ## DataBee Configuration 1. Login to the DataBee UI, navigate to **Data** > **Data Feeds** and click the **Add New Data Feed** button. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-u35o1zsv.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 2. Search for the **MDE Software Inventory** and click it as shown below. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-25d5mhon.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 3. Click on the **API Ingest** option for collection method. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-ndm815ph.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 4. Enter feed contact information and click **Next**. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-7ackn8pj.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 5. In the configuration page, confirm the following: - API Base URL: this is the base URL that DataBee will interact with. - Authorization Method: OAuth2 - Client Key: paste the Application(Client)ID generated earlier in the Azure portal. - Client Secret: paste the Client Secret value generated earlier in the Azure portal. - Token URL: replace placeholder with your Directory (Tenant) ID. - Event Types: preselected for all the event types that integration pulls. ![](https://cdn.document360.io/04e48772-4346-44a4-aa69-043eca42257c/Images/Documentation/mde-software-inventorydoc-standard---inprogress-image-0pdegz3h.png?sv=2026-02-06&spr=https&st=2026-10-30T11%3A32%3A39Z&se=2026-10-30T12%3A32%3A39Z&sr=c&sp=r&sig=QnDLJFtO1NiK4MN5l%2Bw3kKwZ%2FYJtOgUhvzAOiUtMTws%3D) 6. Click **Submit.** ## Troubleshooting Tips - If you are facing **an invalid client** or **unauthorized client** error this might be possibly due to incorrect credentials. Ensure the client key, client secret and Tenant ID are pasted correctly. Since you cannot view the client secret after the 1st time, re-create it, paste it on a text editor to ensure no spaces or unexpected characters are included and reconfigure the DataBee feed. - If you are facing **403** response code this might be possibly due to missing permissions. Ensure that all the required permissions are granted correctly as per the above-mentioned steps.