Build1 distinct publisher2 min readPublished
A custom directory role scoped to one app consent policy lets a delegate approve tenant-wide consent only inside a named envelope. The queue does not vanish; it becomes policy maintenance.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The suffix on the role action is doing the load-bearing work. A holder of that custom role can grant tenant-wide consent for delegated and application permissions, but only for requests that satisfy the bound policy [3]. The check sits in the authorization path, not in a runbook the delegate is trusted to follow.
What you can write into that path is specific. Condition sets can key on the permission type, the resource application, named permissions, named client applications, and publisher status [5]. That is enough to express envelopes such as delegated Mail.Read and Files.Read against Microsoft Graph, selected application permissions on a single internal finance API, or delegated permissions from verified publishers with sensitive resources carved out [13]. The exclude set is the part that survives somebody later widening an include.
Precision has a bill. The policy names the exact delegated scopes and app roles the organisation considers appropriate rather than everything an API exposes [12], so the envelope becomes an artifact with an owner and an edit history, and its edit rate is governed by how fast agent capabilities change rather than by how many requests land in an inbox [11][14]. The approval queue does not disappear under this model. It moves upstream and turns into policy maintenance, which is a better place for it, because a policy edit is reviewable and a one-off approval mostly is not.
The alternative being argued against is well documented in the post: a small identity or security team validates the application, checks the requested permissions, finds the business owner, and approves or rejects [8]. Staykov's assessment of the usual relief valve is that it expands authority without making any individual consent decision more precise [10]. That matters because a tenant-wide grant can authorise an application to reach organisational data or perform privileged operations across the tenant, which is why the guidance he cites is to read the requested permissions before granting [7]. He frames the policy-bound role as a different idea from a reduced Global Administrator: delegate the decision without delegating the directory [15].
The maturity caveat is the delivery surface. This is a Graph-shaped operation, which makes it scriptable and diffable, and also puts it out of reach of any tenant without someone willing to write those calls. Those tenants will keep choosing between the queue and the broad role. It is also worth being clear about the evidence: this is one practitioner post, it offers no adoption figures, and it calls the control surface underused [15] without quantifying how underused. The mechanism is documented. The prevalence is not measured.
Ranked by verification strength, evidence, and original report placement.
Microsoft Entra supports defining which consent requests are acceptable in an app consent policy, binding that policy to a custom directory role, and delegating only the authority to approve requests inside that envelope.
The role action that enables this is microsoft.directory/servicePrincipals/managePermissionGrantsForAll.{id}, where {id} identifies the app consent policy that constrains the consent authority; the suffix binds the role permission to that policy.
The role assignee can grant tenant-wide consent for delegated permissions and application permissions only when the consent request satisfies the bound policy.
An app consent policy contains one or more include condition sets and can contain exclude condition sets; a request must match at least one include condition set and must not match any exclude condition set for the policy to pass.
Condition sets can describe characteristics such as the permission type, the resource application, specific permissions, client applications, and publisher status.
Microsoft exposes this policy model through Microsoft Graph, as the permissionGrantPolicy and permissionGrantConditionSet resources under /policies/permissionGrantPolicies.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Mechanism documented, single secondary source
The load-bearing technical claims - the policy-bound role action and its {id} suffix, the include/exclude condition-set evaluation model, the condition-set attributes, and the Graph resources under /policies/permissionGrantPolicies - are specific, internally consistent, and attributed inline to named Microsoft documentation pages. But the cluster contains exactly one source, a dev.to practitioner post; the referenced Microsoft docs are not themselves supplied for verification, and the framing claims about centralization, queue growth and agent-driven consent volume carry no data.
No usage evidence supplied
The cluster contains no release, deployment, benchmark, pricing, licensing-change or usage-disclosure event. The capability is described as already existing in Entra, and the author asserts it is underused, but no supplied material quantifies how many tenants configure policy-bound consent roles or reports any organization doing so.
Slightly overstated framing, honest mechanics
The mechanism is described accurately and the article volunteers its own limits - Entra ID P1 required, no admin-center support for these app-consent permissions, and the acknowledgement that unenumerated requests still escalate - which keeps overstatement modest. The positive tilt comes from urgency framing that outruns the evidence: AI agents are said to make consent a recurring control-plane operation and the control surface is called underused, both without any measurement, and the headline positions a long-documented Entra feature as an answer to a queue problem whose scale is never established.
No disclosed affiliation or commercial stake
The supplied source carries no author affiliation, sponsorship, vendor relationship or product disclosure, and the cluster provides no other material about who benefits from the framing. The post promotes a native Microsoft capability rather than a purchasable third-party product, but nothing in the supplied material establishes the author's relationship to Microsoft or any commercial interest, so incentive pressure cannot be scored without inference.
Solid mechanics, unverified context, one publisher
Confidence is moderate: the configuration-level claims are precise and documentation-anchored, so a reader can act on the mechanism with low risk of being misled, and the article's self-disclosed constraints raise trust. It is held down by single-publisher coverage, the complete absence of adoption evidence, unresolvable incentive context, and four claims - centralization norms, queue growth, agent-driven consent volume, and the underuse assessment - that rest on the author's judgement alone.
build
Same-day GPT-5.6 on Azure kills the parity argument, leaving auth and residency to decide1 distinct publisher
security
A CVSS 10.0 RCE in Entra ID was exploited in the wild, and there was nothing to patch1 distinct publisher
build
Three permission problems wearing one service principal: why published agents return 4031 distinct publisher
security
Storm-0501's first move is deleting your resource locks, not encrypting your disks1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 25, 2026