Copilot Playbook
Updated November 7, 2026
Managed App Handbook · Chapter 5 of 8

Access, security and governance

The four checks behind every share, what users and admins can see, tenant governance and how to ask for an exception.

For makers, developers, admins and owners · 12-minute read · Facts as of 7 November 2026

Chapter 5 of 812-minute readParts 15–16Facts current as of 7 November 2026

Evidence tagsD DocumentedO ObservedC CommunityI Inference

Every claim in this handbook carries a tag, so you can tell documentation from observation from opinion.

  • DDocumented. Documented by Microsoft on Learn, Support, Message center, GitHub or an official blog, as of the dates in Appendix E
  • OObserved. Observed first-hand on 7 November 2026 in a live Copilot Code cloud session: its tools, its sandbox, an example tenant's policy verdicts, and the repository of a production partner-sales app
  • CCommunity. Reported by the community (MVP blogs, forums, videos, GitHub issues) and not confirmed by Microsoft
  • IInference. Inference or recommendation by the author; test it before you rely on it

Part 15

Giving people access

  • What it isThe four separate checks behind every share, how to share from each tool, what recipients experience, and how to revoke access.
  • What you doLine up play, edit, data permissions and runtime coverage on one Entra group, and test with an ordinary colleague's account.
  • Watch outEdit access grants write access to the repository, guests can't open apps yet, and play and edit must be removed separately.

Decide this in the setup Step 7: Access and licensing

Sharing a managed app is four decisions, not one. Section 15.1 shows them; the rest of this part shows how to make each one from every tool, and how to undo it.

Figure 5. One Entra group lines up all four checks. Sharing grants only the first two; data and runtime are checked for every person, every time.
One group lines up all four checks One Entra group is used four ways: the app is shared with it for play, edit goes only to co-owners, the same group holds the list or table permissions, and the same group gets Power Apps Premium or a runtime spending policy. Sharing grants checks 1 and 2; checks 3 and 4 are made for every person, every time. One Entra group the app's audience share: play share: edit (co-owners only) grant list or table rights assign Premium or credits 1. Open the app (play) Run-only: the Microsoft App Reader role granted by sharing 2. Change the app (edit) Contributor rights on the app's source repository granted by sharing 3. Reach the data The app calls each source as that person checked every time 4. Pay for runtime Premium, or 0.1 credit per API call plus a per-launch charge checked every time

Swipe sideways to see the whole figure, or read it as text below.

Read the figure as text

One Entra group is used four ways: the app is shared with it for play, edit goes only to co-owners, the same group holds the list or table permissions, and the same group gets Power Apps Premium or a runtime spending policy. Sharing grants checks 1 and 2; checks 3 and 4 are made for every person, every time.

Numbers from the claim register: 0.1 credit per API call D (section 1).

15.1

The four checks

Access is four separate checks. Sharing the app covers only the first two; data permissions and runtime coverage are checked for every person, every time.

  1. Open the app (play)

    Run-only access, granted as the Microsoft App Reader role. Microsoft states plainly that environment access and app sharing are separate controls. DO

  2. Change the app (edit)

    Contributor rights on the app's source repository, which let someone clone, push, see the preview and deploy. Play and edit are independent: granting one never grants or removes the other. Copilot Studio sharing never grants edit. DO

  3. Reach the data

    Recipients need "the appropriate source permissions and connections." The app calls each source as that person, so someone without access to the list sees an empty screen, not your data. D

  4. Pay for runtime

    Each person needs Power Apps Premium or Copilot credits under a spending policy: 0.1 credit per API call, plus a per-launch charge whose rate is not published. A Microsoft 365 Copilot license is not required just to run an app. D

Rule of thumb: share the app with the same Entra group that holds the data permissions and the license, so all four checks line up for one name (section 15.5). I

15.2

Sharing from each tool

ToolHow to shareNotes
CoworkOpen the app for editing, test it, select Publish, then select Share to generate a sharing link and send itEvery later change needs Publish again; the link carries play access only D
Copilot CodeSay "Publish it", then "Share it with the Partner Sales group so they can use it" or "...so they can edit it"Code looks up the people or groups first and grants by Entra object id, up to 20 at a time, on the play or edit level. It can list current grants but can't create an organization-wide link DO
Copilot Studio AppsPublish, open and check the URL, select Share, choose people, a Microsoft 365 or security group, or a permitted link, review the connections, then send the invitation or copy the linkStudio sharing is use access only; it never grants editing D
ms CLIms app share <people> --access play or --access edit; ms app share link create for an organization linkThe only route with a full, scriptable inventory and revocation D
Coding-agent plugin/share and /share-linkAsks for confirmation, then runs the same CLI commands D

15.3

Command-line reference

ms auth status
ms app share alice@contoso.com,bob@contoso.com --access play
ms app share dev-team@contoso.com --access edit
ms app share list --access play
ms app share list --access edit
ms app unshare alice@contoso.com --access play
ms app share link create
ms app share link list --json
ms app share link revoke --link-id <id>
ms app list --permission play
  • Principals are a comma-separated list of email addresses or Entra object ids. Unresolved addresses produce warnings while the rest go through, so read the output rather than assuming everyone was added. D
  • share list needs --access; run it for both levels. The flag is --access; there is no --role. D
  • An organization link is revocable and scoped to your tenant, never anonymous. Redeeming it grants Microsoft App Reader, and revoking it removes the role from everyone who redeemed it. D

15.4

What the recipient experiences

  • They can open the link you send, or find every app shared with them at managedapps.cloud.microsoft. D
  • On first open they sign in and, for apps that use connectors, see a connection consent dialog listing the sources and actions. Single sign-on is attempted, and they can sign in manually to repair a failed connection. D
  • If their environment, license or data permissions are missing, the app opens but fails at the first data call, or is blocked after 20 app operations or five minutes. Always test with an ordinary colleague's account, never only your own. DI
  • For Teams, Microsoft's documented route is posting the link in a channel. Pinning a managed app as a Teams tab is not documented, and the content security policy's frame-ancestors rule controls where an app may be embedded. D
  • Whether recipients get an automatic email is not documented for Cowork or the CLI, so send the link yourself with a line on what the app is for. DI

15.5

Groups, environments and admin controls

  • Share with groups, not lists of people. Entra security groups and Microsoft 365 groups are supported. Distribution lists are not documented, so use a security group's object id when in doubt. D
  • One group for all four checks. Use the same group to share the app, grant the SharePoint or Dataverse permissions and assign the license or spending policy; joiners and leavers then change in one place. I
  • Environment security group. If an admin restricts the environment to a security group (Power Platform admin center, Manage, Environments, the environment, Edit, Security group), a person needs that membership and the app share; sharing doesn't bypass the group, and joining the group doesn't share any app. D
  • Organization rules. Admins set organization-wide and guest sharing for managed apps under Microsoft 365 admin center, Apps, Settings, Environment groups, the group, Sharing; these rules are separate from general Power Platform sharing settings. D
  • Inventory. Admins see every app under Apps, All apps (details, usage, monitoring, data and tools), can block an app (access stops, app and data kept) or delete it, and see changes within about 15 minutes. Numeric sharing caps are not documented. D

15.6

Edit access and ownership

  • Edit access is repository collaboration, not co-ownership. No ownership transfer or co-owner procedure is documented yet, so make a named backup owner an editor from day one and record both names in README.md. DI

15.7

Guests and partners

Decide this in the setup Step 3: People and devices

15.8

Revoking and offboarding

  • Remove play and edit separately; no single operation removes both. D
  • Revoke organization links you no longer need, then list grants again to confirm. D
  • Remove the person from the data source's group too; app access and data access end independently. I
  • Keep the share inventories from ms app share list --access play and --access edit with each release record, since a published audit-event catalog for app sharing doesn't exist yet. DI

15.9

Sharing checklist

  • The live version is the one you tested, and publishing and sharing are treated as separate steps. D
  • Play and edit inventories are reviewed; link ids and warnings are saved. D
  • The environment's security group, sharing rules, data permissions and runtime coverage all include the audience. D
  • One ordinary user, one read-only user and one person with no data access have tried the published app. I
  • The backup owner, support contact, budget owner and revocation steps are written in README.md. I

Part 16

Data, security and governance

  • What it isThe security view of sharing, what users and admins can see, guardrails inside the app, tenant governance defaults and how to ask for an exception.
  • What you doEnforce row and column rules in the source, add send checks with tests, and ask admins for the narrowest exception at the group level.
  • Watch outHiding a column is not security, admins can't see which actions an app ran, and no managed-app audit events are documented yet.

Decide this in the setup Step 8: Governance

16.1

Sharing: play, edit and links

Part 15 walks through sharing step by step; this section is the security view of the same controls.

  • Apps are private until shared. You can share with people or groups, including Entra security groups, or with a "People in your organization" link; revoking a link removes access for everyone who used it. D
  • If the environment has a security group, it still applies: sharing does not bypass it, and joining the group grants nothing by itself. D

Access is four separate checks. Sharing the app covers only the first two; data permissions and runtime coverage are checked for every person, every time.

  1. Open the app (play)

    Run-only access, granted as the Microsoft App Reader role. Microsoft states plainly that environment access and app sharing are separate controls. DO

  2. Change the app (edit)

    Contributor rights on the app's source repository, which let someone clone, push, see the preview and deploy. Play and edit are independent: granting one never grants or removes the other. Copilot Studio sharing never grants edit. DO

  3. Reach the data

    Recipients need "the appropriate source permissions and connections." The app calls each source as that person, so someone without access to the list sees an empty screen, not your data. D

  4. Pay for runtime

    Each person needs Power Apps Premium or Copilot credits under a spending policy: 0.1 credit per API call, plus a per-launch charge whose rate is not published. A Microsoft 365 Copilot license is not required just to run an app. D

Rule of thumb: share the app with the same Entra group that holds the data permissions and the license, so all four checks line up for one name (section 15.5). I

From a security view, check 2 matters most: give edit only to co-owners, because the sharing tool observed in Code grants a repository contributor role, which also unlocks the preview. DO

Partner-facing managed apps are not possible today, so pick one of these alternatives instead.

16.2

What users can see

By default each person runs the app on their own connection and sees only what their permissions allow, after approving the connection the first time. D An app can instead use a shared connection with a service identity, but shared references must declare their allowed actions or packaging and deployment fail, the CLI can create a shared reference without asking when a connector's sign-in type is shareable, and a shared table read does not restrict which rows each person sees. Check ms.config.json after every binding. DC

Anything the app downloads is visible to the person using it, because browser tools show request and response payloads. Hiding a column in the interface is not security; enforce row and column rules at the source. D

The documentation disagrees with itself here. Cowork's page warns that anyone with the link can open the app "including its data"; the Copilot Code and Studio pages say sharing never grants data access. Both can be true, depending on whether the app uses per-user or shared connections. Test with a non-owner account before you share widely. DI

16.3

Guardrails inside the app

A production partner-sales app adds its own guardrails on top of the platform's. O

  • Send checks on every path that sends or saves anything outside the app, with a test that fails if any path bypasses them.
  • Recipient guards that warn on unknown domains and block contacts the source system marks as off-limits.
  • Read-only adapters for systems the team doesn't own, with a test that fails on any write call.
  • An identity check: if a sender can't be matched to a known organization, no data is attributed to that organization.
  • Plain-text rendering, or sanitizing, of anything that came from mail, files, Copilot or the web.
  • A kill switch, planned as team-shared configuration, to turn a feature off without a release.

16.4

Tenant governance in brief

Re-check after Ignite
ControlDefaultWhere it is set
Cowork app creationOn through Frontier onboardingFrontier program
Copilot Studio app creationOn; can be limited to security groupsMicrosoft 365 admin center, or a pac admin tenant setting
CLI app creationOffPower Platform admin center, Copilot, Settings, Managed apps; or an environment-group rule
Code tabCopilot Code is gated by a Copilot spending policy that includes Code, plus Frontier membership and, on Windows, the Beta channel. There is no separate Code on/off switch, but your admin has to act; it is not automatic for everyone. Local coding sessions are off by default.Copilot spending policy and Copilot admin controls
Routing to personal developer environmentsOn for everyone; can't be turned off; makers who match no rule can't create appsEnvironment groups
Connectors and MCP servers18 connectors and 12 MCP servers; risky actions blockedApps, Settings, Environment groups
SharingOrganization on; guests off, and guests can't open apps yetEnvironment-group sharing rule
Content security policySame-origin, enforced; report-only mode availableEnvironment-group CSP rule
External build artifactsOffPower Platform admin center
SpendingSpending policies per product, with per-user limitsCopilot, Cost management

If your tenant already uses advanced connector policies and classic DLP, the most restrictive result wins, and the admin center can show "no connectors allowed" for an older environment group even while classic DLP is what actually governs it. D

16.5

What admins see, and what they don't

  • The inventory under Apps, All apps lists owner (which can differ from the creator), status, hosting region and environment group, with tabs for details, usage, monitoring and data and tools; it exports to CSV and refreshes within 15 minutes. Admins can block an app, which keeps the app and its data, or delete it permanently. D
  • Monitoring shows app-open success, time to interactive at the 75th percentile, sessions, data-request success and latency, aggregated hourly or daily and kept 28 days, with up to five alert rules per tenant. D
  • Admins cannot see exact destinations, the actions an app ran or each user's data permissions, and no managed-app events are documented in the Purview audit log yet; one community report found none after 24 hours. Code's own actions are audited: code generated, commands run and files read or written. DC

16.6

Policy settings that surprise builders

  • Taking full control freezes the defaults. When an admin takes full control of an environment group's connector policy, Microsoft's automatic updates to that policy stop, so new first-party connectors no longer appear on their own. D
  • Group rules lock environment settings. A published environment-group rule supersedes and locks the matching environment setting, and per-environment exceptions aren't supported. Ask for changes at the group level. D
  • Personal developer environments are Managed Environments without Dataverse at first. Routing is always on; makers who match no routing rule can be blocked from creating apps until an admin adds one. D
  • CLI creation and external artifacts are separate switches. CLI app creation lives under Power Platform admin center, Copilot, Settings, Managed apps; uploading externally built artifacts has its own setting. D
  • Billing has two halves. Building is billed through each tool (Cowork's spending policy, Code's Copilot credits, the environment for Copilot Studio); running is covered by Power Apps Premium or a spending policy for managed apps under Microsoft 365 admin center, Copilot, Cost management. Work IQ calls are billed separately. D

16.7

Asking for an exception

There is no self-service exception request, so make the admin's decision easy. Send one message with these fields, and ask for the narrowest change, at the group level. DI

FieldWhat to write
AppName, app id, environment and environment group
Change requestedThe exact connector and action, MCP server, or content security directive and origin (copy the blocked origin from the browser console)
WhyThe business justification: the outcome and who benefits
DataClassification of the data that will flow, and its system of record
Scope and durationGroup level or narrower; permanent or until a date; report-only mode first for content security changes
EvidenceReproduction steps, the blocked origin or error from the browser console, and test results from a preview build
OwnerBuilder, backup owner and the admin contact who approved it