An Azure service that provides fine-grained access management for Azure resources, enabling you to grant users only the rights they need to perform their jobs.
The failure is caused by missing Microsoft Graph API permission, not just the custom Microsoft Entra role assignment.
Authorization_RequestDenied in Microsoft Graph typically requires both of these:
- The appropriate Microsoft Entra RBAC role for the operation.
- The necessary Microsoft Graph API permissions.
For app registration creation specifically:
-
microsoft.directory/applications/createAsOwnerallows creating app registrations and adds the creator as the first owner. - That permission must be assigned at the directory scope. A create permission assigned at a resource scope does not grant the ability to create app registrations.
- If the role is assigned only to the existing app registration, that is a resource-scope assignment, so it will not allow creating new app registrations.
That matches the behavior being seen:
- Custom role assigned to the app registration resource: create call fails.
- Adding
Application.ReadWrite.OwnedByMicrosoft Graph permission: create call succeeds because the Graph API permission requirement is then satisfied for the call path being used.
What to change:
- Verify the custom role assignment scope.
- For create permissions, assign the role at the directory scope (
/), not on a specific app registration.
- For create permissions, assign the role at the directory scope (
- Keep the create permission needed for the intended behavior.
-
microsoft.directory/applications/createAsOwner= creator becomes first owner and the object counts toward the creator’s 250-object quota. -
microsoft.directory/applications/create= creator is not added as first owner and the object does not count toward that 250-object quota. - If both are assigned,
microsoft.directory/applications/createtakes precedence.
-
- Ensure the calling app also has the required Microsoft Graph API permission for the SDK call.
- The Graph troubleshooting guidance states that Graph calls require both RBAC role and Graph API permission.
If the goal is for the service principal to create app registrations through Microsoft Graph, the supported setup is:
- Create a custom role containing the app creation permission.
- Assign that custom role to the service principal at directory scope.
- Use the required Microsoft Graph API permission for the application.
References: