microsoftgraph / microsoftgraph/msgraph-metadata

Add metadata for deviceManagement/inventoryPolicies and clarify app-only permissions

Open
#1,169 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

ToTriage
Dominant language
XSLT
Stars
166
Forks
55
Avg merge
16h 12m
Merged PRs (30d)
14

Description

Summary

The Microsoft Graph beta endpoint POST /deviceManagement/inventoryPolicies is used by the Microsoft Intune admin center for Properties catalog policies, including Windows app inventory. The endpoint does not appear in the published Microsoft Graph metadata or REST API documentation. This makes its supported request schema and authentication requirements impossible to determine.

Calls using an application token consistently return 403 Forbidden, even when the service principal has the relevant effective Microsoft Graph app-role assignments.

Reproduction
POST https://graph.microsoft.com/beta/deviceManagement/inventoryPolicies
Content-Type: application/json
Authorization: Bearer <application-token>

{
  "name": "TEST - Win - Default - App Inventory - v1.0",
  "description": "Application inventory test",
  "platforms": "windows10",
  "technologies": "extensibility",
  "roleScopeTagIds": ["0"],
  "settings": [...]
}

The same authorization failure also occurs for a read request:

GET https://graph.microsoft.com/beta/deviceManagement/inventoryPolicies?$select=id,name
Authentication configuration

The workload uses an Entra service principal authenticated through GitHub Actions workload identity federation. Admin consent and the effective appRoleAssignments were independently verified for these application permissions:

  • DeviceManagementConfiguration.ReadWrite.All
  • DeviceManagementScripts.ReadWrite.All
  • DeviceManagementServiceConfig.ReadWrite.All

The POST was issued by the microsoft/msgraph Terraform provider v0.4.0, but the failure is returned by the Graph/Intune service rather than by the provider. Other Intune operations using the same identity succeed.

Actual result
HTTP 403 Forbidden
error.code: Forbidden
Backend: DeviceConfigV2/DCV2GraphService
Activity ID: 7cb0a62b-bb01-46d2-bf91-4b6facc31354
Request time: 2026-07-27T07:55:24Z

The backend message contains only An error has occurred and does not identify a missing permission or unsupported authentication mode.

Workflow reproduction: https://github.com/Workplace-Foundation/workplace-foundation-7hhtqg/actions/runs/30247477402/job/89918094870

Expected result

One of the following should be available:

  1. Add deviceManagement/inventoryPolicies, its settings and assignment operations to the beta metadata and REST API documentation, including supported application/delegated permissions and request schemas.
  2. If application authentication is supported, allow the request when the documented app roles are present or return an actionable authorization error.
  3. If the endpoint supports delegated authentication only, document that restriction explicitly.
Related operations

The Intune admin center appears to use these operations:

  • GET/POST /beta/deviceManagement/inventoryPolicies
  • GET/PUT/DELETE /beta/deviceManagement/inventoryPolicies/{id}
  • GET /beta/deviceManagement/inventoryPolicies/{id}/settings
  • GET /beta/deviceManagement/inventoryPolicies/{id}/assignments
  • POST /beta/deviceManagement/inventoryPolicies/{id}/assign

Official Intune documentation describes creating Properties catalog and app inventory policies in the portal, but no corresponding Graph REST documentation or metadata is currently discoverable.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by checking the beta metadata and REST documentation for the listed deviceManagement/inventoryPolicies operations, settings, assignments, and permissions. Compare the documented surface with the GET and POST requests in the reproduction, then verify that the resulting metadata, schemas, and app-only or delegated authentication behavior are explicitly documented or produce an actionable authorization error.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, terraform
Domain
api, authorization, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.