Microsoft Graph Permission Lookup Least privilege, without the digging
Application.ReadWrite.OwnedBy

Manage application objects the calling application owns.

Least-privilege guidance: Prefer this to Application.ReadWrite.All for automation constrained to owned applications.
Implementation playbook

Grant it correctly and verify the token

Microsoft Graph authorizes the endpoint, token type, permission claim, user role, and resource together.

1

Why access still fails

  • The app was granted a permission that does not cover the exact endpoint or method.
  • The token contains delegated scopes when the app needs application roles, or application roles when a signed-in user is required.
  • Consent was not completed, the token was not refreshed, or the signed-in user lacks the required Entra role or license.
  • Ownership itself is security-sensitive; review how owner relationships are assigned.
2

Recommended setup

  1. Confirm the exact endpoint and HTTP method, then select Application.ReadWrite.OwnedBy only if its Microsoft method documentation lists it.
  2. Choose delegated or application access and confirm this record supports that mode.
  3. Grant admin consent only after the application, publisher, tenant, and requested permission have been reviewed.
  4. Acquire a new token after the permission or consent change; old tokens do not gain new claims.
  5. Retest the smallest read or write operation before expanding the application workflow.
3

Verify

  1. Use Get-MgContext to confirm tenant, account, authentication type, and delegated scopes.
  2. For delegated tokens, verify the scp claim; for app-only tokens, verify the roles claim contains the expected permission.
  3. Confirm the token audience is Microsoft Graph and retry the exact endpoint with a new request ID.
4

Escalate when

  • The endpoint documentation lists this permission, a new token contains the correct claim, and the request still returns 401/403.
  • The same operation works for one identity or tenant but not another after role, license, ownership, and Conditional Access are compared.
  • You can provide the UTC time, sanitized request/response, request ID, tenant/app IDs, token type, and granted permission list.
Inspect the active Graph PowerShell context
Get-MgContext | Select-Object ClientId,TenantId,Account,AuthType,Scopes

Read-only. For app-only access, inspect the access token roles claim as well.

Permission evidence template
Permission: Application.ReadWrite.OwnedBy
Access mode: <delegated | application>
Endpoint and method: <GET https://graph.microsoft.com/v1.0/...>
UTC timestamp: <yyyy-mm-dd hh:mm:ssZ>
Request ID: <guid>

Template only. Do not paste access tokens or secrets into tickets.

Permission modes

Delegated
Supported — admin consent required
Application
Supported — admin consent required

Common uses

  • Maintain owned app registrations
  • Rotate credentials on owned apps
  • Update an owned service principal
Advertisement